diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index e038746da30fb..653d5e20d4739 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -131,6 +131,9 @@ // Cap increase and decrease temp_change = temp_change < 0 ? max(temp_change, BODYTEMP_HOMEOSTASIS_COOLING_MAX) : min(temp_change, BODYTEMP_HOMEOSTASIS_HEATING_MAX) + // Boost when returning to equilibrium + if(!ISINRANGE_EX(equilibrium_temp, standard_body_temperature - 2, standard_body_temperature + 2)) + temp_change *= 3 adjust_bodytemperature(temp_change * seconds_per_tick) // No use_insulation because we manually account for it diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 64f472ed98389..b2376816ee946 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -251,7 +251,7 @@ /// Note that more of this = more nutrition is consumed every life tick. var/temperature_homeostasis_speed = 0.5 /// Protection (insulation) from temperature changes, max 1 - var/temperature_insulation = 0 + var/temperature_insulation = 0.1 /// Whether we currently have temp alerts, minor optimization VAR_PRIVATE/temp_alerts = FALSE diff --git a/monkestation/code/modules/temperature_overhaul/temperature_proc.dm b/monkestation/code/modules/temperature_overhaul/temperature_proc.dm index 54119cce91b42..b95b7582635ff 100644 --- a/monkestation/code/modules/temperature_overhaul/temperature_proc.dm +++ b/monkestation/code/modules/temperature_overhaul/temperature_proc.dm @@ -95,6 +95,8 @@ if(amount == 0) return 0 amount = round(amount, 0.01) + min_temp = max(min_temp, TCMB) + max_temp = min(max_temp, 603.15) if(bodytemperature >= min_temp && bodytemperature <= max_temp) var/old_temp = bodytemperature