Files
GS13NG/code/modules/events/brain_trauma.dm

43 lines
1.2 KiB
Plaintext

/datum/round_event_control/brain_trauma
name = "Spontaneous Brain Trauma"
typepath = /datum/round_event/brain_trauma
weight = 25
/datum/round_event_control/brain_trauma/canSpawnEvent(var/players_amt, var/gamemode)
var/list/enemy_roles = list("Medical Doctor","Chief Medical Officer","Paramedic")
for (var/mob/M in GLOB.alive_mob_list)
if(M.stat != DEAD && (M.mind?.assigned_role in enemy_roles))
return TRUE
return FALSE
/datum/round_event/brain_trauma
fakeable = FALSE
/datum/round_event/brain_trauma/start()
for(var/mob/living/carbon/human/H in shuffle(GLOB.alive_mob_list))
if(!H.client)
continue
if(H.stat == DEAD) // What are you doing in this list
continue
if(!H.getorgan(/obj/item/organ/brain)) // If only I had a brain
continue
if(HAS_TRAIT(H,TRAIT_EXEMPT_HEALTH_EVENTS))
continue
if(!is_station_level(H.z))
continue
traumatize(H)
break
/datum/round_event/brain_trauma/proc/traumatize(mob/living/carbon/human/H)
var/resistance = pick(
65;TRAUMA_RESILIENCE_BASIC,
35;TRAUMA_RESILIENCE_SURGERY)
var/trauma_type = pickweight(list(
BRAIN_TRAUMA_MILD = 80,
BRAIN_TRAUMA_SEVERE = 10,
BRAIN_TRAUMA_SPECIAL = 10
))
H.gain_trauma_type(trauma_type, resistance)