diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 2cf9de49571..6cea3116f57 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -123,7 +123,7 @@ ..() if(autoeject) if(occupant) - if(!occupant.has_organic_damage()) + if(!occupant.has_organic_damage() && !occupant.has_mutated_organs()) on = 0 go_out() playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) @@ -367,7 +367,7 @@ if(air_contents.total_moles() < 10) return if(occupant) - if(occupant.stat == 2 || occupant.health >= 100) //Why waste energy on dead or healthy people + if(occupant.stat == 2 || (occupant.health >= 100 && !occupant.has_mutated_organs())) //Why waste energy on dead or healthy people occupant.bodytemperature = T0C return occupant.bodytemperature += 2*(air_contents.temperature - occupant.bodytemperature)*current_heat_capacity/(current_heat_capacity + air_contents.heat_capacity()) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 4b00bf832c8..81f386a3364 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -78,6 +78,10 @@ #undef STOMACH_ATTACK_DELAY +/mob/living/carbon/proc/has_mutated_organs() + return FALSE + + /mob/living/carbon/proc/vomit(var/lost_nutrition = 10, var/blood = 0, var/stun = 1, var/distance = 0, var/message = 1) if(src.is_muzzled()) if(message) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 1cf1a8bb942..c8489da47fd 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1768,6 +1768,12 @@ Eyes need to have significantly high darksight to shine unless the mob has the X else return FALSE +/mob/living/carbon/human/has_mutated_organs() + for(var/obj/item/organ/external/E in bodyparts) + if(E.status & ORGAN_MUTATED) + return TRUE + return FALSE + /mob/living/carbon/human/InCritical() return (health <= config.health_threshold_crit && stat == UNCONSCIOUS)