From 04d806c70001e2ffb705ca96b034e779ed8bb06c Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Mon, 31 Jan 2022 00:50:22 +0100 Subject: [PATCH] orange MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit stabilized orange can now cool at most 5 per tick instead of infinite robots only cool half, which means 5 per life tick (status effects fire twice per life tick total) for robots, it cools towards ~ -100°C target temp, provided you are in a location that supports it. --- code/__DEFINES/atmospherics.dm | 1 + .../mob/living/carbon/human/species_types/anthropomorph.dm | 2 +- code/modules/mob/living/carbon/human/species_types/ipc.dm | 2 +- .../mob/living/carbon/human/species_types/synthliz.dm | 2 +- .../research/xenobiology/crossbreeding/_status_effects.dm | 6 +++++- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 2f82e49462..2ead5ea068 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -81,6 +81,7 @@ #define SYNTH_ACTIVE_COOLING_MIN_ADJUSTMENT 5 //What is the minimum amount of temp you move towards the target point, even if it would be less with default calculations? #define SYNTH_INTEGRATION_COOLANT_PENALTY 0.4 //Integrating coolant is multiplied with this for calculation of impact on passive cooling. #define SYNTH_INTEGRATION_COOLANT_CAP 0.25 //Integrating coolant is capped at counting as current_blood * this number. This is so you can't just run on salglu or whatever. +#define SYNTH_COLD_OFFSET -125 //How much colder temps Synths can tolerate. Used in their species. #define BODYTEMP_NORMAL 310.15 //The natural temperature for a body #define BODYTEMP_AUTORECOVERY_DIVISOR 11 //This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive. diff --git a/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm b/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm index 334f76c487..b79c281b3b 100644 --- a/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm +++ b/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm @@ -32,7 +32,7 @@ coldmod = 0.5 heatmod = 1.2 - cold_offset = -125 //Can handle pretty cold environments, but it's still a slightly bad idea if you enter a room thats full of near-absolute-zero gas + cold_offset = SYNTH_COLD_OFFSET //Can handle pretty cold environments, but it's still a slightly bad idea if you enter a room thats full of near-absolute-zero gas blacklisted_quirks = list(/datum/quirk/coldblooded) balance_point_values = TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/ipc.dm b/code/modules/mob/living/carbon/human/species_types/ipc.dm index 4f6b940692..a680d3abc4 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -15,7 +15,7 @@ coldmod = 0.5 heatmod = 1.2 - cold_offset = -125 //Can handle pretty cold environments, but it's still a slightly bad idea if you enter a room thats full of near-absolute-zero gas + cold_offset = SYNTH_COLD_OFFSET //Can handle pretty cold environments, but it's still a slightly bad idea if you enter a room thats full of near-absolute-zero gas blacklisted_quirks = list(/datum/quirk/coldblooded) balance_point_values = TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index 7fc2da1132..c692370030 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -12,7 +12,7 @@ coldmod = 0.5 heatmod = 1.2 - cold_offset = -125 //Can handle pretty cold environments, but it's still a slightly bad idea if you enter a room thats full of near-absolute-zero gas + cold_offset = SYNTH_COLD_OFFSET //Can handle pretty cold environments, but it's still a slightly bad idea if you enter a room thats full of near-absolute-zero gas blacklisted_quirks = list(/datum/quirk/coldblooded) balance_point_values = TRUE diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index c408ad096e..e51e4852e6 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -495,7 +495,11 @@ /datum/status_effect/stabilized/orange/tick() var/body_temperature_difference = BODYTEMP_NORMAL - owner.bodytemperature - owner.adjust_bodytemperature(min(5,body_temperature_difference)) + var/cooling_cap = -5 + if(HAS_TRAIT(owner, TRAIT_ROBOTIC_ORGANISM)) + cooling_cap *= 0.5 //Only cools by half as much (which is 5 per life tick since this ticks twice as much as life) so it isn't true spaceproofness.. + body_temperature_difference += SYNTH_COLD_OFFSET //.. But also cools towards a cold temp, provided there is nothing that counters it. + owner.adjust_bodytemperature(clamp(body_temperature_difference, cooling_cap, 5)) return ..() /datum/status_effect/stabilized/purple