From debc300563e4546836b68b148f53e742b00865fe Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 2 Sep 2020 18:32:54 +0300 Subject: [PATCH] https://github.com/tgstation/tgstation/pull/53236/ --- code/modules/mining/laborcamp/laborshuttle.dm | 28 +++++++----- code/modules/shuttle/computer.dm | 9 ++-- code/modules/shuttle/shuttle.dm | 2 +- code/modules/shuttle/syndicate.dm | 45 ++++++++++--------- 4 files changed, 45 insertions(+), 39 deletions(-) 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."