diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm
index 6855ed2efcb..2abd022a271 100644
--- a/code/_globalvars/lists/objects.dm
+++ b/code/_globalvars/lists/objects.dm
@@ -7,6 +7,7 @@ var/global/list/machines = list() //NOTE: this is a list of ALL machines now
var/global/list/navbeacons = list() //list of all bot nagivation beacons, used for patrolling.
var/global/list/deliverybeacons = list() //list of all MULEbot delivery beacons.
var/global/list/deliverybeacontags = list() //list of all tags associated with delivery beacons.
+var/global/list/nuke_list = list()
var/global/list/chemical_reactions_list //list of all /datum/chemical_reaction datums. Used during chemical reactions
var/global/list/chemical_reagents_list //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff
diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm
index 6f1d6d9cfde..b6dc005d76e 100644
--- a/code/game/gamemodes/nuclear/nuclearbomb.dm
+++ b/code/game/gamemodes/nuclear/nuclearbomb.dm
@@ -19,6 +19,10 @@ var/bomb_set
var/lastentered = ""
var/immobile = 0 //Not all nukes should be moved
+/obj/machinery/nuclearbomb/New()
+ ..()
+ nuke_list += src
+
/obj/machinery/nuclearbomb/selfdestruct
name = "station self-destruct terminal"
desc = "For when it all gets too much to bear. Do not taunt."
diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm
index 2f89a0d979e..3c6fc547ed9 100644
--- a/code/game/objects/items/weapons/flamethrower.dm
+++ b/code/game/objects/items/weapons/flamethrower.dm
@@ -65,6 +65,7 @@
var/turf/target_turf = get_turf(target)
if(target_turf)
var/turflist = getline(user, target_turf)
+ add_logs(user, target, "flamethrowered", admin=0, addition="at [target.x],[target.y],[target.z]")
flame_turf(turflist)
/obj/item/weapon/flamethrower/attackby(obj/item/W as obj, mob/user as mob, params)
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 1c073505ab8..c48b54bc764 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -86,7 +86,9 @@ var/list/admin_verbs_fun = list(
/client/proc/set_ooc,
/client/proc/reset_ooc,
/client/proc/forceEvent,
- /client/proc/bluespace_artillery
+ /client/proc/bluespace_artillery,
+ /client/proc/admin_change_sec_level,
+ /client/proc/toggle_nuke
)
var/list/admin_verbs_spawn = list(
/datum/admins/proc/spawn_atom, /*allows us to spawn instances*/
@@ -198,7 +200,9 @@ var/list/admin_verbs_hideable = list(
/proc/release,
/client/proc/reload_admins,
/client/proc/reset_all_tcs,
- /client/proc/panicbunker
+ /client/proc/panicbunker,
+ /client/proc/admin_change_sec_level,
+ /client/proc/toggle_nuke
)
/client/proc/add_admin_verbs()
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 87ebd141d1d..af9bfc66acb 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -551,67 +551,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
log_admin("[key_name(usr)] used gibself.")
message_admins("[key_name_admin(usr)] used gibself.")
feedback_add_details("admin_verb","GIBS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-/*
-/client/proc/cmd_manual_ban()
- set name = "Manual Ban"
- set category = "Special Verbs"
- if(!authenticated || !holder)
- src << "Only administrators may use this command."
- return
- var/mob/M = null
- switch(alert("How would you like to ban someone today?", "Manual Ban", "Key List", "Enter Manually", "Cancel"))
- if("Key List")
- var/list/keys = list()
- for(var/mob/M in world)
- keys += M.client
- var/selection = input("Please, select a player!", "Admin Jumping", null, null) as null|anything in keys
- if(!selection)
- return
- M = selection:mob
- if ((M.client && M.client.holder && (M.client.holder.level >= holder.level)))
- alert("You cannot perform this action. You must be of a higher administrative rank!")
- return
-
- switch(alert("Temporary Ban?",,"Yes","No"))
- if("Yes")
- var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num
- if(!mins)
- return
- if(mins >= 525600) mins = 525599
- var/reason = input(usr,"Reason?","reason","Griefer") as text
- if(!reason)
- return
- if(M)
- AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins)
- M << "\redYou have been banned by [usr.client.ckey].\nReason: [reason]"
- M << "\red This is a temporary ban, it will be removed in [mins] minutes."
- M << "\red To try to resolve this matter head to http://ss13.donglabs.com/forum/"
- log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
- message_admins("\blue[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
- world.Export("http://216.38.134.132/adminlog.php?type=ban&key=[usr.client.key]&key2=[M.key]&msg=[html_decode(reason)]&time=[mins]&server=[replacetext(config.server_name, "#", "")]")
- del(M.client)
- qdel(M)
- else
-
- if("No")
- var/reason = input(usr,"Reason?","reason","Griefer") as text
- if(!reason)
- return
- AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0)
- M << "\redYou have been banned by [usr.client.ckey].\nReason: [reason]"
- M << "\red This is a permanent ban."
- M << "\red To try to resolve this matter head to http://ss13.donglabs.com/forum/"
- log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
- message_admins("\blue[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
- world.Export("http://216.38.134.132/adminlog.php?type=ban&key=[usr.client.key]&key2=[M.key]&msg=[html_decode(reason)]&time=perma&server=[replacetext(config.server_name, "#", "")]")
- del(M.client)
- qdel(M)
-*/
-
-/client/proc/update_world()
- // If I see anyone granting powers to specific keys like the code that was here,
- // I will both remove their SVN access and permanently ban them from my servers.
- return
/client/proc/cmd_admin_check_contents(mob/living/M as mob in mob_list)
set category = "Special Verbs"
@@ -622,37 +561,6 @@ Traitors and the like can also be revived with the previous role mostly intact.
usr << "[t]"
feedback_add_details("admin_verb","CC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-/* This proc is DEFERRED. Does not do anything.
-/client/proc/cmd_admin_remove_plasma()
- set category = "Debug"
- set name = "Stabilize Atmos."
- if(!holder)
- src << "Only administrators may use this command."
- return
- feedback_add_details("admin_verb","STATM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
-// DEFERRED
- spawn(0)
- for(var/turf/T in view())
- T.poison = 0
- T.oldpoison = 0
- T.tmppoison = 0
- T.oxygen = 755985
- T.oldoxy = 755985
- T.tmpoxy = 755985
- T.co2 = 14.8176
- T.oldco2 = 14.8176
- T.tmpco2 = 14.8176
- T.n2 = 2.844e+006
- T.on2 = 2.844e+006
- T.tn2 = 2.844e+006
- T.tsl_gas = 0
- T.osl_gas = 0
- T.sl_gas = 0
- T.temp = 293.15
- T.otemp = 293.15
- T.ttemp = 293.15
-*/
-
/client/proc/toggle_view_range()
set category = "Special Verbs"
set name = "Change View Range"
@@ -782,3 +690,42 @@ Traitors and the like can also be revived with the previous role mostly intact.
log_admin("[key_name(usr)] blanked all telecomms scripts.")
message_admins("[key_name_admin(usr)] blanked all telecomms scripts.")
feedback_add_details("admin_verb","RAT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+
+/client/proc/admin_change_sec_level()
+ set category = "Special Verbs"
+ set name = "Set Security Level"
+ set desc = "Changes the security level. Announcement only, i.e. setting to Delta won't activate nuke"
+
+ if (!holder)
+ src << "Only administrators may use this command."
+ return
+
+ var/level = input("Select security level to change to","Set Security Level") as null|anything in list("green","blue","red","delta")
+ if(level)
+ set_security_level(level)
+
+ log_admin("[key_name(usr)] changed the security level to [level]")
+ message_admins("[key_name_admin(usr)] changed the security level to [level]")
+ feedback_add_details("admin_verb","CSL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+
+/client/proc/toggle_nuke(obj/machinery/nuclearbomb/N in nuke_list)
+ set name = "Toggle Nuke"
+ set category = "Fun"
+ set popup_menu = 0
+ if(!check_rights(R_DEBUG)) return
+
+ if(!N.timing)
+ var/newtime = input(usr, "Set activation timer.", "Activate Nuke", "[N.timeleft]") as num
+ if(!newtime)
+ return
+ N.timeleft = newtime
+ N.safety = !N.safety
+ N.timing = !N.timing
+ bomb_set = !bomb_set
+ N.icon_state = (N.timing ? "nuclearbomb2" : "nuclearbomb1")
+ N.previous_level = "[get_security_level()]"
+ set_security_level((N.timing ? "delta" : "[N.previous_level]"))
+
+ log_admin("[key_name(usr)] [N.timing ? "activated" : "deactivated"] a nuke at ([N.x],[N.y],[N.z]).")
+ message_admins("[key_name_admin(usr)] (FLW) [N.timing ? "activated" : "deactivated"] a nuke at ([N.x],[N.y],[N.z] - JMP).")
+ feedback_add_details("admin_verb","TN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
\ No newline at end of file
diff --git a/html/changelogs/jordie adminstuff.yml b/html/changelogs/jordie adminstuff.yml
index ab7889519a4..a9d4ef9d62a 100644
--- a/html/changelogs/jordie adminstuff.yml
+++ b/html/changelogs/jordie adminstuff.yml
@@ -4,4 +4,6 @@ delete-after: True
changes:
- tweak: "For Admins: Jump-to-Mob (JMP) notification command replaced with Follow (FLW)."
- - rscadd: "Message and Follow links added to many notifications."
\ No newline at end of file
+ - rscadd: "Message and Follow links added to many notifications."
+ - rscadd: "New buttons to toggle nuke and set security level."
+ - spellcheck: "Flamethrowers are logged in attack_log."
\ No newline at end of file