From 84023ff1a3aa7e5853e86de0f0952250c312d793 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Thu, 26 Jun 2014 14:42:35 -0400 Subject: [PATCH] Updates secrets panel to use the new shuttle... ...datum correctly. --- code/modules/admin/admin.dm | 3 + code/modules/admin/topic.dm | 108 +++++++++++++++++++++++++++++++++--- 2 files changed, 102 insertions(+), 9 deletions(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 89a4690956..e8cfce100d 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -637,6 +637,9 @@ var/global/floorIsLava = 0 Make all items look like guns
Japanese Animes Mode
Egalitarian Station Mode
+ Launch a shuttle
+ Force launch a shuttle
+ Jump a shuttle
Move a shuttle
Break all lights
Fix all lights
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 653a2a8e7f..df21a2372f 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1922,21 +1922,111 @@ message_admins("\blue [key_name_admin(usr)] used everyone is a traitor secret. Objective is [objective]", 1) log_admin("[key_name(usr)] used everyone is a traitor secret. Objective is [objective]") + if("launchshuttle") + if(!shuttle_controller) return // Something is very wrong, the shuttle controller has not been created. + + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","ShL") + + var/list/valid_shuttles = list() + for (var/shuttle_tag in shuttle_controller.shuttles) + 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 + + if (!shuttle_tag) + return + + var/datum/shuttle/ferry/S = shuttle_controller.shuttles[shuttle_tag] + if (S.can_launch()) + S.launch(usr) + message_admins("\blue [key_name_admin(usr)] launched the [shuttle_tag] shuttle", 1) + log_admin("[key_name(usr)] launched the [shuttle_tag] shuttle") + else + alert("The [shuttle_tag] shuttle cannot be launched at this time. It's probably busy.") + + if("forcelaunchshuttle") + if(!shuttle_controller) return // Something is very wrong, the shuttle controller has not been created. + + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","ShFL") + + var/list/valid_shuttles = list() + for (var/shuttle_tag in shuttle_controller.shuttles) + 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 + + if (!shuttle_tag) + return + + var/datum/shuttle/ferry/S = shuttle_controller.shuttles[shuttle_tag] + if (S.can_force()) + S.force_launch(usr) + message_admins("\blue [key_name_admin(usr)] has forced the [shuttle_tag] shuttle launch", 1) + log_admin("[key_name(usr)] has forced the [shuttle_tag] shuttle launch") + else + alert("The [shuttle_tag] shuttle launch cannot be forced at this time. It's busy, or hasn't been launched yet.") + + if("jumpshuttle") + if(!shuttle_controller) return // Something is very wrong, the shuttle controller has not been created. + + feedback_inc("admin_secrets_fun_used",1) + feedback_add_details("admin_secrets_fun_used","ShJ") + + var/shuttle_tag = input("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 + 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 + if (!destination_area) return + + var/long_jump = alert("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 + if (!transition_area) return + + var/move_duration = input("How many seconds will this jump take?") as num + + S.long_jump(origin_area, destination_area, transition_area, move_duration) + message_admins("\blue [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") + else + S.short_jump(origin_area, destination_area) + message_admins("\blue [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") + if("moveshuttle") if(!shuttle_controller) return // Something is very wrong, the shuttle controller has not been created. feedback_inc("admin_secrets_fun_used",1) - feedback_add_details("admin_secrets_fun_used","ShA") + feedback_add_details("admin_secrets_fun_used","ShM") + + 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") + if (confirm == "Cancel") + return - var/shuttle_tag = input("Which shuttle do you want to call?") as null|anything in shuttle_controller.shuttles - - if(shuttle_tag) - var/datum/shuttle/S = shuttle_controller.shuttles[shuttle_tag] - if(istype(S) && S.moving_status == 0) - S.move() - message_admins("\blue [key_name_admin(usr)] moved the [shuttle_tag] shuttle", 1) - log_admin("[key_name(usr)] moved the [shuttle_tag] shuttle") + var/shuttle_tag = input("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 + 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 + if (!destination_area) return + + S.move(origin_area, destination_area) + message_admins("\blue [key_name_admin(usr)] moved the [shuttle_tag] shuttle", 1) + log_admin("[key_name(usr)] moved the [shuttle_tag] shuttle") if("togglebombcap") feedback_inc("admin_secrets_fun_used",1)