Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- proc/handle_mutations_and_radiation()
- if(getFireLoss())
- if((COLD_RESISTANCE in mutations))
- heal_organ_damage(0,3)
- if(mHallucination in mutations)
- hallucination = 100
- halloss = 0
- if(mSmallsize in mutations)
- if(!(pass_flags & PASSTABLE))
- pass_flags |= PASSTABLE
- else
- if(pass_flags & PASSTABLE)
- pass_flags &= ~PASSTABLE
- // Make nanoregen heal youu, -3 all damage types
- if((NANOREGEN in augmentations) || (mRegen in mutations))
- var/healed = 0
- var/hptoreg = 0
- if(NANOREGEN in augmentations)
- hptoreg += 3
- if(mRegen in mutations)
- hptoreg += 2
- if(stat==UNCONSCIOUS) hptoreg/=2
- if(stat==DEAD) hptoreg=0
- for(var/i=0, i<hptoreg, i++)
- var/list/damages = new/list()
- if(getToxLoss())
- damages+="tox"
- if(getOxyLoss())
- damages+="oxy"
- if(getCloneLoss())
- damages+="clone"
- if(getBruteLoss())
- damages+="brute"
- if(getFireLoss())
- damages+="burn"
- if(halloss != 0)
- damages+="hal"
- if(damages.len)
- switch(pick(damages))
- if("tox")
- adjustToxLoss(-1)
- healed += 1
- if("oxy")
- adjustOxyLoss(-1)
- healed += 1
- if("clone")
- adjustCloneLoss(-1)
- healed += 1
- if("brute")
- heal_organ_damage(1,0)
- healed += 1
- if("burn")
- heal_organ_damage(0,1)
- healed += 1
- if("hal")
- if(halloss > 0)
- halloss -= 1
- if(halloss < 0)
- halloss = 0
- healed += 1
- else
- break
- if(prob(healed))
- if(prob(5))
- src << "\blue You feel your wounds mending..."
- if(!(/mob/living/carbon/human/proc/morph in src.verbs))
- if(mMorph in mutations)
- src.verbs += /mob/living/carbon/human/proc/morph
- else
- if(!(mMorph in mutations))
- src.verbs -= /mob/living/carbon/human/proc/morph
- if(!(/mob/living/carbon/human/proc/remoteobserve in src.verbs))
- if(mRemote in mutations)
- src.verbs += /mob/living/carbon/human/proc/remoteobserve
- else
- if(!(mRemote in mutations))
- src.verbs -= /mob/living/carbon/human/proc/remoteobserve
- if(!(/mob/living/carbon/human/proc/remotesay in src.verbs))
- if(mRemotetalk in mutations)
- src.verbs += /mob/living/carbon/human/proc/remotesay
- else
- if(!(mRemotetalk in mutations))
- src.verbs -= /mob/living/carbon/human/proc/remotesay
- if ((HULK in mutations) && health <= 25)
- mutations.Remove(HULK)
- update_mutations() //update our mutation overlays
- src << "\red You suddenly feel very weak."
- Weaken(3)
- emote("collapse")
- if (radiation)
- if (radiation > 100)
- radiation = 100
- Weaken(10)
- src << "\red You feel weak."
- emote("collapse")
- if (radiation < 0)
- radiation = 0
- else
- var/damage = 0
- radiation--
- switch(radiation)
- if(1 to 49)
- radiation--
- if(prob(25))
- adjustToxLoss(1)
- damage = 1
- updatehealth()
- if(50 to 74)
- radiation -= 2
- damage = 1
- adjustToxLoss(1)
- if(prob(5))
- radiation -= 5
- Weaken(3)
- src << "\red You feel weak."
- emote("collapse")
- updatehealth()
- if(75 to 100)
- radiation -= 3
- adjustToxLoss(2)
- damage = 1
- if(prob(1))
- src << "\red You mutate!"
- randmutg(src)
- domutcheck(src,null)
- emote("gasp")
- updatehealth()
- if(damage && organs.len)
- var/datum/organ/external/O = pick(organs)
- if(istype(O)) O.add_autopsy_data("Radiation Poisoning", damage)
Advertisement
Add Comment
Please, Sign In to add comment