Files
Bubberstation/code/modules/events/heart_attack.dm
SkyratBot 5a33abb773 [MIRROR] Event menu rewrite [MDB IGNORE] (#15396)
* Event menu rewrite

* Update topic.dm

* Update _event.dm

* Update event_chaos_system.dm

Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-08-08 01:15:12 +01:00

27 lines
1.2 KiB
Plaintext

/datum/round_event_control/heart_attack
name = "Random Heart Attack"
typepath = /datum/round_event/heart_attack
weight = 20
max_occurrences = 2
min_players = 40 // To avoid shafting lowpop
category = EVENT_CATEGORY_HEALTH
description = "A random crewmember's heart gives out."
/datum/round_event/heart_attack/start()
var/list/heart_attack_contestants = list()
for(var/mob/living/carbon/human/victim in shuffle(GLOB.player_list))
if(victim.stat == DEAD || HAS_TRAIT(victim, TRAIT_CRITICAL_CONDITION) || !victim.can_heartattack() || victim.has_status_effect(/datum/status_effect/exercised) || (/datum/disease/heart_failure in victim.diseases) || victim.undergoing_cardiac_arrest())
continue
if(!(victim.mind.assigned_role.job_flags & JOB_CREW_MEMBER))//only crewmembers can get one, a bit unfair for some ghost roles and it wastes the event
continue
if(victim.satiety <= -60) //Multiple junk food items recently
heart_attack_contestants[victim] = 3
else
heart_attack_contestants[victim] = 1
if(LAZYLEN(heart_attack_contestants))
var/mob/living/carbon/human/winner = pick_weight(heart_attack_contestants)
var/datum/disease/D = new /datum/disease/heart_failure()
winner.ForceContractDisease(D, FALSE, TRUE)
announce_to_ghosts(winner)