diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index edc6f58eaf..30806bfc52 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -104,6 +104,7 @@ #define TRAIT_RESISTCOLD "resist_cold" #define TRAIT_RESISTHIGHPRESSURE "resist_high_pressure" #define TRAIT_RESISTLOWPRESSURE "resist_low_pressure" +#define TRAIT_LOWPRESSURECOOLING "low_pressure_cooling" #define TRAIT_BOMBIMMUNE "bomb_immunity" #define TRAIT_RADIMMUNE "rad_immunity" #define TRAIT_GENELESS "geneless" diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index a3a1a35888..4a8156d268 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -38,6 +38,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_RESISTCOLD" = TRAIT_RESISTCOLD, "TRAIT_RESISTHIGHPRESSURE" = TRAIT_RESISTHIGHPRESSURE, "TRAIT_RESISTLOWPRESSURE" = TRAIT_RESISTLOWPRESSURE, + "TRAIT_LOWPRESSURECOOLING" = TRAIT_LOWPRESSURECOOLING, "TRAIT_BOMBIMMUNE" = TRAIT_BOMBIMMUNE, "TRAIT_RADIMMUNE" = TRAIT_RADIMMUNE, "TRAIT_GENELESS" = TRAIT_GENELESS, diff --git a/code/datums/mutations/space_adaptation.dm b/code/datums/mutations/space_adaptation.dm index 4431720375..6defd05ee5 100644 --- a/code/datums/mutations/space_adaptation.dm +++ b/code/datums/mutations/space_adaptation.dm @@ -13,6 +13,7 @@ return ADD_TRAIT(owner, TRAIT_RESISTCOLD, "cold_resistance") ADD_TRAIT(owner, TRAIT_RESISTLOWPRESSURE, "cold_resistance") + ADD_TRAIT(owner, TRAIT_LOWPRESSURECOOLING, "cold_resistance") owner.add_filter("space_glow", 2, list("type" = "outline", "color" = "#ffe46bd8", "size" = 1)) addtimer(CALLBACK(src, .proc/glow_loop, owner), rand(1,19)) @@ -27,5 +28,6 @@ return REMOVE_TRAIT(owner, TRAIT_RESISTCOLD, "cold_resistance") REMOVE_TRAIT(owner, TRAIT_RESISTLOWPRESSURE, "cold_resistance") + REMOVE_TRAIT(owner, TRAIT_LOWPRESSURECOOLING, "cold_resistance") owner.remove_filter("space_glow") diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 9cc96f2ddd..182ae1afb8 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -699,6 +699,9 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put var/heat_efficiency = clamp(1 + ((bodytemperature - heat) * SYNTH_HEAT_EFFICIENCY_COEFF), 0, SYNTH_SINGLE_INFLUENCE_COOLING_EFFECT_CAP) var/pressure_efficiency = clamp(pressure / ONE_ATMOSPHERE, 0, SYNTH_SINGLE_INFLUENCE_COOLING_EFFECT_CAP) + if(HAS_TRAIT(src, TRAIT_LOWPRESSURECOOLING)) + pressure_efficiency = max(pressure_efficiency, 1) //Space adaptation nulls drawbacks of low-pressure cooling. + var/total_environment_efficiency = min(heat_efficiency * pressure_efficiency, SYNTH_TOTAL_ENVIRONMENT_EFFECT_CAP) //At best, you can get 200% total return total_environment_efficiency