mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 02:34:00 +00:00
Fixes status displays blanking out when escape shuttle is about to launch
This commit is contained in:
@@ -140,21 +140,17 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
|
|||||||
|
|
||||||
return SHUTTLE_PREPTIME
|
return SHUTTLE_PREPTIME
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
These procs are not really used by the controller itself, but are for other parts of the
|
These procs are not really used by the controller itself, but are for other parts of the
|
||||||
game whose logic depends on the emergency shuttle.
|
game whose logic depends on the emergency shuttle.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//returns 1 if the shuttle is docked at the station and waiting to leave
|
//returns 1 if the shuttle is docked at the station and waiting to leave
|
||||||
//The shuttle cannot be launched without swiping authorization if this is true
|
|
||||||
/datum/emergency_shuttle_controller/proc/waiting_to_leave()
|
/datum/emergency_shuttle_controller/proc/waiting_to_leave()
|
||||||
if (shuttle.location)
|
if (shuttle.location)
|
||||||
return 0 //not at station
|
return 0 //not at station
|
||||||
if (!wait_for_launch)
|
return (wait_for_launch || shuttle.moving_status != SHUTTLE_INTRANSIT)
|
||||||
return 0 //not going anywhere
|
|
||||||
if (shuttle.moving_status == SHUTTLE_INTRANSIT)
|
|
||||||
return 0
|
|
||||||
return 1
|
|
||||||
|
|
||||||
//so we don't have emergency_shuttle.shuttle.location everywhere
|
//so we don't have emergency_shuttle.shuttle.location everywhere
|
||||||
/datum/emergency_shuttle_controller/proc/location()
|
/datum/emergency_shuttle_controller/proc/location()
|
||||||
|
|||||||
@@ -32,14 +32,34 @@
|
|||||||
|
|
||||||
..(origin, destination)
|
..(origin, destination)
|
||||||
|
|
||||||
|
/datum/shuttle/ferry/emergency/can_launch(var/user)
|
||||||
|
if (istype(user, /obj/machinery/computer/shuttle_control/emergency))
|
||||||
|
var/obj/machinery/computer/shuttle_control/emergency/C = user
|
||||||
|
if (!C.has_authorization())
|
||||||
|
return 0
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
/datum/shuttle/ferry/emergency/can_force(var/user)
|
||||||
|
if (istype(user, /obj/machinery/computer/shuttle_control/emergency))
|
||||||
|
var/obj/machinery/computer/shuttle_control/emergency/C = user
|
||||||
|
|
||||||
|
//initiating or cancelling a launch ALWAYS requires authorization, but if we are already set to launch anyways than forcing does not.
|
||||||
|
//this is so that people can force launch if the docking controller cannot safely undock without needing X heads to swipe.
|
||||||
|
if (process_state == WAIT_LAUNCH && !C.has_authorization())
|
||||||
|
return 0
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
/datum/shuttle/ferry/emergency/can_cancel(var/user)
|
||||||
|
if (istype(user, /obj/machinery/computer/shuttle_control/emergency))
|
||||||
|
var/obj/machinery/computer/shuttle_control/emergency/C = user
|
||||||
|
if (!C.has_authorization())
|
||||||
|
return 0
|
||||||
|
return ..()
|
||||||
|
|
||||||
/datum/shuttle/ferry/emergency/launch(var/user)
|
/datum/shuttle/ferry/emergency/launch(var/user)
|
||||||
if (!can_launch()) return
|
if (!can_launch(user)) return
|
||||||
|
|
||||||
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
|
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
|
||||||
var/obj/machinery/computer/shuttle_control/emergency/C = user
|
|
||||||
if (emergency_shuttle.waiting_to_leave() && !C.has_authorization())
|
|
||||||
return //need authorization to launch early
|
|
||||||
|
|
||||||
if (emergency_shuttle.autopilot)
|
if (emergency_shuttle.autopilot)
|
||||||
emergency_shuttle.autopilot = 0
|
emergency_shuttle.autopilot = 0
|
||||||
world << "\blue <B>Alert: The shuttle autopilot has been overridden. Launch sequence initiated!</B>"
|
world << "\blue <B>Alert: The shuttle autopilot has been overridden. Launch sequence initiated!</B>"
|
||||||
@@ -47,13 +67,9 @@
|
|||||||
..(user)
|
..(user)
|
||||||
|
|
||||||
/datum/shuttle/ferry/emergency/force_launch(var/user)
|
/datum/shuttle/ferry/emergency/force_launch(var/user)
|
||||||
if (!can_force()) return
|
if (!can_force(user)) return
|
||||||
|
|
||||||
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
|
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
|
||||||
var/obj/machinery/computer/shuttle_control/emergency/C = user
|
|
||||||
if (emergency_shuttle.waiting_to_leave() && !C.has_authorization())
|
|
||||||
return //need authorization to launch early
|
|
||||||
|
|
||||||
if (emergency_shuttle.autopilot)
|
if (emergency_shuttle.autopilot)
|
||||||
emergency_shuttle.autopilot = 0
|
emergency_shuttle.autopilot = 0
|
||||||
world << "\blue <B>Alert: The shuttle autopilot has been overridden. Bluespace drive engaged!</B>"
|
world << "\blue <B>Alert: The shuttle autopilot has been overridden. Bluespace drive engaged!</B>"
|
||||||
@@ -61,19 +77,17 @@
|
|||||||
..(user)
|
..(user)
|
||||||
|
|
||||||
/datum/shuttle/ferry/emergency/cancel_launch(var/user)
|
/datum/shuttle/ferry/emergency/cancel_launch(var/user)
|
||||||
if (!can_cancel()) return
|
if (!can_cancel(user)) return
|
||||||
|
|
||||||
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
|
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
|
||||||
var/obj/machinery/computer/shuttle_control/emergency/C = user
|
|
||||||
if (emergency_shuttle.waiting_to_leave() && !C.has_authorization())
|
|
||||||
return
|
|
||||||
|
|
||||||
if (emergency_shuttle.autopilot)
|
if (emergency_shuttle.autopilot)
|
||||||
emergency_shuttle.autopilot = 0
|
emergency_shuttle.autopilot = 0
|
||||||
world << "\blue <B>Alert: The shuttle autopilot has been overridden. Launch sequence aborted!</B>"
|
world << "\blue <B>Alert: The shuttle autopilot has been overridden. Launch sequence aborted!</B>"
|
||||||
|
|
||||||
..(user)
|
..(user)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer/shuttle_control/emergency
|
/obj/machinery/computer/shuttle_control/emergency
|
||||||
shuttle_tag = "Escape"
|
shuttle_tag = "Escape"
|
||||||
var/debug = 0
|
var/debug = 0
|
||||||
@@ -189,9 +203,9 @@
|
|||||||
"has_docking" = shuttle.docking_controller? 1 : 0,
|
"has_docking" = shuttle.docking_controller? 1 : 0,
|
||||||
"docking_status" = shuttle.docking_controller? shuttle.docking_controller.get_docking_status() : null,
|
"docking_status" = shuttle.docking_controller? shuttle.docking_controller.get_docking_status() : null,
|
||||||
"docking_override" = shuttle.docking_controller? shuttle.docking_controller.override_enabled : null,
|
"docking_override" = shuttle.docking_controller? shuttle.docking_controller.override_enabled : null,
|
||||||
"can_launch" = shuttle.can_launch() && (!emergency_shuttle.waiting_to_leave() || has_auth),
|
"can_launch" = shuttle.can_launch(src),
|
||||||
"can_cancel" = shuttle.can_cancel() && (!emergency_shuttle.waiting_to_leave() || has_auth),
|
"can_cancel" = shuttle.can_cancel(src),
|
||||||
"can_force" = shuttle.can_force() && (!emergency_shuttle.waiting_to_leave() || has_auth),
|
"can_force" = shuttle.can_force(src),
|
||||||
"auth_list" = auth_list,
|
"auth_list" = auth_list,
|
||||||
"has_auth" = has_auth,
|
"has_auth" = has_auth,
|
||||||
"user" = debug? user : null,
|
"user" = debug? user : null,
|
||||||
|
|||||||
Reference in New Issue
Block a user