mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 13:05:44 +01:00
Escape Pod Escapes (#17436)
* Escape Pod Escapes * changelog newline * she merge on my artifact till i changelog required
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user