diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index a38aaeaa..fa2848d1 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -123,6 +123,7 @@ #define TRAIT_CALCIUM_HEALER "calcium_healer" #define TRAIT_ALCOHOL_LIGHTWEIGHT "alcohol_lightweight" //Skyrat port #define TRAIT_CURSED_BLOOD "cursed_blood" //Yo dawg I heard you like bloodborne references so I put a +#define TRAIT_RADRESONANCE "radioactive resonance" //Hyperstation edit #define TRAIT_SWIMMING "swimming" //only applied by /datum/element/swimming, for checking #define TRAIT_CAPTAIN_METABOLISM "captain-metabolism" diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index 1ab3456c..cee9be9e 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -445,6 +445,7 @@ power = 2 if(A.properties["transmittable"] >= 6) cellular_damage = TRUE + ADD_TRAIT(A.affected_mob, TRAIT_RADRESONANCE, DISEASE_TRAIT) /datum/symptom/heal/radiation/CanHeal(datum/disease/advance/A) var/mob/living/M = A.affected_mob @@ -482,3 +483,8 @@ if(L.heal_damage(heal_amt/parts.len, heal_amt/parts.len)) M.update_damage_overlays() return 1 + +/datum/symptom/heal/radiation/End(datum/disease/advance/A) + if(!..()) + return + REMOVE_TRAIT(A.affected_mob, TRAIT_RADRESONANCE, DISEASE_TRAIT) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 90cf2a9e..e41512df 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1305,6 +1305,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) radiation = 0 return TRUE + if(HAS_TRAIT(H, TRAIT_RADRESONANCE)) + //Don't do anything. + return TRUE + if(radiation > RAD_MOB_KNOCKDOWN && prob(RAD_MOB_KNOCKDOWN_PROB)) if(!H.IsKnockdown()) H.emote("collapse")