Artur
2020-09-02 18:32:54 +03:00
parent d59748ceaa
commit debc300563
4 changed files with 45 additions and 39 deletions

View File

@@ -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, "<span class='warning'>Cannot locate shuttle!</span>")
return 0
var/obj/docking_port/stationary/S = M.get_docked()
if(S && S.name == "laborcamp_away")
to_chat(usr, "<span class='warning'>Shuttle is already at the outpost!</span>")
return 0
..()
/obj/machinery/computer/shuttle/labor/one_way/ui_act(action, params)
if(!allowed(usr))
to_chat(usr, "<span class='danger'>Access denied.</span>")
return
switch(action)
if("move")
var/obj/docking_port/mobile/M = SSshuttle.getShuttle("laborcamp")
if(!M)
to_chat(usr, "<span class='warning'>Cannot locate shuttle!</span>")
return
var/obj/docking_port/stationary/S = M.get_docked()
if(S?.name == "laborcamp_away")
to_chat(usr, "<span class='warning'>Shuttle is already at the outpost!</span>")
return
return ..()

View File

@@ -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

View File

@@ -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

View File

@@ -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, "<span class='warning'>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.</span>")
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, "<span class='danger'>Access denied.</span>")
return
switch(action)
if("move")
if(istype(src, /obj/machinery/computer/shuttle/syndicate/drop_pod))
if(!is_centcom_level(z))
to_chat(usr, "<span class='warning'>Pods are one way!</span>")
return
var/obj/item/circuitboard/computer/syndicate_shuttle/board = circuit
if(board?.challenge && world.time < SYNDICATE_CHALLENGE_TIMER)
to_chat(usr, "<span class='warning'>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.</span>")
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, "<span class='warning'>Pods are one way!</span>")
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."