From 348a2496ddb94fc84b2bd9c5b116ede7239e3d84 Mon Sep 17 00:00:00 2001 From: AbsFree Date: Tue, 17 Dec 2024 10:18:48 +0100 Subject: [PATCH] adjusted temperatur calculations --- .../code/modules/atmospherics/gasmixtures/reactions.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GainStation13/code/modules/atmospherics/gasmixtures/reactions.dm b/GainStation13/code/modules/atmospherics/gasmixtures/reactions.dm index 1abd8e77ee..4be7b5f717 100644 --- a/GainStation13/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/GainStation13/code/modules/atmospherics/gasmixtures/reactions.dm @@ -11,7 +11,6 @@ ) /datum/gas_reaction/lipoifium_formation/react(datum/gas_mixture/air) - // TODO: make the reaction exothermic, and make it more efficient at lower temperatures if (air.get_moles(GAS_BZ) < 15 || air.get_moles(GAS_TRITIUM) < 15) return NO_REACTION var/temperature = air.return_temperature() @@ -24,10 +23,11 @@ reaction_efficiency = -((temperature - 5) / 95) + 1 // will equal 1 at 5 kelvin, and will linearly fall until 0 at 100k var/energy_released = reaction_efficiency * FIRE_CARBON_ENERGY_RELEASED + var/old_heat_capacity = air.heat_capacity() air.adjust_moles(GAS_FAT, reaction_efficiency) air.adjust_moles(GAS_TRITIUM, -reaction_efficiency / 2) air.adjust_moles(GAS_BZ, -reaction_efficiency / 2) - var/heat_capacity = air.heat_capacity() - air.set_temperature(max(temperature + energy_released / heat_capacity, TCMB)) + var/new_heat_capacity = air.heat_capacity() + air.set_temperature(max((temperature * old_heat_capacity + energy_released) / new_heat_capacity, TCMB)) return REACTING