Files
GS13NG/code/modules/events/mass_hallucination.dm
Putnam3145 6fffb4045b Make mass hallucination more admemeable (#11491)
* Make mass hallucination more admemeable

* makes it work

* Update code/modules/events/mass_hallucination.dm

Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com>

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2020-03-20 16:08:11 +01:00

56 lines
2.2 KiB
Plaintext

/datum/round_event_control/mass_hallucination
name = "Mass Hallucination"
typepath = /datum/round_event/mass_hallucination
weight = 10
max_occurrences = 2
min_players = 1
var/forced_hallucination
/datum/round_event_control/mass_hallucination/admin_setup()
if(!check_rights(R_FUN))
return
forced_hallucination = input(usr, "Choose the hallucination to apply","Send Hallucination") as null|anything in subtypesof(/datum/hallucination)
/datum/round_event/mass_hallucination
fakeable = FALSE
/datum/round_event/mass_hallucination/start()
var/datum/round_event_control/mass_hallucination/M = control
if(M.forced_hallucination)
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
if (HAS_TRAIT(C,TRAIT_EXEMPT_HEALTH_EVENTS))
continue
new M.forced_hallucination(C, TRUE)
return
switch(rand(1,4))
if(1) //same sound for everyone
var/sound = pick("airlock","airlock_pry","console","explosion","far_explosion","mech","glass","alarm","beepsky","mech","wall_decon","door_hack","tesla")
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
new /datum/hallucination/sounds(C, TRUE, sound)
if(2)
var/weirdsound = pick("phone","hallelujah","highlander","hyperspace","game_over","creepy","tesla")
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
new /datum/hallucination/weird_sounds(C, TRUE, weirdsound)
if(3)
var/stationmessage = pick("ratvar","shuttle_dock","blob_alert","malf_ai","meteors","supermatter")
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
new /datum/hallucination/stationmessage(C, TRUE, stationmessage)
if(4 to 6)
var/picked_hallucination = pick( /datum/hallucination/bolts,
/datum/hallucination/chat,
/datum/hallucination/message,
/datum/hallucination/bolts,
/datum/hallucination/fake_flood,
/datum/hallucination/battle,
/datum/hallucination/fire,
/datum/hallucination/self_delusion,
/datum/hallucination/death,
/datum/hallucination/delusion,
/datum/hallucination/oh_yeah)
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
if (HAS_TRAIT(C,TRAIT_EXEMPT_HEALTH_EVENTS))
continue
new picked_hallucination(C, TRUE)