From a58766c8853fb879f00756fc44443aa6e5b31d48 Mon Sep 17 00:00:00 2001 From: Thalpy Date: Wed, 29 May 2019 21:11:21 +0100 Subject: [PATCH] Fixed explosions not occuring when temps were high enough. --- code/modules/reagents/chemistry/holder.dm | 11 ++++++----- .../reagents/chemistry/recipes/fermi.dm | 19 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 2b282cd8d6..49a04ca8ef 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -443,6 +443,12 @@ var/datum/chemical_reaction/C = selected_reaction if (C.FermiChem == TRUE && !continue_reacting) + if (chem_temp > C.ExplodeTemp) //This is first to ensure explosions. + var/datum/chemical_reaction/fermi/Ferm = selected_reaction + fermiIsReacting = FALSE + Ferm.FermiExplode(src, my_atom, volume = total_volume, temp = chem_temp, pH = pH) + return 0 + for(var/B in cached_required_reagents) multiplier = min(multiplier, round((get_reagent_amount(B) / cached_required_reagents[B]), 0.01)) for(var/P in selected_reaction.results) @@ -460,11 +466,6 @@ fermiReactID = selected_reaction reaction_occurred = 1 SSblackbox.record_feedback("tally", "Fermi_chemical_reaction", reactedVol, C.id)//log - if (chem_temp > C.ExplodeTemp) - var/datum/chemical_reaction/fermi/Ferm = selected_reaction - fermiIsReacting = FALSE - Ferm.FermiExplode(src, my_atom, volume = total_volume, temp = chem_temp, pH = pH) - return 0 else return 0 diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 7f9d4e5a8e..ac4a6acdbd 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -44,15 +44,14 @@ if (istype(reagent, /datum/reagent/fermi)) R.add_reagent(reagent.id, reagent.volume) else if (istype(reagent, /datum/reagent/toxin/plasma)) - R.add_reagent(reagent.id, reagent.volume) //for !FUN! (am I doing this right?) - continue //Only allow fermichems into the mix (specific fermi explosions are handled elsewhere) + R.add_reagent(reagent.id, reagent.volume/2) //for !FUN! (am I doing this right?) reduced to half so it's less punishing. This is mostly for astrogen failures. if (reagent.purity < 0.6) ImpureTot = (ImpureTot + (1-reagent.purity)) / 2 if(pH < 4) //if acidic, make acid spray R.add_reagent("fermiAcid", ((volume/3)/pH)) - if(R.reagent_list) + message_admins("gas") s.set_up(R, (volume/10), T) s.start() @@ -85,7 +84,7 @@ CurveSharpT = 0.6 // How sharp the temperature exponential curve is (to the power of value) CurveSharppH = 2 // How sharp the pH exponential curve is (to the power of value) ThermicConstant = 5 //Temperature change per 1u produced - HIonRelease = -0.1 //pH change per 1u reaction + HIonRelease = -0.05 //pH change per 1u reaction RateUpLim = 5 //Optimal/max rate possible if all conditions are perfect FermiChem = TRUE//If the chemical uses the Fermichem reaction mechanics FermiExplode = FALSE //If the chemical explodes in a special way @@ -114,7 +113,7 @@ CurveSharpT = 4 // How sharp the temperature exponential curve is (to the power of value) CurveSharppH = 4 // How sharp the pH exponential curve is (to the power of value) ThermicConstant = -5 // Temperature change per 1u produced - HIonRelease = 0.05 // pH change per 1u reaction (inverse for some reason) + HIonRelease = 0.01 // pH change per 1u reaction (inverse for some reason) RateUpLim = 3 // Optimal/max rate possible if all conditions are perfect FermiChem = TRUE // If the chemical uses the Fermichem reaction mechanics FermiExplode = TRUE // If the chemical explodes in a special way @@ -150,7 +149,7 @@ CurveSharpT = 2 CurveSharppH = 2 ThermicConstant = 1 - HIonRelease = 0.2 + HIonRelease = 0.1 RateUpLim = 5 FermiChem = TRUE FermiExplode = TRUE @@ -182,7 +181,7 @@ CurveSharpT = 2 CurveSharppH = 2 ThermicConstant = 1 - HIonRelease = -0.2 + HIonRelease = -0.1 RateUpLim = 5 FermiChem = TRUE FermiExplode = TRUE @@ -239,7 +238,7 @@ CurveSharpT = 0.5 CurveSharppH = 4 ThermicConstant = 15 - HIonRelease = 0.05 + HIonRelease = 0.1 RateUpLim = 1 FermiChem = TRUE FermiExplode = TRUE @@ -319,12 +318,12 @@ ExplodeTemp = 700 OptimalpHMin = 8 OptimalpHMax = 10 - ReactpHLim = 1 + ReactpHLim = 2 //CatalystFact = 0 //To do 1 CurveSharpT = 2 CurveSharppH = 0.5 ThermicConstant = -10 - HIonRelease = -0.2 + HIonRelease = -0.1 RateUpLim = 2 FermiChem = TRUE PurityMin = 0.30