From 21b0dfbaacb36a62a6e2fd68dc5f583f3aef0de3 Mon Sep 17 00:00:00 2001
From: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>
Date: Thu, 9 Sep 2021 15:45:13 -0400
Subject: [PATCH] Adds warning messages to admins for missing nukes
---
code/game/gamemodes/game_mode.dm | 16 ++++++++++++++++
code/modules/admin/verbs/pray.dm | 16 +++++++++++++++-
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 4e5372ffc2d..66a6a25aae9 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -1,3 +1,6 @@
+#define NUKE_INTACT 0
+#define NUKE_CORE_MISSING 1
+#define NUKE_MISSING 2
/*
* GAMEMODES (by Rastaf0)
*
@@ -434,6 +437,15 @@
nukecode = bomb.r_code
return nukecode
+/proc/get_nuke_status()
+ var/nuke_status = NUKE_MISSING
+ for(var/obj/machinery/nuclearbomb/bomb in GLOB.machines)
+ if(bomb && is_station_level(bomb.z))
+ nuke_status = NUKE_CORE_MISSING
+ if(bomb.core)
+ nuke_status = NUKE_INTACT
+ return nuke_status
+
/datum/game_mode/proc/replace_jobbanned_player(mob/living/M, role_type)
var/list/mob/dead/observer/candidates = SSghost_spawns.poll_candidates("Do you want to play as a [role_type]?", role_type, FALSE, 10 SECONDS)
var/mob/dead/observer/theghost = null
@@ -534,3 +546,7 @@
var/datum/atom_hud/antag/antaghud = GLOB.huds[ANTAG_HUD_EVENTMISC]
antaghud.leave_hud(mob_mind.current)
set_antag_hud(mob_mind.current, null)
+
+#undef NUKE_INTACT
+#undef NUKE_CORE_MISSING
+#undef NUKE_MISSING
diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm
index 8055c5e7a03..f8ed40c5767 100644
--- a/code/modules/admin/verbs/pray.dm
+++ b/code/modules/admin/verbs/pray.dm
@@ -1,3 +1,7 @@
+#define NUKE_INTACT 0
+#define NUKE_CORE_MISSING 1
+#define NUKE_MISSING 2
+
/mob/living/verb/pray(msg as text)
set category = "IC"
set name = "Pray"
@@ -72,11 +76,21 @@
/proc/Nuke_request(text , mob/Sender)
var/nuke_code = get_nuke_code()
+ var/nuke_status = get_nuke_status()
var/msg = sanitize(copytext(text, 1, MAX_MESSAGE_LEN))
msg = "NUKE CODE REQUEST: [key_name(Sender)] ([ADMIN_PP(Sender,"PP")]) ([ADMIN_VV(Sender,"VV")]) ([ADMIN_TP(Sender,"TP")]) ([ADMIN_SM(Sender,"SM")]) ([admin_jump_link(Sender)]) ([ADMIN_BSA(Sender,"BSA")]) ([ADMIN_CENTCOM_REPLY(Sender,"RPLY")]): [msg]"
for(var/client/X in GLOB.admins)
if(check_rights(R_EVENT,0,X.mob))
to_chat(X, msg)
- to_chat(X, "The nuke code is [nuke_code].")
+ if(nuke_status == NUKE_MISSING)
+ to_chat(X, "Nuclear device is not on station!")
+ else
+ to_chat(X, "The nuke code is [nuke_code].")
+ if(nuke_status == NUKE_CORE_MISSING)
+ to_chat(X, "Nuclear device does not have a core, and will not arm!")
if(X.prefs.sound & SOUND_ADMINHELP)
SEND_SOUND(X, sound('sound/effects/adminhelp.ogg'))
+
+#undef NUKE_INTACT
+#undef NUKE_CORE_MISSING
+#undef NUKE_MISSING