diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index eee465e062a..4fe0d47f12c 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -948,7 +948,7 @@ occupant.take_organ_damage(0,radiation_level*2 + rand(1,3)) if(radiation_level > 1) occupant.take_organ_damage(0,radiation_level + rand(1,3)) - occupant.radiation += radiation_level*10 + occupant.apply_effect(radiation_level*10, IRRADIATE) /obj/machinery/suit_cycler/proc/finished_job() var/turf/T = get_turf(src) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 00dbc50e8d0..b820cecbace 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -191,73 +191,47 @@ if(!(species.flags & RADIMMUNE)) if(radiation) - - if(get_int_organ(/obj/item/organ/internal/nucleation/resonant_crystal)) - var/rads = radiation/25 - radiation -= rads - radiation -= 0.1 - reagents.add_reagent("radium", rads/10) - if( prob(10) ) - to_chat(src, "You feel relaxed.") - return - if(radiation > 100) - radiation = 100 - Weaken(10) - if(!lying) - to_chat(src, "You feel weak.") + if(!weakened) emote("collapse") + Weaken(10) + to_chat(src, "You feel weak.") - if(radiation < 0) - radiation = 0 + radiation = Clamp(radiation, 0, 100) - else - var/damage = 0 - switch(radiation) - if(0 to 49) - radiation-- - if(prob(25)) - adjustToxLoss(1) - damage = 1 - updatehealth() - - if(50 to 74) - radiation -= 2 - damage = 1 + var/autopsy_damage = 0 + switch(radiation) + if(0 to 50) + radiation = max(radiation-1, 0) + if(prob(25)) adjustToxLoss(1) - if(prob(5)) - radiation -= 5 - Weaken(3) - if(!lying) - to_chat(src, "You feel weak.") - emote("collapse") - updatehealth() + autopsy_damage = 1 - if(75 to 100) - radiation -= 3 - adjustToxLoss(3) - damage = 3 - if(prob(1)) - to_chat(src, "You mutate!") - randmutb(src) - domutcheck(src,null) - emote("gasp") - updatehealth() + if(50 to 75) + radiation = max(radiation-2, 0) + adjustToxLoss(1) + autopsy_damage = 1 + if(prob(5)) + radiation = max(radiation-5, 0) + if(!weakened) + emote("collapse") + Weaken(3) + to_chat(src, "You feel weak.") - else - radiation -= 5 - adjustToxLoss(5) - damage = 5 - if(prob(1)) - to_chat(src, "You mutate!") - randmutb(src) - domutcheck(src,null) - emote("gasp") - updatehealth() + if(75 to 100) + radiation = max(radiation-3, 0) + adjustToxLoss(3) + autopsy_damage = 3 + if(prob(1)) + to_chat(src, "You mutate!") + randmutb(src) + domutcheck(src, null) + emote("gasp") - if(damage && bodyparts.len) - var/obj/item/organ/external/O = pick(bodyparts) - if(istype(O)) O.add_autopsy_data("Radiation Poisoning", damage) + if(autopsy_damage && bodyparts.len) + var/obj/item/organ/external/O = pick(bodyparts) + if(istype(O)) + O.add_autopsy_data("Radiation Poisoning", autopsy_damage) /mob/living/carbon/human/breathe() diff --git a/code/modules/mob/living/carbon/human/species/apollo.dm b/code/modules/mob/living/carbon/human/species/apollo.dm index 7fee37a17c2..24f38bdbf64 100644 --- a/code/modules/mob/living/carbon/human/species/apollo.dm +++ b/code/modules/mob/living/carbon/human/species/apollo.dm @@ -99,7 +99,7 @@ burn_mod = 4 // holy shite, poor guys wont survive half a second cooking smores brute_mod = 2 // damn, double wham, double dam oxy_mod = 0 - flags = IS_WHITELISTED | NO_BREATHE | NO_BLOOD | NO_PAIN | HAS_LIPS | NO_SCAN + flags = IS_WHITELISTED | NO_BREATHE | NO_BLOOD | NO_PAIN | HAS_LIPS | NO_SCAN | RADIMMUNE dietflags = DIET_OMNI //still human at their core, so they maintain their eating habits and diet //Default styles for created mobs. @@ -110,8 +110,7 @@ "heart" = /obj/item/organ/internal/heart, "crystallized brain" = /obj/item/organ/internal/brain/crystal, "eyes" = /obj/item/organ/internal/eyes/luminescent_crystal, //Standard darksight of 2. - "strange crystal" = /obj/item/organ/internal/nucleation/strange_crystal, - "resonant crystal" = /obj/item/organ/internal/nucleation/resonant_crystal + "strange crystal" = /obj/item/organ/internal/nucleation/strange_crystal ) vision_organ = /obj/item/organ/internal/eyes/luminescent_crystal diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm index 4348b8b048b..e1f8a4b6116 100644 --- a/code/modules/mob/living/carbon/human/species/station.dm +++ b/code/modules/mob/living/carbon/human/species/station.dm @@ -843,23 +843,20 @@ return ..() /datum/species/diona/handle_life(var/mob/living/carbon/human/H) + H.radiation = Clamp(H.radiation, 0, 100) //We have to clamp this first, then decrease it, or there's a few edge cases of massive heals if we clamp and decrease at the same time. var/rads = H.radiation / 25 - H.apply_effect(-rads,IRRADIATE,0) - H.nutrition += rads + H.radiation = max(H.radiation-rads, 0) + H.nutrition = min(H.nutrition+rads, NUTRITION_LEVEL_WELL_FED+10) H.adjustBruteLoss(-(rads)) - H.adjustOxyLoss(-(rads)) H.adjustToxLoss(-(rads)) var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing if(isturf(H.loc)) //else, there's considered to be no light var/turf/T = H.loc light_amount = min(T.get_lumcount() * 10, 5) //hardcapped so it's not abused by having a ton of flashlights - H.nutrition += light_amount + H.nutrition = min(H.nutrition+light_amount, NUTRITION_LEVEL_WELL_FED+10) H.traumatic_shock -= light_amount - if(H.nutrition > NUTRITION_LEVEL_WELL_FED) - H.nutrition = NUTRITION_LEVEL_WELL_FED - if(light_amount > 0) H.clear_alert("nolight") else @@ -869,8 +866,7 @@ H.adjustBruteLoss(-(light_amount/2)) H.adjustFireLoss(-(light_amount/4)) - H.adjustOxyLoss(-(light_amount)) - if(H.nutrition < 200) + if(H.nutrition < NUTRITION_LEVEL_STARVING+50) H.take_overall_damage(10,0) H.traumatic_shock++