From 8e0c06e50e52a484c60de8fc0ace1473d23c312e Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 25 Jan 2020 00:32:27 +0100 Subject: [PATCH] Hey, do you remember that wizard round where everyone tried arming up the nuclear bomb and we all went DELTA RED DELTA RED DELTA RED DELTA ? --- code/game/machinery/computer/communications.dm | 15 ++++++++++----- .../antagonists/nukeop/equipment/nuclearbomb.dm | 5 +++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 1bc8a82147..17f17e8247 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -15,6 +15,7 @@ var/message_cooldown = 0 var/ai_message_cooldown = 0 var/tmp_alertlevel = 0 + var/static/security_level_cd // used to stop mass spam. var/const/STATE_DEFAULT = 1 var/const/STATE_CALLSHUTTLE = 2 var/const/STATE_CANCELSHUTTLE = 3 @@ -94,16 +95,18 @@ I = pda.id if (I && istype(I)) if(ACCESS_CAPTAIN in I.access) + if(security_level_cd < world.time) + to_chat(usr, "Security level protocols are currently on cooldown. Please stand by.") + return var/old_level = GLOB.security_level if(!tmp_alertlevel) tmp_alertlevel = SEC_LEVEL_GREEN if(tmp_alertlevel < SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN - if(tmp_alertlevel == SEC_LEVEL_BLUE) - tmp_alertlevel = SEC_LEVEL_BLUE if(tmp_alertlevel > SEC_LEVEL_AMBER) tmp_alertlevel = SEC_LEVEL_AMBER //Cannot engage delta with this set_security_level(tmp_alertlevel) + security_level_cd = world.time + 15 SECONDS if(GLOB.security_level != old_level) to_chat(usr, "Authorization confirmed. Modifying security level.") playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) @@ -376,19 +379,21 @@ if("ai-announce") make_announcement(usr, 1) if("ai-securitylevel") + if(security_level_cd < world.time) + to_chat(usr, "Security level protocols are currently on cooldown. Please stand by.") + return tmp_alertlevel = text2num( href_list["newalertlevel"] ) if(!tmp_alertlevel) - tmp_alertlevel = 0 + tmp_alertlevel = SEC_LEVEL_GREEN var/old_level = GLOB.security_level if(!tmp_alertlevel) tmp_alertlevel = SEC_LEVEL_GREEN if(tmp_alertlevel < SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN - if(tmp_alertlevel == SEC_LEVEL_BLUE) - tmp_alertlevel = SEC_LEVEL_BLUE if(tmp_alertlevel > SEC_LEVEL_AMBER) tmp_alertlevel = SEC_LEVEL_AMBER //Cannot engage delta with this set_security_level(tmp_alertlevel) + security_level_cd = world.time + 15 SECONDS if(GLOB.security_level != old_level) //Only notify people if an actual change happened var/security_level = get_security_level() diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 2186e8b49e..5818ba0001 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -30,6 +30,7 @@ var/interior = "" var/proper_bomb = TRUE //Please var/obj/effect/countdown/nuclearbomb/countdown + var/nuclear_cooldown //used to stop global spam. /obj/machinery/nuclearbomb/Initialize() . = ..() @@ -367,12 +368,16 @@ return timing = !timing if(timing) + if(nuclear_cooldown < world.time) + to_chat(usr, "[src]'s timer protocols are currently on cooldown, please stand by.") + return previous_level = get_security_level() detonation_timer = world.time + (timer_set * 10) for(var/obj/item/pinpointer/nuke/syndicate/S in GLOB.pinpointer_list) S.switch_mode_to(TRACK_INFILTRATOR) countdown.start() set_security_level("delta") + nuclear_cooldown = world.time + 15 SECONDS if(GLOB.war_declared) var/area/A = get_area(src)