diff --git a/baystation12.dme b/baystation12.dme
index 9946956dfbb..a8b4f311eff 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -843,10 +843,11 @@
#include "code\modules\admin\ToRban.dm"
#include "code\modules\admin\DB ban\functions.dm"
#include "code\modules\admin\permissionverbs\permissionedit.dm"
+#include "code\modules\admin\secrets\admin_secrets\admin_logs.dm"
#include "code\modules\admin\secrets\admin_secrets\alter_narsie.dm"
#include "code\modules\admin\secrets\admin_secrets\bombing_list.dm"
#include "code\modules\admin\secrets\admin_secrets\jump_shuttle.dm"
-#include "code\modules\admin\secrets\admin_secrets\launch_shutter.dm"
+#include "code\modules\admin\secrets\admin_secrets\launch_shuttle.dm"
#include "code\modules\admin\secrets\admin_secrets\launch_shuttle_forced.dm"
#include "code\modules\admin\secrets\admin_secrets\list_dna.dm"
#include "code\modules\admin\secrets\admin_secrets\list_fingerprints.dm"
@@ -858,6 +859,8 @@
#include "code\modules\admin\secrets\admin_secrets\show_law_changes.dm"
#include "code\modules\admin\secrets\admin_secrets\show_signalers.dm"
#include "code\modules\admin\secrets\admin_secrets\traitors_and_objectives.dm"
+#include "code\modules\admin\secrets\final_solutions\summon_narsie.dm"
+#include "code\modules\admin\secrets\final_solutions\supermatter_cascade.dm"
#include "code\modules\admin\secrets\fun_secrets\break_all_lights.dm"
#include "code\modules\admin\secrets\fun_secrets\break_some_lights.dm"
#include "code\modules\admin\secrets\fun_secrets\fix_all_lights.dm"
diff --git a/baystation12.int b/baystation12.int
index cfd9890d63b..b82874fded5 100644
--- a/baystation12.int
+++ b/baystation12.int
@@ -1,9 +1,6 @@
-// BEGIN_INTERNALS
-/*
-DIR: code code\modules code\modules\mob code\modules\mob\freelook code\modules\mob\living code\modules\mob\living\carbon code\modules\mob\living\carbon\alien code\modules\mob\living\carbon\alien\diona code\modules\mob\living\carbon\alien\larva code\modules\mob\living\carbon\human
-AUTO_FILE_DIR: OFF
-MAP_ICON_TYPE: 0
-WINDOW: code\modules\mob\living\carbon\human\life.dm
-FILE: code\modules\mob\living\carbon\human\life.dm
-*/
-// END_INTERNALS
+// BEGIN_INTERNALS
+/*
+MAP_ICON_TYPE: 0
+AUTO_FILE_DIR: OFF
+*/
+// END_INTERNALS
diff --git a/code/_helpers/lists.dm b/code/_helpers/lists.dm
index fb4cd3874eb..b4f70b32b1d 100644
--- a/code/_helpers/lists.dm
+++ b/code/_helpers/lists.dm
@@ -592,7 +592,7 @@ proc/dd_sortedTextList(list/incoming)
return dd_sortedtextlist(incoming, case_sensitive)
-datum/proc/dd_SortValue()
+/datum/proc/dd_SortValue()
return "[src]"
/obj/machinery/dd_SortValue()
diff --git a/code/modules/admin/admin_secrets.dm b/code/modules/admin/admin_secrets.dm
index 2ce43a79620..88a58ff6e83 100644
--- a/code/modules/admin/admin_secrets.dm
+++ b/code/modules/admin/admin_secrets.dm
@@ -44,6 +44,9 @@ var/datum/admin_secrets/admin_secrets = new()
var/feedback = 1
var/permissions = R_HOST
+/datum/admin_secret_item/dd_SortValue()
+ return "[name]"
+
/datum/admin_secret_item/proc/name()
return name
@@ -75,6 +78,7 @@ var/datum/admin_secrets/admin_secrets = new()
/datum/admin_secret_category/final_solutions
name = "Final Solutions"
+ desc = "(Warning, these will end the round!)"
/*************************
* Pre-defined base items *
diff --git a/code/modules/admin/secrets/admin_secrets/admin_logs.dm b/code/modules/admin/secrets/admin_secrets/admin_logs.dm
new file mode 100644
index 00000000000..d2664f1e2be
--- /dev/null
+++ b/code/modules/admin/secrets/admin_secrets/admin_logs.dm
@@ -0,0 +1,13 @@
+/datum/admin_secret_item/admin_secret/admin_logs
+ name = "Admin Logs"
+
+/datum/admin_secret_item/admin_secret/admin_logs/execute(var/mob/user)
+ . = ..()
+ if(!.)
+ return
+ var/dat = "Admin Log
"
+ for(var/l in admin_log)
+ dat += "
[l]"
+ if(!admin_log.len)
+ dat += "No-one has done anything this round!"
+ user << browse(dat, "window=admin_log")
diff --git a/code/modules/admin/secrets/admin_secrets/jump_shuttle.dm b/code/modules/admin/secrets/admin_secrets/jump_shuttle.dm
index 1453ae35ce6..4097632aa30 100644
--- a/code/modules/admin/secrets/admin_secrets/jump_shuttle.dm
+++ b/code/modules/admin/secrets/admin_secrets/jump_shuttle.dm
@@ -9,28 +9,28 @@
. = ..()
if(!.)
return
- var/shuttle_tag = input("Which shuttle do you want to jump?") as null|anything in shuttle_controller.shuttles
+ var/shuttle_tag = input(user, "Which shuttle do you want to jump?") as null|anything in shuttle_controller.shuttles
if (!shuttle_tag) return
var/datum/shuttle/S = shuttle_controller.shuttles[shuttle_tag]
- var/origin_area = input("Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world
+ var/origin_area = input(user, "Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world
if (!origin_area) return
- var/destination_area = input("Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world
+ var/destination_area = input(user, "Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world
if (!destination_area) return
- var/long_jump = alert("Is there a transition area for this jump?","", "Yes", "No")
+ var/long_jump = alert(user, "Is there a transition area for this jump?","", "Yes", "No")
if (long_jump == "Yes")
- var/transition_area = input("Which area is the transition area? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world
+ var/transition_area = input(user, "Which area is the transition area? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world
if (!transition_area) return
- var/move_duration = input("How many seconds will this jump take?") as num
+ var/move_duration = input(user, "How many seconds will this jump take?") as num
S.long_jump(origin_area, destination_area, transition_area, move_duration)
- message_admins("[key_name_admin(usr)] has initiated a jump from [origin_area] to [destination_area] lasting [move_duration] seconds for the [shuttle_tag] shuttle", 1)
- log_admin("[key_name_admin(usr)] has initiated a jump from [origin_area] to [destination_area] lasting [move_duration] seconds for the [shuttle_tag] shuttle")
+ message_admins("[key_name_admin(user)] has initiated a jump from [origin_area] to [destination_area] lasting [move_duration] seconds for the [shuttle_tag] shuttle", 1)
+ log_admin("[key_name_admin(user)] has initiated a jump from [origin_area] to [destination_area] lasting [move_duration] seconds for the [shuttle_tag] shuttle")
else
S.short_jump(origin_area, destination_area)
- message_admins("[key_name_admin(usr)] has initiated a jump from [origin_area] to [destination_area] for the [shuttle_tag] shuttle", 1)
- log_admin("[key_name_admin(usr)] has initiated a jump from [origin_area] to [destination_area] for the [shuttle_tag] shuttle")
+ message_admins("[key_name_admin(user)] has initiated a jump from [origin_area] to [destination_area] for the [shuttle_tag] shuttle", 1)
+ log_admin("[key_name_admin(user)] has initiated a jump from [origin_area] to [destination_area] for the [shuttle_tag] shuttle")
diff --git a/code/modules/admin/secrets/admin_secrets/launch_shutter.dm b/code/modules/admin/secrets/admin_secrets/launch_shuttle.dm
similarity index 74%
rename from code/modules/admin/secrets/admin_secrets/launch_shutter.dm
rename to code/modules/admin/secrets/admin_secrets/launch_shuttle.dm
index 30867fca051..9d6ce44a2d2 100644
--- a/code/modules/admin/secrets/admin_secrets/launch_shutter.dm
+++ b/code/modules/admin/secrets/admin_secrets/launch_shuttle.dm
@@ -14,13 +14,13 @@
if (istype(shuttle_controller.shuttles[shuttle_tag], /datum/shuttle/ferry))
valid_shuttles += shuttle_tag
- var/shuttle_tag = input("Which shuttle do you want to launch?") as null|anything in valid_shuttles
+ var/shuttle_tag = input(user, "Which shuttle do you want to launch?") as null|anything in valid_shuttles
if (!shuttle_tag)
return
var/datum/shuttle/ferry/S = shuttle_controller.shuttles[shuttle_tag]
if (S.can_launch())
- S.launch(usr)
+ S.launch(user)
log_and_message_admins("launched the [shuttle_tag] shuttle", user)
else
- alert("The [shuttle_tag] shuttle cannot be launched at this time. It's probably busy.")
+ alert(user, "The [shuttle_tag] shuttle cannot be launched at this time. It's probably busy.")
diff --git a/code/modules/admin/secrets/admin_secrets/launch_shuttle_forced.dm b/code/modules/admin/secrets/admin_secrets/launch_shuttle_forced.dm
index 250d04b0443..d1a86fec98d 100644
--- a/code/modules/admin/secrets/admin_secrets/launch_shuttle_forced.dm
+++ b/code/modules/admin/secrets/admin_secrets/launch_shuttle_forced.dm
@@ -14,13 +14,13 @@
if (istype(shuttle_controller.shuttles[shuttle_tag], /datum/shuttle/ferry))
valid_shuttles += shuttle_tag
- var/shuttle_tag = input("Which shuttle's launch do you want to force?") as null|anything in valid_shuttles
+ var/shuttle_tag = input(user, "Which shuttle's launch do you want to force?") as null|anything in valid_shuttles
if (!shuttle_tag)
return
var/datum/shuttle/ferry/S = shuttle_controller.shuttles[shuttle_tag]
if (S.can_force())
- S.force_launch(usr)
+ S.force_launch(user)
log_and_message_admins("forced the [shuttle_tag] shuttle", user)
else
- alert("The [shuttle_tag] shuttle launch cannot be forced at this time. It's busy, or hasn't been launched yet.")
+ alert(user, "The [shuttle_tag] shuttle launch cannot be forced at this time. It's busy, or hasn't been launched yet.")
diff --git a/code/modules/admin/secrets/admin_secrets/list_fingerprints.dm b/code/modules/admin/secrets/admin_secrets/list_fingerprints.dm
index 710cdaf4fed..03cb9701c41 100644
--- a/code/modules/admin/secrets/admin_secrets/list_fingerprints.dm
+++ b/code/modules/admin/secrets/admin_secrets/list_fingerprints.dm
@@ -16,4 +16,4 @@
else if(!H.dna)
dat += "| [H] | H.dna = null |
"
dat += ""
- usr << browse(dat, "window=fingerprints;size=440x410")
+ user << browse(dat, "window=fingerprints;size=440x410")
diff --git a/code/modules/admin/secrets/admin_secrets/move_shuttle.dm b/code/modules/admin/secrets/admin_secrets/move_shuttle.dm
index e58863afde2..5772bbed54c 100644
--- a/code/modules/admin/secrets/admin_secrets/move_shuttle.dm
+++ b/code/modules/admin/secrets/admin_secrets/move_shuttle.dm
@@ -9,20 +9,20 @@
. = ..()
if(!.)
return
- var/confirm = alert("This command directly moves a shuttle from one area to another. DO NOT USE THIS UNLESS YOU ARE DEBUGGING A SHUTTLE AND YOU KNOW WHAT YOU ARE DOING.", "Are you sure?", "Ok", "Cancel")
+ var/confirm = alert(user, "This command directly moves a shuttle from one area to another. DO NOT USE THIS UNLESS YOU ARE DEBUGGING A SHUTTLE AND YOU KNOW WHAT YOU ARE DOING.", "Are you sure?", "Ok", "Cancel")
if (confirm == "Cancel")
return
- var/shuttle_tag = input("Which shuttle do you want to jump?") as null|anything in shuttle_controller.shuttles
+ var/shuttle_tag = input(user, "Which shuttle do you want to jump?") as null|anything in shuttle_controller.shuttles
if (!shuttle_tag) return
var/datum/shuttle/S = shuttle_controller.shuttles[shuttle_tag]
- var/origin_area = input("Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world
+ var/origin_area = input(user, "Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world
if (!origin_area) return
- var/destination_area = input("Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world
+ var/destination_area = input(user, "Which area is the shuttle at now? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)") as null|area in world
if (!destination_area) return
S.move(origin_area, destination_area)
- log_and_message_admins("[key_name_admin(usr)] moved the [shuttle_tag] shuttle", user)
+ log_and_message_admins("moved the [shuttle_tag] shuttle", user)
diff --git a/code/modules/admin/secrets/final_solutions/summon_narsie.dm b/code/modules/admin/secrets/final_solutions/summon_narsie.dm
new file mode 100644
index 00000000000..8062f767526
--- /dev/null
+++ b/code/modules/admin/secrets/final_solutions/summon_narsie.dm
@@ -0,0 +1,11 @@
+/datum/admin_secret_item/final_solution/summon_narsie
+ name = "Summon Nar-Sie"
+
+/datum/admin_secret_item/final_solution/summon_narsie/execute(var/mob/user)
+ . = ..()
+ if(!.)
+ return
+ var/choice = input(user, "You sure you want to end the round and summon Nar-Sie at your location? Misuse of this could result in removal of flags or hilarity.") in list("PRAISE SATAN", "Cancel")
+ if(choice == "PRAISE SATAN")
+ new /obj/singularity/narsie/large(get_turf(user))
+ log_and_message_admins("has summoned Nar-Sie and brought about a new realm of suffering.", user)
diff --git a/code/modules/admin/secrets/final_solutions/supermatter_cascade.dm b/code/modules/admin/secrets/final_solutions/supermatter_cascade.dm
new file mode 100644
index 00000000000..a50596985c1
--- /dev/null
+++ b/code/modules/admin/secrets/final_solutions/supermatter_cascade.dm
@@ -0,0 +1,13 @@
+/datum/admin_secret_item/final_solution/supermatter_cascade
+ name = "Supermatter Cascade"
+
+/datum/admin_secret_item/final_solution/supermatter_cascade/execute(var/mob/user)
+ . = ..()
+ if(!.)
+ return
+ var/choice = input(user, "You sure you want to destroy the universe and create a large explosion at your location? Misuse of this could result in removal of flags or hilarity.") in list("NO TIME TO EXPLAIN", "Cancel")
+ if(choice == "NO TIME TO EXPLAIN")
+ explosion(get_turf(user), 8, 16, 24, 32, 1)
+ new /turf/unsimulated/wall/supermatter(get_turf(user))
+ SetUniversalState(/datum/universal_state/supermatter_cascade)
+ message_admins("[key_name_admin(user)] has managed to destroy the universe with a supermatter cascade. Good job, [key_name_admin(user)]")
diff --git a/code/modules/admin/secrets/fun_secrets/break_all_lights.dm b/code/modules/admin/secrets/fun_secrets/break_all_lights.dm
index 5c65e389af7..ea54952a7e1 100644
--- a/code/modules/admin/secrets/fun_secrets/break_all_lights.dm
+++ b/code/modules/admin/secrets/fun_secrets/break_all_lights.dm
@@ -1,7 +1,7 @@
/datum/admin_secret_item/fun_secret/break_all_lights
name = "Break All Lights"
-/datum/admin_secret_item/fun_secret/make_all_areas_powered/execute(var/mob/user)
+/datum/admin_secret_item/fun_secret/break_all_lights/execute(var/mob/user)
. = ..()
if(.)
lightsout(0,0)
diff --git a/code/modules/admin/secrets/fun_secrets/toggle_bomb_cap.dm b/code/modules/admin/secrets/fun_secrets/toggle_bomb_cap.dm
index 28cd3327c43..33ba8a861ce 100644
--- a/code/modules/admin/secrets/fun_secrets/toggle_bomb_cap.dm
+++ b/code/modules/admin/secrets/fun_secrets/toggle_bomb_cap.dm
@@ -17,5 +17,5 @@
var/range_dev = max_explosion_range *0.25
var/range_high = max_explosion_range *0.5
var/range_low = max_explosion_range
- message_admins("[key_name_admin(usr)] changed the bomb cap to [range_dev], [range_high], [range_low]", 1)
- log_admin("[key_name_admin(usr)] changed the bomb cap to [max_explosion_range]")
+ message_admins("[key_name_admin(user)] changed the bomb cap to [range_dev], [range_high], [range_low]", 1)
+ log_admin("[key_name_admin(user)] changed the bomb cap to [max_explosion_range]")
diff --git a/code/modules/admin/secrets/random_events/gravity.dm b/code/modules/admin/secrets/random_events/gravity.dm
index 637bb7129ff..8d4cad49604 100644
--- a/code/modules/admin/secrets/random_events/gravity.dm
+++ b/code/modules/admin/secrets/random_events/gravity.dm
@@ -22,10 +22,10 @@
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","Grav")
if(gravity_is_on)
- log_admin("[key_name(usr)] toggled gravity on.", 1)
- message_admins("\blue [key_name_admin(usr)] toggled gravity on.", 1)
- command_announcement.Announce("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.")
+ log_admin("[key_name(user)] toggled gravity on.", 1)
+ message_admins("[key_name_admin(user)] toggled gravity on.", 1)
+ command_announcement.Announce("Gravity generators are again functioning within normal parameters. Sorry for any inconvenience.")
else
- log_admin("[key_name(usr)] toggled gravity off.", 1)
- message_admins("\blue [key_name_admin(usr)] toggled gravity off.", 1)
- command_announcement.Announce("Feedback surge detected in mass-distributions systems. Artificial gravity has been disabled whilst the system reinitializes. Further failures may result in a gravitational collapse and formation of blackholes. Have a nice day.")
+ log_admin("[key_name(user)] toggled gravity off.", 1)
+ message_admins("[key_name_admin(usr)] toggled gravity off.", 1)
+ command_announcement.Announce("Feedback surge detected in mass-distributions systems. Artificial gravity has been disabled whilst the system reinitializes. Further failures may result in a gravitational collapse and formation of blackholes. Have a nice day.")