mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-22 04:24:20 +01:00
load the emergency shuttle in late mapping (#30854)
* load the emergency shuttle in late mapping * fix lints * register the late loading docking port properly * fix logging
This commit is contained in:
committed by
GitHub
parent
e436df7051
commit
05108670a7
@@ -24,7 +24,6 @@ SUBSYSTEM_DEF(shuttle)
|
||||
|
||||
//emergency shuttle stuff
|
||||
var/obj/docking_port/mobile/emergency/emergency
|
||||
var/obj/docking_port/mobile/emergency/backup/backup_shuttle
|
||||
var/emergencyCallTime = SHUTTLE_CALLTIME //time taken for emergency shuttle to reach the station when called (in deciseconds)
|
||||
var/emergencyDockTime = SHUTTLE_DOCKTIME //time taken for emergency shuttle to leave again once it has docked (in deciseconds)
|
||||
var/emergencyEscapeTime = SHUTTLE_ESCAPETIME //time taken for emergency shuttle to reach a safe distance after leaving station (in deciseconds)
|
||||
@@ -63,8 +62,6 @@ SUBSYSTEM_DEF(shuttle)
|
||||
var/transit_utilized = 0
|
||||
|
||||
/datum/controller/subsystem/shuttle/Initialize()
|
||||
if(!backup_shuttle)
|
||||
WARNING("No /obj/docking_port/mobile/emergency/backup placed on the map!")
|
||||
if(!supply)
|
||||
WARNING("No /obj/docking_port/mobile/supply placed on the map!")
|
||||
|
||||
@@ -143,17 +140,8 @@ SUBSYSTEM_DEF(shuttle)
|
||||
|
||||
/datum/controller/subsystem/shuttle/proc/requestEvac(mob/user, call_reason)
|
||||
if(!emergency)
|
||||
WARNING("requestEvac(): There is no emergency shuttle, but the shuttle was called. Using the backup shuttle instead.")
|
||||
if(!backup_shuttle)
|
||||
WARNING("requestEvac(): There is no emergency shuttle, or backup shuttle!\
|
||||
The game will be unresolvable.This is possibly a mapping error, \
|
||||
more likely a bug with the shuttle \
|
||||
manipulation system, or badminry. It is possible to manually \
|
||||
resolve this problem by loading an emergency shuttle template \
|
||||
manually, and then calling register() on the mobile docking port. \
|
||||
Good luck.")
|
||||
return
|
||||
emergency = backup_shuttle
|
||||
WARNING("requestEvac(): There is no emergency shuttle, but the shuttle was called. Loading a default shuttle.")
|
||||
load_initial_emergency_shuttle("emergency_cyb")
|
||||
|
||||
if(secondsToRefuel())
|
||||
to_chat(user, "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - SSticker.round_start_time) - refuel_delay)/600))] minutes before trying again.")
|
||||
@@ -196,14 +184,6 @@ SUBSYSTEM_DEF(shuttle)
|
||||
|
||||
return
|
||||
|
||||
|
||||
// Called when an emergency shuttle mobile docking port is
|
||||
// destroyed, which will only happen with admin intervention
|
||||
/datum/controller/subsystem/shuttle/proc/emergencyDeregister()
|
||||
// When a new emergency shuttle is created, it will override the
|
||||
// backup shuttle.
|
||||
emergency = backup_shuttle
|
||||
|
||||
/datum/controller/subsystem/shuttle/proc/cancelEvac(mob/user)
|
||||
if(canRecall())
|
||||
emergency.cancel(get_area(user))
|
||||
@@ -591,6 +571,26 @@ SUBSYSTEM_DEF(shuttle)
|
||||
SIGNAL_HANDLER
|
||||
transit_utilized -= (source.width + 2) * (source.height + 2)
|
||||
|
||||
/datum/controller/subsystem/shuttle/proc/load_initial_emergency_shuttle(shuttle_id)
|
||||
if(emergency)
|
||||
log_debug("requested to load initial emergency shuttle when one already exists")
|
||||
return
|
||||
|
||||
var/obj/docking_port/docking_port = SSshuttle.getDock("emergency_away")
|
||||
if(!istype(docking_port))
|
||||
log_debug("could not find docking port")
|
||||
return
|
||||
|
||||
var/datum/map_template/shuttle/shuttle_template = GLOB.shuttle_templates[shuttle_id]
|
||||
if(!shuttle_template)
|
||||
log_debug("could not find shuttle template")
|
||||
return
|
||||
|
||||
var/obj/docking_port/mobile/mobile_port = SSshuttle.load_template(shuttle_template)
|
||||
mobile_port.dock(docking_port, force = TRUE)
|
||||
mobile_port.register()
|
||||
emergency = mobile_port
|
||||
|
||||
#undef CALL_SHUTTLE_REASON_LENGTH
|
||||
#undef MAX_TRANSIT_REQUEST_RETRIES
|
||||
#undef MAX_TRANSIT_TILE_COUNT
|
||||
|
||||
@@ -14,12 +14,19 @@ SUBSYSTEM_DEF(late_mapping)
|
||||
GLOB.air_alarms = sortAtom(GLOB.air_alarms)
|
||||
GLOB.apcs = sortAtom(GLOB.apcs)
|
||||
|
||||
// Load an emergency shuttle at centcom
|
||||
if(SSmapping.emergency_shuttle_id)
|
||||
SSshuttle.load_initial_emergency_shuttle(SSmapping.emergency_shuttle_id)
|
||||
else
|
||||
WARNING("no valid emergency shuttle template was set in SSmapping")
|
||||
|
||||
if(SSmapping.trader_shuttle_id)
|
||||
var/template = new SSmapping.trader_shuttle_id()
|
||||
SSshuttle.set_trader_shuttle(template)
|
||||
else
|
||||
WARNING("no valid trader shuttle template was set in SSmapping")
|
||||
|
||||
// Load a Gamma Armoury shuttle at Centcom.
|
||||
if(SSmapping.gamma_armory_shuttle_id)
|
||||
SSshuttle.load_initial_gamma_armory_shuttle(SSmapping.gamma_armory_shuttle_id)
|
||||
else
|
||||
|
||||
@@ -12,6 +12,8 @@ SUBSYSTEM_DEF(mapping)
|
||||
var/datum/map_template/shuttle/trader_shuttle_id = /datum/map_template/shuttle/trader/synthetic
|
||||
/// The Gamma Armory shuttle to load at Centcom in late_mapping.
|
||||
var/gamma_armory_shuttle_id = "gamma_armory_base"
|
||||
/// The emergency shuttle to load at Centcom in late_mapping
|
||||
var/emergency_shuttle_id = "emergency_cyb"
|
||||
/// List of all areas that can be accessed via IC means
|
||||
var/list/teleportlocs
|
||||
/// List of all areas that can be accessed via IC and OOC means
|
||||
|
||||
Reference in New Issue
Block a user