diff --git a/code/modules/mining/laborcamp/laborshuttle.dm b/code/modules/mining/laborcamp/laborshuttle.dm
index dbe607f42f..2923e8447e 100644
--- a/code/modules/mining/laborcamp/laborshuttle.dm
+++ b/code/modules/mining/laborcamp/laborshuttle.dm
@@ -6,7 +6,6 @@
possible_destinations = "laborcamp_home;laborcamp_away"
req_access = list(ACCESS_BRIG)
-
/obj/machinery/computer/shuttle/labor/one_way
name = "prisoner shuttle console"
desc = "A one-way shuttle console, used to summon the shuttle to the labor camp."
@@ -14,14 +13,19 @@
circuit = /obj/item/circuitboard/computer/labor_shuttle/one_way
req_access = list( )
-/obj/machinery/computer/shuttle/labor/one_way/Topic(href, href_list)
- if(href_list["move"])
- var/obj/docking_port/mobile/M = SSshuttle.getShuttle("laborcamp")
- if(!M)
- to_chat(usr, "Cannot locate shuttle!")
- return 0
- var/obj/docking_port/stationary/S = M.get_docked()
- if(S && S.name == "laborcamp_away")
- to_chat(usr, "Shuttle is already at the outpost!")
- return 0
- ..()
\ No newline at end of file
+/obj/machinery/computer/shuttle/labor/one_way/ui_act(action, params)
+ if(!allowed(usr))
+ to_chat(usr, "Access denied.")
+ return
+
+ switch(action)
+ if("move")
+ var/obj/docking_port/mobile/M = SSshuttle.getShuttle("laborcamp")
+ if(!M)
+ to_chat(usr, "Cannot locate shuttle!")
+ return
+ var/obj/docking_port/stationary/S = M.get_docked()
+ if(S?.name == "laborcamp_away")
+ to_chat(usr, "Shuttle is already at the outpost!")
+ return
+ return ..()
diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm
index 518cfe5a70..4b7e65c0f3 100644
--- a/code/modules/shuttle/computer.dm
+++ b/code/modules/shuttle/computer.dm
@@ -11,7 +11,7 @@
var/possible_destinations = ""
/// Variable dictating if the attached shuttle requires authorization from the admin staff to move
var/admin_controlled = FALSE
- /// Variable dictating if the attached shuttle can change destinations mid-flight
+ /// Variable dictating if the attached shuttle is forbidden to change destinations mid-flight
var/no_destination_swap = FALSE
/// ID of the currently selected destination of the attached shuttle
var/destination
@@ -29,17 +29,18 @@
var/list/options = params2list(possible_destinations)
var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId)
data["docked_location"] = M ? M.get_status_text_tgui() : "Unknown"
- data["status"] = M.mode == SHUTTLE_IGNITING ? "Igniting" : M.mode != SHUTTLE_IDLE ? "In Transit" : "Idle"
data["locations"] = list()
data["locked"] = FALSE
data["authorization_required"] = admin_controlled
data["timer_str"] = M ? M.getTimerStr() : "00:00"
data["destination"] = destination
- if(admin_controlled)
- data["status"] = "Unauthorized Access"
if(!M)
data["status"] = "Missing"
return data
+ if(admin_controlled)
+ data["status"] = "Unauthorized Access"
+ else
+ data["status"] = M.mode == SHUTTLE_IGNITING ? "Igniting" : M.mode != SHUTTLE_IDLE ? "In Transit" : "Idle"
for(var/obj/docking_port/stationary/S in SSshuttle.stationary)
if(!options.Find(S.id))
continue
diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm
index 34275ed9c1..03ff509086 100644
--- a/code/modules/shuttle/shuttle.dm
+++ b/code/modules/shuttle/shuttle.dm
@@ -726,7 +726,7 @@
dst = previous
else
dst = destination
- return "In transit towards [dst?.name || "unknown location"]"
+ return "In transit to [dst?.name || "unknown location"]"
else if(mode == SHUTTLE_RECHARGING)
return "[docked_at], recharging [getTimerStr()]"
else
diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm
index 0076f584e9..bdbdc08c6f 100644
--- a/code/modules/shuttle/syndicate.dm
+++ b/code/modules/shuttle/syndicate.dm
@@ -12,26 +12,34 @@
possible_destinations = "syndicate_away;syndicate_z5;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s;syndicate_custom"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
-/obj/machinery/computer/shuttle/syndicate/recall
- name = "syndicate shuttle recall terminal"
- desc = "Use this if your friends left you behind."
- possible_destinations = "syndicate_away"
-
-
-/obj/machinery/computer/shuttle/syndicate/Topic(href, href_list)
- if(href_list["move"])
- var/obj/item/circuitboard/computer/syndicate_shuttle/board = circuit
- if(board.challenge && ((world.time - SSticker.round_start_time) < SYNDICATE_CHALLENGE_TIMER))
- to_chat(usr, "You've issued a combat challenge to the station! You've got to give them at least [DisplayTimeText(SYNDICATE_CHALLENGE_TIMER - (world.time - SSticker.round_start_time))] more to allow them to prepare.")
- return 0
- board.moved = TRUE
- ..()
-
/obj/machinery/computer/shuttle/syndicate/allowed(mob/M)
if(issilicon(M) && !(ROLE_SYNDICATE in M.faction))
return FALSE
return ..()
+/obj/machinery/computer/shuttle/syndicate/ui_act(action, params)
+ if(!allowed(usr))
+ to_chat(usr, "Access denied.")
+ return
+
+ switch(action)
+ if("move")
+ if(istype(src, /obj/machinery/computer/shuttle/syndicate/drop_pod))
+ if(!is_centcom_level(z))
+ to_chat(usr, "Pods are one way!")
+ return
+ var/obj/item/circuitboard/computer/syndicate_shuttle/board = circuit
+ if(board?.challenge && world.time < SYNDICATE_CHALLENGE_TIMER)
+ to_chat(usr, "You've issued a combat challenge to the station! You've got to give them at least [DisplayTimeText(SYNDICATE_CHALLENGE_TIMER - world.time)] more to allow them to prepare.")
+ return
+ board.moved = TRUE
+ return ..()
+
+/obj/machinery/computer/shuttle/syndicate/recall
+ name = "syndicate shuttle recall terminal"
+ desc = "Use this if your friends left you behind."
+ possible_destinations = "syndicate_away"
+
/obj/machinery/computer/shuttle/syndicate/drop_pod
name = "syndicate assault pod control"
desc = "Controls the drop pod's launch system."
@@ -43,13 +51,6 @@
possible_destinations = null
clockwork = TRUE //it'd look weird
-/obj/machinery/computer/shuttle/syndicate/drop_pod/Topic(href, href_list)
- if(href_list["move"])
- if(!is_centcom_level(z))
- to_chat(usr, "Pods are one way!")
- return 0
- ..()
-
/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate
name = "syndicate shuttle navigation computer"
desc = "Used to designate a precise transit location for the syndicate shuttle."