diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 6db2c28c2e6..6fcef90ce11 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -39,8 +39,18 @@ #define ADMIN_QUE(user) "(?)" #define ADMIN_FLW(user) "(FLW)" +#define ADMIN_PP(user) "(PP)" +#define ADMIN_VV(atom) "(VV)" +#define ADMIN_SM(user) "(SM)" +#define ADMIN_TP(user) "(TP)" +#define ADMIN_BSA(user) "(BSA)" +#define ADMIN_CENTCOM_REPLY(user) "(RPLY)" +#define ADMIN_SYNDICATE_REPLY(user) "(RPLY)" +#define ADMIN_SC(user) "(SC)" #define ADMIN_LOOKUP(user) "[key_name_admin(user)][ADMIN_QUE(user)]" #define ADMIN_LOOKUPFLW(user) "[key_name_admin(user)][ADMIN_QUE(user)] [ADMIN_FLW(user)]" +#define ADMIN_SET_SD_CODE "(SETCODE)" +#define ADMIN_FULLMONTY(user) "[key_name_admin(user)] ([ADMIN_QUE(user)]) [ADMIN_PP(user)] [ADMIN_VV(user)] [ADMIN_SM(user)] [ADMIN_FLW(user)] [ADMIN_TP(user)]" #define ADMIN_JMP(src) "(JMP)" #define COORD(src) "([src.x],[src.y],[src.z])" #define ADMIN_COORDJMP(src) "[COORD(src)] [ADMIN_JMP(src)]" diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index f553539156f..a5b1347ee76 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1399,4 +1399,11 @@ proc/pick_closest_path(value) admins_warned = 1 spawn(25) message_admins(msg) - stack_trace(msg) \ No newline at end of file + stack_trace(msg) + +/proc/random_nukecode() + var/val = rand(0, 99999) + var/str = "[val]" + while(length(str) < 5) + str = "0" + str + . = str diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm index d0aa8b724fc..246677cea13 100644 --- a/code/game/gamemodes/blob/blob_report.dm +++ b/code/game/gamemodes/blob/blob_report.dm @@ -16,7 +16,7 @@ print_command_report(intercepttext,"Level 5-6 Biohazard Response Procedures") priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak5.ogg') if(2) - var/nukecode = rand(10000, 99999) + var/nukecode = random_nukecode() for(var/obj/machinery/nuclearbomb/bomb in machines) if(bomb && bomb.r_code) if(bomb.z == ZLEVEL_STATION) diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index c8c8eea8984..440d3ac1da6 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -67,7 +67,7 @@ synd_spawn += get_turf(A) continue - var/nuke_code = "[rand(10000, 99999)]" + var/nuke_code = random_nukecode() var/leader_selected = 0 var/agent_number = 1 var/spawnpos = 1 diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index afe5878b5af..b0007267e23 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2239,3 +2239,12 @@ custom_outfits.Add(O) message_admins("[key_name(usr)] created \"[O.name]\" outfit!") + + else if(href_list["set_selfdestruct_code"]) + if(!check_rights(R_ADMIN)) + return + var/code = random_nukecode() + for(var/obj/machinery/nuclearbomb/selfdestruct/SD in nuke_list) + SD.r_code = code + message_admins("[key_name_admin(usr)] has set the self-destruct \ + code to \"[code]\".") diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 1c5d3b54c67..5288a2af89f 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -239,7 +239,7 @@ if(agentcount < 3) return 0 - var/nuke_code = "[rand(10000, 99999)]" + var/nuke_code = random_nukecode() var/obj/machinery/nuclearbomb/nuke = locate("syndienuke") in nuke_list if(nuke) diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index 77eda46d3e8..78ffc5667ed 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -18,15 +18,22 @@ return var/image/cross = image('icons/obj/storage.dmi',"bible") + var/font_color = "purple" + var/prayer_type = "PRAYER" if(usr.job == "Chaplain") cross = image('icons/obj/storage.dmi',"kingyellow") - msg = "\icon[cross] CHAPLAIN PRAYER: [key_name_admin(src)] (?) (PP) (VV) (SM) (FLW) (TP) (SC): [msg]" + font_color = "blue" + prayer_type = "CHAPLAIN PRAYER" else if(iscultist(usr)) cross = image('icons/obj/storage.dmi',"tome") - msg = "\icon[cross] CULTIST PRAYER: [key_name_admin(src)] (?) (PP) (VV) (SM) (FLW) (TP) (SC): [msg]" - else - cross = image('icons/obj/storage.dmi',"bible") - msg = "\icon[cross] PRAYER: [key_name_admin(src)] (?) (PP) (VV) (SM) (FLW) (TP) (SC): [msg]" + font_color = "red" + prayer_type = "CULTIST PRAYER" + + msg = "\icon[cross] \ + [prayer_type]: \ + [ADMIN_FULLMONTY(src)] [ADMIN_SC(src)]: \ + [msg]" + for(var/client/C in admins) if(C.prefs.chat_toggles & CHAT_PRAYER) C << msg @@ -40,22 +47,34 @@ /proc/Centcomm_announce(text , mob/Sender) var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN) - msg = "CENTCOM:[key_name_admin(Sender)] (?) (PP) (VV) (SM) (FLW) (TP) (BSA) (RPLY): [msg]" + msg = "\ + CENTCOM:\ + [ADMIN_FULLMONTY(Sender)] [ADMIN_BSA(Sender)] \ + [ADMIN_CENTCOM_REPLY(Sender)]: \ + [msg]" admins << msg for(var/obj/machinery/computer/communications/C in machines) C.overrideCooldown() /proc/Syndicate_announce(text , mob/Sender) var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN) - msg = "SYNDICATE:[key_name_admin(Sender)] (?) (PP) (VV) (SM) (FLW) (TP) (BSA) (RPLY): [msg]" + msg = "\ + SYNDICATE:\ + [ADMIN_FULLMONTY(Sender)] [ADMIN_BSA(Sender)] \ + [ADMIN_SYNDICATE_REPLY(Sender)]: \ + [msg]" admins << msg for(var/obj/machinery/computer/communications/C in machines) C.overrideCooldown() /proc/Nuke_request(text , mob/Sender) var/msg = copytext(sanitize(text), 1, MAX_MESSAGE_LEN) - msg = "NUKE CODE REQUEST:[key_name_admin(Sender)] (?) (PP) (VV) (SM) (FLW) (TP) (BSA) (RPLY): [msg]" + msg = "\ + NUKE CODE REQUEST:\ + [ADMIN_FULLMONTY(Sender)] [ADMIN_BSA(Sender)] \ + [ADMIN_CENTCOM_REPLY(Sender)]\ + [ADMIN_SET_SD_CODE]: \ + [msg]" admins << msg - admins << "At this current time, the nuke must have the code manually set via varedit." for(var/obj/machinery/computer/communications/C in machines) C.overrideCooldown() diff --git a/code/modules/events/operative.dm b/code/modules/events/operative.dm index afdd178ac40..6a33688f659 100644 --- a/code/modules/events/operative.dm +++ b/code/modules/events/operative.dm @@ -39,7 +39,7 @@ if(nuke) var/nuke_code if(!nuke.r_code || nuke.r_code == "ADMIN") - nuke_code = "[rand(10000, 99999)]" + nuke_code = random_nukecode() nuke.r_code = nuke_code else nuke_code = nuke.r_code