From 457987046b9a1355f2eadff6817bae8fc891dc42 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Tue, 7 Jul 2015 11:24:09 +0200 Subject: [PATCH] Re-implements world end events as datums. --- baystation12.dme | 5 ++++- baystation12.int | 15 ++++++-------- code/_helpers/lists.dm | 2 +- code/modules/admin/admin_secrets.dm | 4 ++++ .../admin/secrets/admin_secrets/admin_logs.dm | 13 ++++++++++++ .../secrets/admin_secrets/jump_shuttle.dm | 20 +++++++++---------- .../{launch_shutter.dm => launch_shuttle.dm} | 6 +++--- .../admin_secrets/launch_shuttle_forced.dm | 6 +++--- .../admin_secrets/list_fingerprints.dm | 2 +- .../secrets/admin_secrets/move_shuttle.dm | 10 +++++----- .../secrets/final_solutions/summon_narsie.dm | 11 ++++++++++ .../final_solutions/supermatter_cascade.dm | 13 ++++++++++++ .../secrets/fun_secrets/break_all_lights.dm | 2 +- .../secrets/fun_secrets/toggle_bomb_cap.dm | 4 ++-- .../admin/secrets/random_events/gravity.dm | 12 +++++------ 15 files changed, 83 insertions(+), 42 deletions(-) create mode 100644 code/modules/admin/secrets/admin_secrets/admin_logs.dm rename code/modules/admin/secrets/admin_secrets/{launch_shutter.dm => launch_shuttle.dm} (74%) create mode 100644 code/modules/admin/secrets/final_solutions/summon_narsie.dm create mode 100644 code/modules/admin/secrets/final_solutions/supermatter_cascade.dm diff --git a/baystation12.dme b/baystation12.dme index 9946956dfb..a8b4f311ef 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 cfd9890d63..b82874fded 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 fb4cd3874e..b4f70b32b1 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 2ce43a7962..88a58ff6e8 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 0000000000..d2664f1e2b --- /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 1453ae35ce..4097632aa3 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 30867fca05..9d6ce44a2d 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 250d04b044..d1a86fec98 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 710cdaf4fe..03cb9701c4 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 e58863afde..5772bbed54 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 0000000000..8062f76752 --- /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 0000000000..a50596985c --- /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 5c65e389af..ea54952a7e 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 28cd3327c4..33ba8a861c 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 637bb7129f..8d4cad4960 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.")