From 3c4834d03cb5f5e6e99ad3504abbfe8ba4c94758 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Mon, 5 Oct 2020 16:32:47 +0200 Subject: [PATCH 1/9] rebalances zeolites --- .../reagents/chemistry/reagents/healing.dm | 13 ++++++----- .../reagents/chemistry/recipes/fermi.dm | 23 ++++++++++--------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm index a6a9d7a85f..a44cea5b24 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm @@ -200,22 +200,23 @@ /datum/reagent/fermi/zeolites name = "Artificial Zeolites" - description = "Lab made Zeolite, used to clear radiation from people and items alike! Splashing just a small amount(5u) onto any item can clear away large amounts of contamination." + description = "Lab made Zeolite, used to clear radiation from people and items alike! Splashing just a small amount(5u) onto any item can clear away large amounts of contamination, as long as purity is at least 0.7." pH = 8 color = "#FFDADA" - metabolization_rate = 8 * REAGENTS_METABOLISM //Metabolizes fast but heals a lot! - value = REAGENT_VALUE_COMMON + metabolization_rate = 8 * REAGENTS_METABOLISM //Metabolizes fast but heals a lot! Lasts far longer if more pure. + value = REAGENT_VALUE_RARE //Relatively hard to make now, might be fine with VERY_RARE instead depending on feedback. /datum/reagent/fermi/zeolites/on_mob_life(mob/living/carbon/M) + metabolization_rate = (4 / purity) * REAGENTS_METABOLISM //Metab rate directly influenced by purity. Linear. var/datum/component/radioactive/contamination = M.GetComponent(/datum/component/radioactive) if(M.radiation > 0) - M.radiation -= min(M.radiation, 60) + M.radiation -= min(M.radiation, round(20 ** (0.5 + purity), 0.1)) //Far more effective if more pure. Tops out at ~90 at max purity. Exponential. if(contamination && contamination.strength > 0) - contamination.strength -= min(contamination.strength, 100) + contamination.strength -= min(contamination.strength, round(25 ** (0.5 + purity), 0.1)) //Tops out at ~125 at max purity. Exponential. ..() /datum/reagent/fermi/zeolites/reaction_obj(obj/O, reac_volume) var/datum/component/radioactive/contamination = O.GetComponent(/datum/component/radioactive) - if(contamination && reac_volume >= 5) + if(contamination && reac_volume >= 5 && purity >= 0.7) //you need at least 0.7 purity to instantly purge all contam on an object. qdel(contamination) return diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index da9fd34cd6..4eee732e49 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -591,19 +591,20 @@ /datum/chemical_reaction/fermi/zeolites name = "Zeolites" id = /datum/reagent/fermi/zeolites - results = list(/datum/reagent/fermi/zeolites = 5) //We make a lot! + results = list(/datum/reagent/fermi/zeolites = 5) //We make a lot! - But it's now pretty dangerous, too! The ingredients are supercheap after all... required_reagents = list(/datum/reagent/medicine/potass_iodide = 1, /datum/reagent/aluminium = 1, /datum/reagent/silicon = 1, /datum/reagent/oxygen = 1) //FermiChem vars: - OptimalTempMin = 300 - OptimalTempMax = 900 - ExplodeTemp = 1000 //check to see overflow doesn't happen! - OptimalpHMin = 4.0 - OptimalpHMax = 6.0 + OptimalTempMin = 350 + OptimalTempMax = 750 + ExplodeTemp = 850 + OptimalpHMin = 2.8 + OptimalpHMax = 5.5 //2.7 ph levels of optimal ph zone - centered at 4.15 - ph of ingredients mixed at equal values is 9.55; ph of result is 8. ReactpHLim = 4 //CatalystFact = 0 - CurveSharpT = 4 - CurveSharppH = 0 - ThermicConstant = 0 - HIonRelease = 0.01 - RateUpLim = 15 + CurveSharpT = 2 + CurveSharppH = 3 + ThermicConstant = 5 + HIonRelease = -0.1 + RateUpLim = 2 + PurityMin = 0.5 //Good luck. FermiChem = TRUE From 3058ea8954d29d31924bbcaf0b09d1f9f072feea Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Mon, 5 Oct 2020 16:51:16 +0200 Subject: [PATCH 2/9] typo --- .../code/modules/reagents/chemistry/reagents/healing.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm index a44cea5b24..49f9854554 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm @@ -200,7 +200,7 @@ /datum/reagent/fermi/zeolites name = "Artificial Zeolites" - description = "Lab made Zeolite, used to clear radiation from people and items alike! Splashing just a small amount(5u) onto any item can clear away large amounts of contamination, as long as purity is at least 0.7." + description = "Lab made Zeolite, used to clear radiation from people and items alike! Splashing just a small amount(5u) onto any item can clear away large amounts of contamination, as long as its purity is at least 0.7." pH = 8 color = "#FFDADA" metabolization_rate = 8 * REAGENTS_METABOLISM //Metabolizes fast but heals a lot! Lasts far longer if more pure. From b46c4d613ce938556133443da39e67728c0ef753 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Mon, 5 Oct 2020 16:59:51 +0200 Subject: [PATCH 3/9] some more value tweaking --- .../code/modules/reagents/chemistry/recipes/fermi.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 4eee732e49..2cc7177e74 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -594,17 +594,17 @@ results = list(/datum/reagent/fermi/zeolites = 5) //We make a lot! - But it's now pretty dangerous, too! The ingredients are supercheap after all... required_reagents = list(/datum/reagent/medicine/potass_iodide = 1, /datum/reagent/aluminium = 1, /datum/reagent/silicon = 1, /datum/reagent/oxygen = 1) //FermiChem vars: - OptimalTempMin = 350 + OptimalTempMin = 500 OptimalTempMax = 750 ExplodeTemp = 850 OptimalpHMin = 2.8 OptimalpHMax = 5.5 //2.7 ph levels of optimal ph zone - centered at 4.15 - ph of ingredients mixed at equal values is 9.55; ph of result is 8. ReactpHLim = 4 //CatalystFact = 0 - CurveSharpT = 2 + CurveSharpT = 5 CurveSharppH = 3 - ThermicConstant = 5 - HIonRelease = -0.1 - RateUpLim = 2 + ThermicConstant = 10 + HIonRelease = -0.2 + RateUpLim = 3 PurityMin = 0.5 //Good luck. FermiChem = TRUE From 79636c305473ecfe56efba1faa9a75f44d92b622 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Mon, 5 Oct 2020 17:18:50 +0200 Subject: [PATCH 4/9] even more value tweaking --- .../code/modules/reagents/chemistry/recipes/fermi.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 2cc7177e74..75086ac690 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -598,13 +598,13 @@ OptimalTempMax = 750 ExplodeTemp = 850 OptimalpHMin = 2.8 - OptimalpHMax = 5.5 //2.7 ph levels of optimal ph zone - centered at 4.15 - ph of ingredients mixed at equal values is 9.55; ph of result is 8. + OptimalpHMax = 5 //2.2 ph levels of optimal ph zone - centered at 3.9 - ph of ingredients mixed at equal values is 9.55; ph of result is 8. ReactpHLim = 4 //CatalystFact = 0 CurveSharpT = 5 CurveSharppH = 3 - ThermicConstant = 10 + ThermicConstant = 15 HIonRelease = -0.2 - RateUpLim = 3 + RateUpLim = 4 PurityMin = 0.5 //Good luck. FermiChem = TRUE From 2d684c88be65f1a79d005bff36aef80c0912be9a Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Fri, 9 Oct 2020 00:06:01 +0200 Subject: [PATCH 5/9] readds a accidentally removed thing Apparently, someone accidentally removed the functionality of being able to inject beakers in heaters without having to remove them, which is pretty required fore more complex reactions. This readds that. Also tweaks the Ion release of the zeolite reaction a bit (-0.2 > -0.15) --- .../reagents/chemistry/machinery/chem_heater.dm | 10 ++++++++++ .../code/modules/reagents/chemistry/recipes/fermi.dm | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index 28f0b2366a..a25677d737 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -83,6 +83,16 @@ updateUsrDialog() update_icon() return + + if(beaker) + if(istype(I, /obj/item/reagent_containers/dropper)) + var/obj/item/reagent_containers/dropper/D = I + D.afterattack(beaker, user, 1) + return + if(istype(I, /obj/item/reagent_containers/syringe)) + var/obj/item/reagent_containers/syringe/S = I + S.afterattack(beaker, user, 1) + return return ..() /obj/machinery/chem_heater/on_deconstruction() diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 75086ac690..5241768813 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -604,7 +604,7 @@ CurveSharpT = 5 CurveSharppH = 3 ThermicConstant = 15 - HIonRelease = -0.2 + HIonRelease = -0.15 RateUpLim = 4 PurityMin = 0.5 //Good luck. FermiChem = TRUE From aa28e65570ad342e35c78693fce88a65dcf34672 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Fri, 9 Oct 2020 00:42:52 +0200 Subject: [PATCH 6/9] more tweaking for the reagent itself Rad removal tweaked: From 20 - 90 radiation per tick to 3.3% - 16.6% of total radiation amount, per tick. --- .../code/modules/reagents/chemistry/reagents/healing.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm index 49f9854554..de27723508 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm @@ -209,10 +209,10 @@ /datum/reagent/fermi/zeolites/on_mob_life(mob/living/carbon/M) metabolization_rate = (4 / purity) * REAGENTS_METABOLISM //Metab rate directly influenced by purity. Linear. var/datum/component/radioactive/contamination = M.GetComponent(/datum/component/radioactive) - if(M.radiation > 0) - M.radiation -= min(M.radiation, round(20 ** (0.5 + purity), 0.1)) //Far more effective if more pure. Tops out at ~90 at max purity. Exponential. + if(M.radiation > 0) //hey so apparently pentetic literally purges 1/50 (2%) of the rad amount on someone per tick no matter the 'true' amount, sooo uhh time to tweak this some more.. + M.radiation -= clamp(round((M.radiation / 150) * (25 ** purity), 0.1), 0, M.radiation) //Purges between ~3% and ~16% of total rad amount, per tick, depending on purity. Exponential. if(contamination && contamination.strength > 0) - contamination.strength -= min(contamination.strength, round(25 ** (0.5 + purity), 0.1)) //Tops out at ~125 at max purity. Exponential. + contamination.strength -= min(contamination.strength, round(25 ** (0.5 + purity), 0.1)) //25 per tick at minimum purity; Tops out at ~125 per tick if purity is 1. Exponential. ..() /datum/reagent/fermi/zeolites/reaction_obj(obj/O, reac_volume) From c52bbb3707ce4496943d227a5fb35e889c7a43ee Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Tue, 13 Oct 2020 18:26:03 +0200 Subject: [PATCH 7/9] tweaks temp curve Dampens the exponentialness of the temp curve somewhat CurveSharpT: 5 -> 3 --- .../code/modules/reagents/chemistry/recipes/fermi.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 5241768813..bf66ffd9da 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -601,7 +601,7 @@ OptimalpHMax = 5 //2.2 ph levels of optimal ph zone - centered at 3.9 - ph of ingredients mixed at equal values is 9.55; ph of result is 8. ReactpHLim = 4 //CatalystFact = 0 - CurveSharpT = 5 + CurveSharpT = 3 CurveSharppH = 3 ThermicConstant = 15 HIonRelease = -0.15 From af0c2239db42854993c980e367c599335aa38539 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Thu, 15 Oct 2020 21:49:15 +0200 Subject: [PATCH 8/9] tweaks reaction some more thermic constant: 15 -> 7 CurveSharpT: 3 -> 2 Catalyst requirement: none -> 5u uranium --- .../code/modules/reagents/chemistry/recipes/fermi.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index bf66ffd9da..2b94835aab 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -591,8 +591,9 @@ /datum/chemical_reaction/fermi/zeolites name = "Zeolites" id = /datum/reagent/fermi/zeolites - results = list(/datum/reagent/fermi/zeolites = 5) //We make a lot! - But it's now pretty dangerous, too! The ingredients are supercheap after all... + results = list(/datum/reagent/fermi/zeolites = 5) //We make a lot! - But it's now somewhat dangerous, and needs a bit of uranium to catalyze the reaction required_reagents = list(/datum/reagent/medicine/potass_iodide = 1, /datum/reagent/aluminium = 1, /datum/reagent/silicon = 1, /datum/reagent/oxygen = 1) + required_catalysts = list(/datum/reagent/uranium = 5) //FermiChem vars: OptimalTempMin = 500 OptimalTempMax = 750 @@ -601,9 +602,9 @@ OptimalpHMax = 5 //2.2 ph levels of optimal ph zone - centered at 3.9 - ph of ingredients mixed at equal values is 9.55; ph of result is 8. ReactpHLim = 4 //CatalystFact = 0 - CurveSharpT = 3 + CurveSharpT = 2 CurveSharppH = 3 - ThermicConstant = 15 + ThermicConstant = 7 HIonRelease = -0.15 RateUpLim = 4 PurityMin = 0.5 //Good luck. From 4c8087b78ad1915360d51b3451f3155918787e3d Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Thu, 15 Oct 2020 21:56:52 +0200 Subject: [PATCH 9/9] aactually CurveSharpT: 2 -> 1.5 --- .../code/modules/reagents/chemistry/recipes/fermi.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 2b94835aab..f4b8850f55 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -602,7 +602,7 @@ OptimalpHMax = 5 //2.2 ph levels of optimal ph zone - centered at 3.9 - ph of ingredients mixed at equal values is 9.55; ph of result is 8. ReactpHLim = 4 //CatalystFact = 0 - CurveSharpT = 2 + CurveSharpT = 1.5 CurveSharppH = 3 ThermicConstant = 7 HIonRelease = -0.15