From 51c0d509d9dbe41dfc875104ee5e36031aaeda46 Mon Sep 17 00:00:00 2001 From: IK3I Date: Thu, 11 Jan 2018 07:36:20 -0600 Subject: [PATCH 1/5] Fixes #8484 Switches die after the first else encountered. Surprised it didn't spit an error for that. --- code/modules/admin/verbs/randomverbs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 27b6c38a469..05ce538ffc8 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -576,7 +576,7 @@ Traitors and the like can also be revived with the previous role mostly intact. command_announcement.Announce(input, customname, MsgSound[beepsound], , , type) print_command_report(input, "[command_name()] Update") - else if("No") + if("No") //same thing as the blob stuff - it's not public, so it's classified, dammit command_announcer.autosay("A classified message has been printed out at all communication consoles."); print_command_report(input, "Classified [command_name()] Update") From d57622b460d3df0779f7e8c63dc882b7b189a04c Mon Sep 17 00:00:00 2001 From: IK3I Date: Thu, 11 Jan 2018 11:41:04 -0600 Subject: [PATCH 2/5] NARSIE SAYS LEAVE! * Shuttles now properly respect the intentions of eldritch horrors * Comms consoles will tell you when the shuttle can't be recalled instead of just saying nope * Admemes can now designate if their shuttles are recallable when they call them --- code/game/gamemodes/cult/runes.dm | 1 + .../shadowling/special_shadowling_abilities.dm | 1 + code/game/machinery/computer/communications.dm | 11 +++++++---- code/modules/admin/verbs/randomverbs.dm | 7 +++++++ code/modules/power/singularity/narsie.dm | 1 + 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 892a5e7a204..0445afdf03f 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -608,6 +608,7 @@ var/list/teleport_runes = list() new /mob/living/simple_animal/slaughter/cult(T, pick(NORTHEAST, SOUTHEAST, NORTHWEST, SOUTHWEST)) cult_mode.demons_summoned = 1 shuttle_master.emergency.request(null, 0.5,null) + shuttle_master.emergency.canRecall = FALSE cult_mode.third_phase() qdel(src) diff --git a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm index 353fd328f4c..0f3d7a41876 100644 --- a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm @@ -178,6 +178,7 @@ var/list/possibleShadowlingNames = list("U'ruan", "Y`shej", "Nex", "Hel-uae", "N sleep(50) if(!ticker.mode.shadowling_ascended) shuttle_master.emergency.request(null, 0.3) + shuttle_master.emergency.canRecall = FALSE ticker.mode.shadowling_ascended = 1 A.mind.RemoveSpell(src) qdel(H) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index bfc13277e5f..70d715e3820 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -500,10 +500,13 @@ if(ticker.mode.name == "meteor") return - shuttle_master.cancelEvac(user) - log_game("[key_name(user)] has recalled the shuttle.") - message_admins("[key_name_admin(user)] has recalled the shuttle - [formatJumpTo(user)].", 1) - return + if(shuttle_master.cancelEvac(user)) + log_game("[key_name(user)] has recalled the shuttle.") + message_admins("[key_name_admin(user)] has recalled the shuttle - [formatJumpTo(user)].", 1) + else + to_chat(user, "The shuttle can not be recalled! Central Orders!") + log_game("[key_name(user)] has tried and failed to recall the shuttle.") + message_admins("[key_name_admin(user)] has tried and failed to recall the shuttle - [formatJumpTo(user)].", 1) /proc/post_status(command, data1, data2, mob/user = null) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 05ce538ffc8..1008d7051a5 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -762,6 +762,11 @@ Traitors and the like can also be revived with the previous role mostly intact. var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") if(confirm != "Yes") return + switch(alert(src, "Can the crew recall?", "Recallable?", "Yes", "No")) + if("Yes") + shuttle_master.emergency.canRecall = TRUE + else + shuttle_master.emergency.canRecall = FALSE shuttle_master.emergency.request() @@ -781,7 +786,9 @@ Traitors and the like can also be revived with the previous role mostly intact. if(shuttle_master.emergency.mode >= SHUTTLE_DOCKED) return + shuttle_master.emergency.canRecall = TRUE // Resets incase the admin recalls a round ender for some reason. shuttle_master.emergency.cancel() + feedback_add_details("admin_verb","CCSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] admin-recalled the emergency shuttle.") message_admins("[key_name_admin(usr)] admin-recalled the emergency shuttle.") diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index 0aeb944a510..cd19799c432 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -38,6 +38,7 @@ sleep(70) shuttle_master.emergency.request(null, 0.3) // Cannot recall + shuttle_master.emergency.canRecall = FALSE /obj/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob) makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, user, null, 1) From 69eab5b9191f9d5fe7e3fdf39993a399a0a4974a Mon Sep 17 00:00:00 2001 From: IK3I Date: Thu, 11 Jan 2018 13:08:13 -0600 Subject: [PATCH 3/5] Requested Changes --- .../game/machinery/computer/communications.dm | 6 +++--- code/modules/admin/verbs/randomverbs.dm | 20 ++++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 70d715e3820..395c757dd7d 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -502,11 +502,11 @@ if(shuttle_master.cancelEvac(user)) log_game("[key_name(user)] has recalled the shuttle.") - message_admins("[key_name_admin(user)] has recalled the shuttle - [formatJumpTo(user)].", 1) + message_admins("[key_name_admin(user)] has recalled the shuttle - [ADMIN_FLW(user)].", 1) else - to_chat(user, "The shuttle can not be recalled! Central Orders!") + to_chat(user, "The shuttle can not be recalled! Central Orders!") log_game("[key_name(user)] has tried and failed to recall the shuttle.") - message_admins("[key_name_admin(user)] has tried and failed to recall the shuttle - [formatJumpTo(user)].", 1) + message_admins("[key_name_admin(user)] has tried and failed to recall the shuttle - [ADMIN_FLW(user)].", 1) /proc/post_status(command, data1, data2, mob/user = null) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 1008d7051a5..28fcfbf2778 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -762,11 +762,11 @@ Traitors and the like can also be revived with the previous role mostly intact. var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") if(confirm != "Yes") return - switch(alert(src, "Can the crew recall?", "Recallable?", "Yes", "No")) - if("Yes") - shuttle_master.emergency.canRecall = TRUE - else - shuttle_master.emergency.canRecall = FALSE + + if(alert("Set Shuttle Recallable (Select Yes unless you know what this does)", "Recallable?", "Yes", "No") == "Yes") + shuttle_master.emergency.canRecall = TRUE + else + shuttle_master.emergency.canRecall = FALSE shuttle_master.emergency.request() @@ -786,8 +786,14 @@ Traitors and the like can also be revived with the previous role mostly intact. if(shuttle_master.emergency.mode >= SHUTTLE_DOCKED) return - shuttle_master.emergency.canRecall = TRUE // Resets incase the admin recalls a round ender for some reason. - shuttle_master.emergency.cancel() + if(shuttle_master.emergency.canRecall == FALSE) + if(alert("Shuttle is currently set to be nonrecallable. Normally this happens due to round ending events. Respect Recall Status?", "Override Recall Status?", "Yes", "No") == "Yes") + shuttle_master.emergency.canRecall = TRUE // Resets incase the admin recalls a round ender for some reason. + shuttle_master.emergency.cancel() + else + return + else + shuttle_master.emergency.cancel() feedback_add_details("admin_verb","CCSHUT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] admin-recalled the emergency shuttle.") From 86944c35ee899e23cbf0de278b9309eba0105ddb Mon Sep 17 00:00:00 2001 From: IK3I Date: Sun, 14 Jan 2018 15:46:21 -0600 Subject: [PATCH 4/5] More Buttons Deeper down the alert rabbit hole we go. --- code/modules/admin/verbs/randomverbs.dm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 28fcfbf2778..29c6111bc02 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -787,11 +787,14 @@ Traitors and the like can also be revived with the previous role mostly intact. return if(shuttle_master.emergency.canRecall == FALSE) - if(alert("Shuttle is currently set to be nonrecallable. Normally this happens due to round ending events. Respect Recall Status?", "Override Recall Status?", "Yes", "No") == "Yes") - shuttle_master.emergency.canRecall = TRUE // Resets incase the admin recalls a round ender for some reason. - shuttle_master.emergency.cancel() - else + if(alert("Shuttle is currently set to be nonrecallable. Recalling may break things. Respect Recall Status?", "Override Recall Status?", "Yes", "No") == "Yes") return + else + var/keepStatus = alert("Maintain recall status on future shuttle calls?", "Maintain Status?", "Yes", "No") == "Yes" //Keeps or drops recallability + shuttle_master.emergency.canRecall = TRUE // must be true for cancel proc to work + shuttle_master.emergency.cancel() + if(keepStatus) + shuttle_master.emergency.canRecall = FALSE // restores original status else shuttle_master.emergency.cancel() From 658ce23d1f4cdc3719a63a33c41ba7d0d3c40b74 Mon Sep 17 00:00:00 2001 From: IK3I Date: Tue, 23 Jan 2018 17:48:07 -0600 Subject: [PATCH 5/5] A bit of Wording Imrovement --- code/game/machinery/computer/communications.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 395c757dd7d..e46182b735e 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -504,7 +504,7 @@ log_game("[key_name(user)] has recalled the shuttle.") message_admins("[key_name_admin(user)] has recalled the shuttle - [ADMIN_FLW(user)].", 1) else - to_chat(user, "The shuttle can not be recalled! Central Orders!") + to_chat(user, "Central Command has refused the recall request!") log_game("[key_name(user)] has tried and failed to recall the shuttle.") message_admins("[key_name_admin(user)] has tried and failed to recall the shuttle - [ADMIN_FLW(user)].", 1)