diff --git a/code/modules/events/mass_hallucination.dm b/code/modules/events/mass_hallucination.dm index 5bad888f17..33b9462e40 100644 --- a/code/modules/events/mass_hallucination.dm +++ b/code/modules/events/mass_hallucination.dm @@ -1,7 +1,7 @@ /datum/round_event_control/mass_hallucination name = "Mass Hallucination" typepath = /datum/round_event/mass_hallucination - weight = 7 + weight = 10 max_occurrences = 2 min_players = 1 @@ -9,5 +9,25 @@ fakeable = FALSE /datum/round_event/mass_hallucination/start() - for(var/mob/living/carbon/C in GLOB.alive_mob_list) - C.hallucination += rand(20, 50) \ No newline at end of file + switch(rand(1,4)) + if(1) //same sound for everyone + var/sound = pick("explosion","far_explosion","phone","alarm","hallelujah","creepy","ratvar","shuttle_dock", + "wall_decon","door_hack","blob_alert","tesla","malf_ai","meteors") + for(var/mob/living/carbon/C in GLOB.alive_mob_list) + new /datum/hallucination/sounds(C, TRUE, sound) + if(2 to 4) + var/picked_hallucination = pick( /datum/hallucination/bolts, + /datum/hallucination/whispers, + /datum/hallucination/message, + /datum/hallucination/bolts, + /datum/hallucination/fake_flood, + /datum/hallucination/battle, + /datum/hallucination/fire, + /datum/hallucination/self_delusion, + /datum/hallucination/fakeattacker, + /datum/hallucination/death, + /datum/hallucination/xeno_attack, + /datum/hallucination/delusion, + /datum/hallucination/oh_yeah) + for(var/mob/living/carbon/C in GLOB.alive_mob_list) + new picked_hallucination(C, TRUE) \ No newline at end of file diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index c2102a4a05..b759c7c816 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -30,7 +30,8 @@ GLOBAL_LIST_INIT(hallucinations_medium, list( /datum/hallucination/husks, /datum/hallucination/battle, /datum/hallucination/fire, - /datum/hallucination/self_delusion)) + /datum/hallucination/self_delusion, + /datum/hallucination/stray_bullet)) GLOBAL_LIST_INIT(hallucinations_major, list( /datum/hallucination/fakeattacker, @@ -63,7 +64,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( var/feedback_details //extra info for investigate /datum/hallucination/New(mob/living/carbon/T, forced = TRUE) - set waitfor = 0 + set waitfor = FALSE target = T if(!forced) target.hallucination = max(0, target.hallucination - cost) @@ -157,11 +158,15 @@ GLOBAL_LIST_INIT(hallucinations_major, list( cost = 25 /datum/hallucination/fake_flood/New(mob/living/carbon/T, forced = TRUE) + set waitfor = FALSE ..() for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in orange(7,target)) if(!U.welded) center = get_turf(U) break + if(!center) + qdel(src) + return feedback_details += "Vent Coords: [center.x],[center.y],[center.z]" flood_images += image(image_icon,center,image_state,MOB_LAYER) flood_turfs += center @@ -178,7 +183,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( return Expand() if((get_turf(target) in flood_turfs) && !target.internal) - new /datum/hallucination/fake_alert(target, TRUE, "tox_in_air") + new /datum/hallucination/fake_alert(target, TRUE, "too_much_tox") next_expand = world.time + FAKE_FLOOD_EXPAND_TIME /datum/hallucination/fake_flood/proc/Expand() @@ -223,13 +228,14 @@ GLOBAL_LIST_INIT(hallucinations_major, list( cost = 25 /datum/hallucination/xeno_attack/New(mob/living/carbon/T, forced = TRUE) + set waitfor = FALSE ..() for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in orange(7,target)) if(!U.welded) pump = U break - feedback_details += "Vent Coords: [pump.x],[pump.y],[pump.z]" if(pump) + feedback_details += "Vent Coords: [pump.x],[pump.y],[pump.z]" xeno = new(pump.loc,target) sleep(10) xeno.update_icon("alienh_leap",'icons/mob/alienleap.dmi',-32,-32) @@ -270,6 +276,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( cost = 75 /datum/hallucination/oh_yeah/New(mob/living/carbon/T, forced = TRUE) + set waitfor = FALSE . = ..() var/turf/closed/wall/wall for(var/turf/closed/wall/W in range(7,target)) @@ -325,6 +332,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( cost = 75 /datum/hallucination/singularity_scare/New(mob/living/carbon/T, forced = TRUE) + set waitfor = FALSE ..() var/turf/start = get_turf(T) var/screen_border = pick(SOUTH,EAST,WEST,NORTH) @@ -359,6 +367,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( cost = 15 /datum/hallucination/battle/New(mob/living/carbon/T, forced = TRUE, battle_type) + set waitfor = FALSE ..() var/hits = rand(3,6) if(!battle_type) @@ -405,6 +414,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( cost = 10 /datum/hallucination/items_other/New(mob/living/carbon/T, forced = TRUE, item_type) + set waitfor = FALSE ..() var/item if(!item_type) @@ -456,6 +466,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( cost = 50 /datum/hallucination/delusion/New(mob/living/carbon/T, forced, force_kind = null , duration = 300,skip_nearby = 1, custom_icon = null, custom_icon_file = null, custom_name = null) + set waitfor = FALSE . = ..() var/image/A = null var/kind = force_kind ? force_kind : pick("monkey","corgi","carp","skeleton","demon","zombie") @@ -505,6 +516,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( cost = 40 /datum/hallucination/self_delusion/New(mob/living/carbon/T, forced, force_kind = null , duration = 300, custom_icon = null, custom_icon_file = null, wabbajack = TRUE) //set wabbajack to false if you want to use another fake source + set waitfor = FALSE ..() var/image/A = null var/kind = force_kind ? force_kind : pick("monkey","corgi","carp","skeleton","demon","zombie","robot") @@ -542,6 +554,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( return ..() /datum/hallucination/fakeattacker/New(mob/living/carbon/T, forced = TRUE) + set waitfor = FALSE ..() var/mob/living/carbon/human/clone = null var/clone_weapon = null @@ -707,6 +720,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( cost = 25 /datum/hallucination/bolts/New(mob/living/carbon/T, forced, door_number=-1) //-1 for severe, 1-2 for subtle + set waitfor = FALSE ..() var/image/I = null var/count = 0 @@ -735,6 +749,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( cost = 15 /datum/hallucination/whispers/New(mob/living/carbon/T, forced = TRUE) + set waitfor = FALSE ..() var/target_name = target.first_name() var/speak_messages = list("[pick_list_replacements(HAL_LINES_FILE, "suspicion")]",\ @@ -796,6 +811,7 @@ GLOBAL_LIST_INIT(hallucinations_major, list( cost = 15 /datum/hallucination/message/New(mob/living/carbon/T, forced = TRUE) + set waitfor = FALSE ..() var/chosen = pick("The light burns you!", \ "You don't feel like yourself.", \ @@ -816,10 +832,11 @@ GLOBAL_LIST_INIT(hallucinations_major, list( cost = 15 /datum/hallucination/sounds/New(mob/living/carbon/T, forced = TRUE, sound_type) + set waitfor = FALSE ..() if(!sound_type) sound_type = pick("airlock","explosion","far_explosion","glass","phone","summon_guns","alarm","beepsky","hallelujah","creepy","ratvar","shuttle_dock", - "wall_decon","door_hack","esword","blob_alert","tesla","malf_ai") + "wall_decon","door_hack","esword","blob_alert","tesla","malf_ai","meteors") feedback_details += "Type: [sound_type]" //Strange audio switch(sound_type) @@ -835,11 +852,13 @@ GLOBAL_LIST_INIT(hallucinations_major, list( if("glass") target.playsound_local(null, pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg'), 50, 1) if("phone") + target.playsound_local(null, 'sound/weapons/ring.ogg', 15) + sleep(25) + target.playsound_local(null, 'sound/weapons/ring.ogg', 25) + sleep(25) target.playsound_local(null, 'sound/weapons/ring.ogg', 35) - sleep(15) - target.playsound_local(null, 'sound/weapons/ring.ogg', 35) - sleep(15) - target.playsound_local(null, 'sound/weapons/ring.ogg', 35) + sleep(25) + target.playsound_local(null, 'sound/weapons/ring.ogg', 45) if("summon_guns") target.playsound_local(null, 'sound/magic/summon_guns.ogg', 50, 1) if("alarm") @@ -888,20 +907,25 @@ GLOBAL_LIST_INIT(hallucinations_major, list( target.playsound_local(null, 'sound/ai/outbreak5.ogg', 100, 0) if("tesla") //Tesla loose! target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 35, 1) - sleep(20) + sleep(30) target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 65, 1) - sleep(20) + sleep(30) target.playsound_local(null, 'sound/magic/lightningbolt.ogg', 100, 1) if("malf_ai") //AI is doomsdaying! to_chat(target, "