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)