diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index 199c07cf86..556ac28732 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -1,3 +1,4 @@ +#define DEFAULT_DOOMSDAY_TIMER 4500 /datum/AI_Module var/uses = 0 var/module_name @@ -37,12 +38,13 @@ to_chat(src, "Doomsday device armed.") priority_announce("Hostile runtimes detected in all station systems, please deactivate your AI to prevent possible damage to its morality core.", "Anomaly Alert", 'sound/AI/aimalf.ogg') set_security_level("delta") - nuking = 1 - var/obj/machinery/doomsday_device/DOOM = new /obj/machinery/doomsday_device(src) + nuking = TRUE + var/obj/machinery/doomsday_device/DOOM = new (src) doomsday_device = DOOM doomsday_device.start() verbs -= /mob/living/silicon/ai/proc/nuke_station - for(var/obj/item/weapon/pinpointer/P in GLOB.pinpointer_list) + for(var/pinpointer in GLOB.pinpointer_list) + var/obj/item/weapon/pinpointer/P = pinpointer P.switch_mode_to(TRACK_MALF_AI) //Pinpointers start tracking the AI wherever it goes /obj/machinery/doomsday_device @@ -50,34 +52,32 @@ name = "doomsday device" icon_state = "nuclearbomb_base" desc = "A weapon which disintegrates all organic life in a large area." - anchored = 1 - density = 1 + anchored = TRUE + density = TRUE verb_exclaim = "blares" var/timing = FALSE - var/default_timer = 4500 var/obj/effect/countdown/doomsday/countdown var/detonation_timer - var/list/milestones = list() + var/list/milestones -/obj/machinery/doomsday_device/New() - ..() +/obj/machinery/doomsday_device/Initialize() + . = ..() countdown = new(src) + milestones = list() /obj/machinery/doomsday_device/Destroy() - if(countdown) - qdel(countdown) - countdown = null + QDEL_NULL(countdown) STOP_PROCESSING(SSfastprocess, src) SSshuttle.clearHostileEnvironment(src) SSmapping.remove_nuke_threat(src) for(var/A in GLOB.ai_list) - var/mob/living/silicon/ai/Mlf = A - if(Mlf.doomsday_device == src) - Mlf.doomsday_device = null - . = ..() + var/mob/living/silicon/ai/AI = A + if(AI.doomsday_device == src) + AI.doomsday_device = null + return ..() /obj/machinery/doomsday_device/proc/start() - detonation_timer = world.time + default_timer + detonation_timer = world.time + DEFAULT_DOOMSDAY_TIMER timing = TRUE countdown.start() START_PROCESSING(SSfastprocess, src) @@ -90,24 +90,24 @@ /obj/machinery/doomsday_device/process() var/turf/T = get_turf(src) if(!T || T.z != ZLEVEL_STATION) - minor_announce("DOOMSDAY DEVICE OUT OF STATION RANGE, ABORTING", "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", 1) + minor_announce("DOOMSDAY DEVICE OUT OF STATION RANGE, ABORTING", "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", TRUE) SSshuttle.clearHostileEnvironment(src) qdel(src) + return if(!timing) STOP_PROCESSING(SSfastprocess, src) return var/sec_left = seconds_remaining() - if(sec_left <= 0) + if(!sec_left) timing = FALSE detonate(T.z) else var/key = num2text(sec_left) if(!(sec_left % 60) && !(key in milestones)) milestones[key] = TRUE - var/message = "[key] SECONDS UNTIL DOOMSDAY DEVICE ACTIVATION!" - minor_announce(message, "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", 1) + minor_announce("[key] SECONDS UNTIL DOOMSDAY DEVICE ACTIVATION!", "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", TRUE) -/obj/machinery/doomsday_device/proc/detonate(z_level = 1) +/obj/machinery/doomsday_device/proc/detonate(z_level = ZLEVEL_STATION) for(var/mob/M in GLOB.player_list) M << 'sound/machines/Alarm.ogg' sleep(100) @@ -604,3 +604,6 @@ eyeobj.relay_speech = TRUE to_chat(src, "OTA firmware distribution complete! Cameras upgraded: Enhanced surveillance package online.") verbs -= /mob/living/silicon/ai/proc/surveillance + + +#undef DEFAULT_DOOMSDAY_TIMER \ No newline at end of file