Escape Pod Escapes (#17436)

* Escape Pod Escapes

* changelog newline

* she merge on my artifact till i changelog required
This commit is contained in:
Geeves
2023-09-29 21:58:08 +00:00
committed by GitHub
parent 648fcc4942
commit 3db85775fd
2 changed files with 37 additions and 11 deletions
+30 -11
View File
@@ -31,8 +31,10 @@ var/list/escape_pods_by_name = list()
return ..()
/datum/shuttle/autodock/ferry/escape_pod/can_force()
if (arming_controller.eject_time && world.time < arming_controller.eject_time + 50)
return 0 //dont allow force launching until 5 seconds after the arming controller has reached it's countdown
if(arming_controller.emagged && next_location && moving_status == SHUTTLE_IDLE && process_state <= WAIT_LAUNCH)
return TRUE
if(arming_controller.eject_time && world.time < arming_controller.eject_time + 50)
return FALSE //dont allow force launching until 5 seconds after the arming controller has reached it's countdown
return ..()
/datum/shuttle/autodock/ferry/escape_pod/can_cancel()
@@ -75,6 +77,18 @@ var/list/escape_pods_by_name = list()
pod.launch(src)
return TRUE
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/emag_act(var/remaining_charges, var/mob/user)
var/datum/computer/file/embedded_program/docking/simple/escape_pod/pod_program = pod.arming_controller
if(pod_program)
if(pod_program.emagged)
to_chat(user, SPAN_WARNING("The pod has already been emagged!"))
return
to_chat(user, SPAN_NOTICE("You emag \the [src], arming the escape pod!"))
pod_program.emagged = TRUE
if(!pod_program.armed)
pod_program.arm()
return 1
//This controller is for the escape pod berth (station side)
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth
@@ -104,21 +118,26 @@ var/list/escape_pods_by_name = list()
)
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth/emag_act(var/remaining_charges, var/mob/user)
if (!emagged)
to_chat(user, "<span class='notice'>You emag the [src], arming the escape pod!</span>")
emagged = 1
if (istype(docking_program, /datum/computer/file/embedded_program/docking/simple/escape_pod))
var/datum/computer/file/embedded_program/docking/simple/escape_pod/P = docking_program
if (!P.armed)
P.arm()
var/datum/computer/file/embedded_program/docking/simple/escape_pod/pod_program
if(istype(docking_program, /datum/computer/file/embedded_program/docking/simple/escape_pod))
pod_program = docking_program
if(pod_program)
if(pod_program.emagged)
to_chat(user, SPAN_WARNING("The pod has already been emagged!"))
return
to_chat(user, SPAN_NOTICE("You emag \the [src], arming the escape pod!"))
pod_program.emagged = TRUE
if(!pod_program.armed)
pod_program.arm()
return 1
//A docking controller program for a simple door based docking port
/datum/computer/file/embedded_program/docking/simple/escape_pod
var/armed = 0
var/armed = FALSE
var/emagged = FALSE
var/eject_delay = 10 //give latecomers some time to get out of the way if they don't make it onto the pod
var/eject_time = null
var/closing = 0
var/closing = FALSE
/datum/computer/file/embedded_program/docking/simple/escape_pod/proc/arm()
if(!armed)