mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-21 12:56:10 +01:00
e4192f9b8f
we have a gorillion hard deletions and it turns out half of them are because we set the "ALWAYS HARD DELETE THIS" flag rather than just like. fixing the hard delete. cool
759 lines
25 KiB
Plaintext
759 lines
25 KiB
Plaintext
GLOBAL_LIST_EMPTY_TYPED(escape_pods, /datum/shuttle/autodock/ferry/escape_pod)
|
|
GLOBAL_LIST_EMPTY(escape_pods_by_name)
|
|
|
|
/datum/shuttle/autodock/ferry/escape_pod
|
|
var/datum/computer/file/embedded_program/docking/simple/escape_pod/arming_controller
|
|
category = /datum/shuttle/autodock/ferry/escape_pod
|
|
move_time = 100
|
|
|
|
/datum/shuttle/autodock/ferry/escape_pod/New()
|
|
..()
|
|
var/arming_controller_tag = arming_controller
|
|
arming_controller = SSshuttle.docking_registry[arming_controller_tag]
|
|
if(!istype(arming_controller))
|
|
CRASH("Could not find arming controller for escape pod \"[name]\", tag was '[arming_controller_tag]'.")
|
|
|
|
GLOB.escape_pods += src
|
|
GLOB.escape_pods_by_name[name] = src
|
|
move_time = GLOB.evacuation_controller.evac_transit_delay + rand(-30, 60)
|
|
if(dock_target)
|
|
var/datum/computer/file/embedded_program/docking/simple/own_target = SSshuttle.docking_registry[dock_target]
|
|
if(own_target)
|
|
var/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/own_target_master = own_target.master
|
|
if(own_target_master)
|
|
own_target_master.set_pod(src)
|
|
|
|
/datum/shuttle/autodock/ferry/escape_pod/Destroy()
|
|
GLOB.escape_pods -= src
|
|
GLOB.escape_pods_by_name -= name
|
|
arming_controller = null
|
|
. = ..()
|
|
|
|
/datum/shuttle/autodock/ferry/escape_pod/can_launch()
|
|
if(arming_controller && !arming_controller.armed) //must be armed
|
|
return 0
|
|
if(location)
|
|
return 0 //it's a one-way trip.
|
|
return ..()
|
|
|
|
/datum/shuttle/autodock/ferry/escape_pod/can_force()
|
|
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()
|
|
return 0
|
|
|
|
//This controller goes on the escape pod itself
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod
|
|
name = "escape pod controller"
|
|
var/datum/shuttle/autodock/ferry/escape_pod/pod
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/Destroy()
|
|
pod = null
|
|
. = ..()
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/proc/set_pod(datum/shuttle/autodock/ferry/escape_pod/new_pod)
|
|
if(istype(new_pod))
|
|
pod = new_pod
|
|
RegisterSignal(pod, COMSIG_QDELETING, PROC_REF(clear_pod))
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/proc/clear_pod()
|
|
SIGNAL_HANDLER
|
|
if(pod)
|
|
UnregisterSignal(pod, COMSIG_QDELETING)
|
|
pod = null
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/ui_interact(mob/user, datum/tgui/ui)
|
|
ui = SStgui.try_update_ui(user, src, ui)
|
|
if(!ui)
|
|
ui = new(user, src, "EscapePodConsole", name, ui_x=470, ui_y=270)
|
|
ui.open()
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/ui_data(mob/user)
|
|
return list(
|
|
"docking_status" = docking_program.get_docking_status(),
|
|
"override_enabled" = docking_program.override_enabled,
|
|
"door_state" = docking_program.memory["door_status"]["state"],
|
|
"door_lock" = docking_program.memory["door_status"]["lock"],
|
|
"can_force" = pod.can_force() || (GLOB.evacuation_controller.has_evacuated() && pod.can_launch()), //allow players to manually launch ahead of time if the shuttle leaves
|
|
"is_armed" = pod.arming_controller.armed
|
|
)
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod/ui_act(action, params)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
|
|
if(action == "command")
|
|
if(params["command"] == "manual_arm")
|
|
pod.arming_controller.arm()
|
|
return TRUE
|
|
if(params["command"] == "force_launch")
|
|
if (pod.can_force())
|
|
pod.force_launch(src)
|
|
else if (GLOB.evacuation_controller.has_evacuated() && pod.can_launch()) //allow players to manually launch ahead of time if the shuttle leaves
|
|
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
|
|
name = "escape pod berth controller"
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth/Initialize()
|
|
. = ..()
|
|
docking_program = new/datum/computer/file/embedded_program/docking/simple/escape_pod(src)
|
|
program = docking_program
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth/ui_interact(mob/user, datum/tgui/ui)
|
|
ui = SStgui.try_update_ui(user, src, ui)
|
|
if(!ui)
|
|
ui = new(user, src, "EscapePodBerthConsole", name, ui_x=470, ui_y=200)
|
|
ui.open()
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth/ui_data(mob/user)
|
|
var/armed = FALSE
|
|
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
|
|
armed = P.armed
|
|
|
|
return list(
|
|
"docking_status" = docking_program.get_docking_status(),
|
|
"override_enabled" = docking_program.override_enabled,
|
|
"armed" = armed
|
|
)
|
|
|
|
/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth/emag_act(var/remaining_charges, var/mob/user)
|
|
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 = 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 = FALSE
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/escape_pod/proc/arm()
|
|
if(!armed)
|
|
armed = 1
|
|
open_door()
|
|
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/escape_pod/receive_user_command(command)
|
|
if (!armed)
|
|
return
|
|
..(command)
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/escape_pod/process()
|
|
..()
|
|
if (eject_time && world.time >= eject_time && !closing)
|
|
close_door()
|
|
closing = 1
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/escape_pod/prepare_for_docking()
|
|
return
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/escape_pod/ready_for_docking()
|
|
return 1
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/escape_pod/finish_docking()
|
|
return //don't do anything - the doors only open when the pod is armed.
|
|
|
|
/datum/computer/file/embedded_program/docking/simple/escape_pod/prepare_for_undocking()
|
|
eject_time = world.time + eject_delay*10
|
|
|
|
|
|
/* OLD AURORA SHIT */
|
|
|
|
#define AURORA_ESCAPE_POD(NUMBER) \
|
|
/datum/shuttle/autodock/ferry/escape_pod/pod/escape_pod##NUMBER { \
|
|
name = "Escape Pod " + #NUMBER; \
|
|
shuttle_area = /area/horizon/shuttle/escape_pod/pod##NUMBER; \
|
|
location = 0; \
|
|
dock_target = "escape_pod_" + #NUMBER; \
|
|
arming_controller = "escape_pod_"+ #NUMBER +"_berth"; \
|
|
waypoint_station = "escape_pod_"+ #NUMBER +"_start"; \
|
|
landmark_transition = "escape_pod_"+ #NUMBER +"_interim"; \
|
|
waypoint_offsite = "escape_pod_"+ #NUMBER +"_out"; \
|
|
} \
|
|
/obj/effect/shuttle_landmark/escape_pod/start/pod##NUMBER { \
|
|
landmark_tag = "escape_pod_"+ #NUMBER +"_start"; \
|
|
docking_controller = "escape_pod_" + #NUMBER +"_berth"; \
|
|
} \
|
|
/obj/effect/shuttle_landmark/escape_pod/out/pod##NUMBER { \
|
|
landmark_tag = "escape_pod_"+ #NUMBER +"_out"; \
|
|
} \
|
|
/obj/effect/shuttle_landmark/escape_pod/transit/pod##NUMBER { \
|
|
landmark_tag = "escape_pod_"+ #NUMBER +"_interim"; \
|
|
}
|
|
|
|
AURORA_ESCAPE_POD(1)
|
|
AURORA_ESCAPE_POD(2)
|
|
AURORA_ESCAPE_POD(3)
|
|
AURORA_ESCAPE_POD(4)
|
|
|
|
#undef AURORA_ESCAPE_POD
|
|
|
|
/datum/shuttle/autodock/ferry/escape_pod/pod
|
|
category = /datum/shuttle/autodock/ferry/escape_pod/pod
|
|
sound_takeoff = 'sound/effects/rocket.ogg'
|
|
sound_landing = 'sound/effects/rocket_backwards.ogg'
|
|
warmup_time = 10
|
|
|
|
/obj/effect/shuttle_landmark/escape_pod/start
|
|
name = "Docked"
|
|
base_turf = /turf/simulated/floor/reinforced/airless
|
|
base_area = /area/mine/explored
|
|
|
|
/obj/effect/shuttle_landmark/escape_pod/transit
|
|
name = "In transit"
|
|
base_turf = /turf/space/transit/east
|
|
|
|
/obj/effect/shuttle_landmark/escape_pod/out
|
|
name = "Escaped"
|
|
base_turf = /turf/space/dynamic
|
|
|
|
//-// Transfer Shuttle //-//
|
|
|
|
/datum/shuttle/autodock/ferry/emergency/aurora
|
|
name = "Escape Shuttle"
|
|
location = 1
|
|
warmup_time = 10
|
|
shuttle_area = /area/shuttle/escape
|
|
dock_target = "escape_shuttle"
|
|
waypoint_station = "nav_emergency_dock"
|
|
landmark_transition = "nav_emergency_interim"
|
|
waypoint_offsite = "nav_emergency_start"
|
|
|
|
/obj/effect/shuttle_landmark/emergency/start
|
|
name = "Escape Shuttle Centcom Dock"
|
|
landmark_tag = "nav_emergency_start"
|
|
docking_controller = "centcom_dock"
|
|
base_turf = /turf/unsimulated/floor/plating
|
|
base_area = /area/centcom/evac
|
|
|
|
/obj/effect/shuttle_landmark/emergency/interim
|
|
name = "In Transit"
|
|
landmark_tag = "nav_emergency_interim"
|
|
base_turf = /turf/space/transit/bluespace/south
|
|
|
|
/obj/effect/shuttle_landmark/emergency/dock
|
|
name = "Escape Shuttle Dock"
|
|
landmark_tag = "nav_emergency_dock"
|
|
docking_controller = "escape_dock"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
//-// Arrival Shuttle //-//
|
|
|
|
/datum/shuttle/autodock/ferry/arrival/aurora
|
|
name = "Arrival Shuttle"
|
|
location = 1
|
|
warmup_time = 10
|
|
shuttle_area = /area/shuttle/arrival
|
|
move_time = 60
|
|
dock_target = "arrival_shuttle"
|
|
waypoint_station = "nav_arrival_dock"
|
|
landmark_transition = "nav_arrival_interim"
|
|
waypoint_offsite = "nav_arrival_start"
|
|
|
|
/obj/effect/shuttle_landmark/arrival/start
|
|
name = "Arrival Shuttle Centcom Dock"
|
|
landmark_tag = "nav_arrival_start"
|
|
docking_controller = "centcom_setup"
|
|
base_turf = /turf/unsimulated/floor/plating
|
|
base_area = /area/centcom/spawning
|
|
|
|
/obj/effect/shuttle_landmark/arrival/interim
|
|
name = "In Transit"
|
|
landmark_tag = "nav_arrival_interim"
|
|
base_turf = /turf/space/transit/bluespace/west
|
|
|
|
/obj/effect/shuttle_landmark/arrival/dock
|
|
name = "Arrival Shuttle Dock"
|
|
landmark_tag = "nav_arrival_dock"
|
|
docking_controller = "arrival_dock"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
//-// Supply Shuttle //-//
|
|
|
|
/datum/shuttle/autodock/ferry/supply/aurora
|
|
name = "Supply Shuttle"
|
|
location = 1
|
|
shuttle_area = /area/supply/dock
|
|
dock_target = "supply_shuttle"
|
|
waypoint_station = "nav_supply_dock"
|
|
waypoint_offsite = "nav_supply_start"
|
|
|
|
/obj/effect/shuttle_landmark/supply/start
|
|
name = "Supply Centcom Dock"
|
|
landmark_tag = "nav_supply_start"
|
|
base_turf = /turf/unsimulated/floor/plating
|
|
base_area = /area/centcom
|
|
|
|
/obj/effect/shuttle_landmark/supply/dock
|
|
name = "Supply Shuttle Dock"
|
|
landmark_tag = "nav_supply_dock"
|
|
docking_controller = "cargo_bay"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
//-// Merchant Shuttle //-//
|
|
|
|
/datum/shuttle/autodock/ferry/merchant_aurora
|
|
name = "ICV Enterprise"
|
|
location = 1
|
|
warmup_time = 10
|
|
shuttle_area = /area/shuttle/merchant
|
|
move_time = 20
|
|
dock_target = "merchant_shuttle"
|
|
waypoint_station = "nav_merchant_dock"
|
|
landmark_transition = "nav_merchant_interim"
|
|
waypoint_offsite = "nav_merchant_start"
|
|
|
|
/obj/effect/shuttle_landmark/merchant/start
|
|
name = "Merchant Shuttle Base"
|
|
landmark_tag = "nav_merchant_start"
|
|
docking_controller = "merchant_station"
|
|
base_turf = /turf/space/dynamic
|
|
base_area = /area/template_noop
|
|
|
|
/obj/effect/shuttle_landmark/merchant/interim
|
|
name = "In Transit"
|
|
landmark_tag = "nav_merchant_interim"
|
|
base_turf = /turf/space/transit/bluespace/west
|
|
|
|
/obj/effect/shuttle_landmark/merchant/dock
|
|
name = "Second Deck Starboard Dock 1"
|
|
landmark_tag = "nav_merchant_dock"
|
|
docking_controller = "merchant_shuttle_dock"
|
|
base_turf = /turf/space
|
|
base_area = /area/space
|
|
|
|
//-// CCIA Shuttle //-//
|
|
|
|
/datum/shuttle/autodock/ferry/autoreturn/ccia
|
|
name = "SCC Shuttle"
|
|
location = 1
|
|
warmup_time = 10
|
|
shuttle_area = /area/shuttle/transport1
|
|
dock_target = "centcom_shuttle"
|
|
waypoint_station = "nav_ccia_dock"
|
|
waypoint_offsite = "nav_ccia_start"
|
|
category = /datum/shuttle/autodock/ferry/autoreturn
|
|
|
|
/obj/effect/shuttle_landmark/ccia/start
|
|
name = "Agent Shuttle Base"
|
|
landmark_tag = "nav_ccia_start"
|
|
docking_controller = "centcom_shuttle_bay"
|
|
base_turf = /turf/unsimulated/floor/plating
|
|
base_area = /area/centcom/ferry
|
|
|
|
/obj/effect/shuttle_landmark/ccia/dock
|
|
name = "Second Deck Starboard Dock 2"
|
|
landmark_tag = "nav_ccia_dock"
|
|
docking_controller = "centcom_shuttle_dock_airlock"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
//-// ERT Shuttle (the NT one) //-//
|
|
|
|
/datum/shuttle/autodock/ferry/specops/ert_aurora
|
|
name = "Phoenix Shuttle"
|
|
location = 1
|
|
warmup_time = 10
|
|
shuttle_area = /area/shuttle/specops
|
|
dock_target = "specops_shuttle_port"
|
|
waypoint_station = "nav_horizon_dock_deck_3_port_5"
|
|
waypoint_offsite = "nav_ert_start"
|
|
|
|
/obj/effect/shuttle_landmark/ert/start
|
|
name = "Phoenix Base"
|
|
landmark_tag = "nav_ert_start"
|
|
docking_controller = "specops_centcom_dock"
|
|
base_turf = /turf/unsimulated/floor/plating
|
|
base_area = /area/centcom/specops
|
|
|
|
/obj/effect/shuttle_landmark/ert/dock
|
|
name = "Third Deck Port Dock 3"
|
|
landmark_tag = "nav_horizon_dock_deck_3_port_5"
|
|
docking_controller = "specops_dock_airlock"
|
|
special_dock_targets = list("Phoenix Shuttle" = "specops_shuttle_fore")
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
//-// Burglar Shuttle //-//
|
|
|
|
/datum/shuttle/autodock/multi/antag/burglar_aurora
|
|
name = "Water Bear"
|
|
current_location = "nav_burglar_start"
|
|
landmark_transition = "nav_burglar_interim"
|
|
dock_target = "burglar_shuttle"
|
|
warmup_time = 10
|
|
move_time = 75
|
|
shuttle_area = /area/shuttle/burglar
|
|
destination_tags = list(
|
|
"nav_burglar_start",
|
|
"nav_burglar_surface",
|
|
"nav_burglar_under",
|
|
"nav_burglar_caverns",
|
|
"nav_burglar_blue"
|
|
)
|
|
|
|
announcer = "NDV Icarus"
|
|
arrival_message = "Attention, we just tracked a small target bypassing our defensive perimeter. Can't fire on it without hitting the station - you've got incoming visitors, like it or not."
|
|
departure_message = "Attention, your guests are pulling away - moving too fast for us to draw a bead on them. Looks like they're heading out of the system at a rapid clip."
|
|
|
|
/obj/effect/shuttle_landmark/burglar/start
|
|
name = "Hideout"
|
|
landmark_tag = "nav_burglar_start"
|
|
docking_controller = "burglar_hideout"
|
|
base_turf = /turf/unsimulated/floor/plating
|
|
base_area = /area/antag/burglar
|
|
|
|
/obj/effect/shuttle_landmark/burglar/interim
|
|
name = "In Transit"
|
|
landmark_tag = "nav_burglar_interim"
|
|
base_turf = /turf/space/transit/north
|
|
|
|
/obj/effect/shuttle_landmark/burglar/surface
|
|
name = "Exposed Hull, Surface Aft of Cargo"
|
|
landmark_tag = "nav_burglar_surface"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/burglar/under
|
|
name = "Under the Station, By Radiators"
|
|
landmark_tag = "nav_burglar_under"
|
|
base_turf = /turf/space
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/burglar/caverns
|
|
name = "Caverns, Fore of Mining"
|
|
landmark_tag = "nav_burglar_caverns"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/burglar/blue
|
|
name = "Blue Dock"
|
|
landmark_tag = "nav_burglar_blue"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
docking_controller = "distress_shuttle_dock"
|
|
|
|
//-// Raider Skipjack //-//
|
|
|
|
/datum/shuttle/autodock/multi/antag/skipjack_aurora/New()
|
|
name = "Skipjack"
|
|
current_location = "nav_skipjack_start"
|
|
landmark_transition = "nav_skipjack_interim"
|
|
dock_target = "raider_east_control"
|
|
warmup_time = 10
|
|
move_time = 75
|
|
shuttle_area = /area/shuttle/skipjack
|
|
destination_tags = list(
|
|
"nav_skipjack_start",
|
|
"nav_skipjack_surface",
|
|
"nav_skipjack_under",
|
|
"nav_skipjack_caverns",
|
|
"nav_skipjack_interstitial",
|
|
"nav_skipjack_toxins"
|
|
)
|
|
|
|
announcer = "NDV Icarus"
|
|
arrival_message = "Attention, we just tracked a small target bypassing our defensive perimeter. Can't fire on it without hitting the [station_name(TRUE)] - you've got incoming visitors, like it or not."
|
|
departure_message = "Attention, your guests are pulling away - moving too fast for us to draw a bead on them. Looks like they're heading out of the system at a rapid clip."
|
|
..()
|
|
|
|
/obj/effect/shuttle_landmark/skipjack/start
|
|
name = "Raider Hideout"
|
|
landmark_tag = "nav_skipjack_start"
|
|
docking_controller = "pirate_hideout"
|
|
base_turf = /turf/space/dynamic
|
|
base_area = /area/template_noop
|
|
|
|
/obj/effect/shuttle_landmark/skipjack/interim
|
|
name = "In Transit"
|
|
landmark_tag = "nav_skipjack_interim"
|
|
base_turf = /turf/space/transit/north
|
|
|
|
/obj/effect/shuttle_landmark/skipjack/surface
|
|
name = "Surface, Aft of Cargo"
|
|
landmark_tag = "nav_skipjack_surface"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/skipjack/under
|
|
name = "Under the Station, By Radiators"
|
|
landmark_tag = "nav_skipjack_under"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
base_turf = /turf/space/dynamic
|
|
|
|
/obj/effect/shuttle_landmark/skipjack/caverns
|
|
name = "Caverns, Aft of Mining"
|
|
landmark_tag = "nav_skipjack_caverns"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/skipjack/interstitial
|
|
name = "Interstitial, Exposed Hull by Medical"
|
|
landmark_tag = "nav_skipjack_interstitial"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/skipjack/toxins
|
|
name = "Caverns, By Bombrange"
|
|
landmark_tag = "nav_skipjack_toxins"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
//-// Mercenary Shuttle //-//
|
|
|
|
/datum/shuttle/autodock/multi/antag/merc_aurora/New()
|
|
name = "ICV Raskolnikov"
|
|
current_location = "nav_merc_start"
|
|
landmark_transition = "nav_merc_interim"
|
|
dock_target = "merc_shuttle"
|
|
warmup_time = 10
|
|
move_time = 75
|
|
shuttle_area = /area/shuttle/mercenary
|
|
destination_tags = list(
|
|
"nav_merc_dock",
|
|
"nav_merc_start",
|
|
"nav_merc_surface",
|
|
"nav_merc_under",
|
|
"nav_merc_caverns"
|
|
)
|
|
|
|
announcer = "NDV Icarus"
|
|
arrival_message = "Attention, you have a large signature approaching the [station_name(TRUE)] - looks unarmed to surface scans. We're too far out to intercept - brace for visitors."
|
|
departure_message = "Attention, your visitors are on their way out of the system, burning delta-v like it's nothing. Good riddance."
|
|
..()
|
|
|
|
/obj/effect/shuttle_landmark/merc/start
|
|
name = "Mercenary Base"
|
|
landmark_tag = "nav_merc_start"
|
|
docking_controller = "merc_base"
|
|
base_turf = /turf/space/dynamic
|
|
base_area = /area/template_noop
|
|
|
|
/obj/effect/shuttle_landmark/merc/interim
|
|
name = "In Transit"
|
|
landmark_tag = "nav_merc_interim"
|
|
base_turf = /turf/space/transit/north
|
|
|
|
/obj/effect/shuttle_landmark/merc/dock
|
|
name = "Yellow Dock"
|
|
landmark_tag = "nav_merc_dock"
|
|
docking_controller = "nuke_shuttle_dock_airlock"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/merc/surface
|
|
name = "Surface, Aft of Command"
|
|
landmark_tag = "nav_merc_surface"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/merc/under
|
|
name = "Under the Station, At Radiators"
|
|
landmark_tag = "nav_merc_under"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
base_turf = /turf/space/dynamic
|
|
|
|
/obj/effect/shuttle_landmark/merc/caverns
|
|
name = "Caverns, Fore of Security"
|
|
landmark_tag = "nav_merc_caverns"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
//-// Merc Elite Shuttle //-//
|
|
|
|
/datum/shuttle/autodock/multi/merc_aurora_elite
|
|
name = "Merc Elite"
|
|
current_location = "nav_mercelite_start"
|
|
warmup_time = 10
|
|
shuttle_area = /area/shuttle/syndicate_elite
|
|
dock_target = "elite_shuttle_starboard"
|
|
destination_tags = list(
|
|
"nav_mercelite_start",
|
|
"nav_mercelite_command",
|
|
"nav_mercelite_merchant",
|
|
"nav_mercelite_yellow",
|
|
"nav_mercelite_green"
|
|
)
|
|
|
|
/obj/effect/shuttle_landmark/merc_elite/start
|
|
name = "Shuttle Hangar"
|
|
landmark_tag = "nav_mercelite_start"
|
|
docking_controller = "elite_shuttle_origin"
|
|
base_turf = /turf/unsimulated/floor/plating
|
|
base_area = /area/antag/mercenary
|
|
|
|
/obj/effect/shuttle_landmark/merc_elite/command
|
|
name = "Command Surface - Maintenance"
|
|
landmark_tag = "nav_mercelite_command"
|
|
docking_controller = "command_surface_airlock"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/merc_elite/merchant
|
|
name = "Merchant Dock"
|
|
landmark_tag = "nav_mercelite_merchant"
|
|
docking_controller = "merchant_shuttle_dock"
|
|
special_dock_targets = list("Merc Elite" = "elite_shuttle_port")
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/merc_elite/yellow
|
|
name = "Yellow Dock"
|
|
landmark_tag = "nav_mercelite_yellow"
|
|
docking_controller = "nuke_shuttle_dock_airlock"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/merc_elite/green
|
|
name = "Emergency Services Dock"
|
|
landmark_tag = "nav_mercelite_green"
|
|
docking_controller = "green_dock_west"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
//-// TCFL Dropship //-//
|
|
|
|
/datum/shuttle/autodock/multi/legion
|
|
name = "Legion Shuttle"
|
|
current_location = "nav_legion_start"
|
|
warmup_time = 10
|
|
move_time = 75
|
|
ceiling_type = /turf/simulated/shuttle_roof/legion
|
|
shuttle_area = /area/shuttle/legion
|
|
dock_target = "legion_shuttle"
|
|
landmark_transition = "nav_legion_interim"
|
|
destination_tags = list(
|
|
"nav_legion_start",
|
|
"nav_legion_green",
|
|
"nav_legion_merchant",
|
|
"nav_legion_medical"
|
|
)
|
|
|
|
/obj/effect/shuttle_landmark/legion/start
|
|
name = "BLV The Tower"
|
|
landmark_tag = "nav_legion_start"
|
|
docking_controller = "legion_hangar"
|
|
base_turf = /turf/unsimulated/floor/plating
|
|
base_area = /area/centcom/legion/hangar5
|
|
|
|
/obj/effect/shuttle_landmark/legion/interim
|
|
name = "In Transit"
|
|
landmark_tag = "nav_legion_interim"
|
|
base_turf = /turf/space/transit/bluespace/west
|
|
|
|
/obj/effect/shuttle_landmark/legion/green
|
|
name = "Third Deck Port Dock 1"
|
|
landmark_tag = "nav_legion_green"
|
|
docking_controller = "legion_shuttle_dock"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/legion/merchant
|
|
name = "Merchant Dock"
|
|
landmark_tag = "nav_legion_merchant"
|
|
docking_controller = "merchant_shuttle_dock"
|
|
special_dock_targets = list("Legion Shuttle" = "legion_shuttle_aft_airlock")
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/legion/medical
|
|
name = "External Airlock by Medical"
|
|
landmark_tag = "nav_legion_medical"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
//-// Research Shuttle //-//
|
|
|
|
/datum/shuttle/autodock/multi/research_aurora
|
|
name = "Research Shuttle"
|
|
current_location = "nav_research_dock"
|
|
warmup_time = 10
|
|
move_time = 60
|
|
shuttle_area = /area/shuttle/research
|
|
dock_target = "science_shuttle"
|
|
landmark_transition = "nav_research_interim"
|
|
destination_tags = list(
|
|
"nav_research_dock",
|
|
"nav_research_yellow",
|
|
"nav_research_away"
|
|
)
|
|
|
|
/obj/effect/shuttle_landmark/research/start
|
|
name = "Research Dock"
|
|
landmark_tag = "nav_research_dock"
|
|
docking_controller = "science_bridge"
|
|
base_turf = /turf/simulated/floor/exoplanet/asteroid/ash
|
|
base_area = /area/mine/explored
|
|
|
|
/obj/effect/shuttle_landmark/research/yellow
|
|
name = "Yellow Dock"
|
|
landmark_tag = "nav_research_yellow"
|
|
docking_controller = "yellow_shuttle_dock_airlock"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/research/interim
|
|
name = "In Transit"
|
|
landmark_tag = "nav_research_interim"
|
|
base_turf = /turf/space/transit/north
|
|
|
|
/obj/effect/shuttle_landmark/research/dock
|
|
name = "Away Site"
|
|
landmark_tag = "nav_research_away"
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
//-// Distress Team Shuttle //-//
|
|
|
|
/datum/shuttle/autodock/multi/distress
|
|
name = "Distress Shuttle"
|
|
current_location = "nav_distress_away"
|
|
warmup_time = 10
|
|
move_time = 45
|
|
dock_target = "distress_shuttle_aft"
|
|
shuttle_area = /area/shuttle/distress
|
|
landmark_transition = "nav_distress_interim"
|
|
destination_tags = list(
|
|
"nav_distress_away",
|
|
"nav_distress_green",
|
|
"nav_distress_blue"
|
|
)
|
|
|
|
/obj/effect/shuttle_landmark/distress/start
|
|
name = "Distress Preparation Wing"
|
|
landmark_tag = "nav_distress_away"
|
|
docking_controller = "distress_shuttle_origin"
|
|
base_turf = /turf/unsimulated/floor/plating
|
|
base_area = /area/centcom/distress_prep
|
|
|
|
/obj/effect/shuttle_landmark/distress/interim
|
|
name = "In Transit"
|
|
landmark_tag = "nav_distress_interim"
|
|
base_turf = /turf/space/transit/bluespace/west
|
|
|
|
/obj/effect/shuttle_landmark/distress/green
|
|
name = "Emergency Services Dock"
|
|
landmark_tag = "nav_distress_green"
|
|
docking_controller = "green_dock_west"
|
|
special_dock_targets = list("Distress Shuttle" = "distress_shuttle_fore")
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
|
|
/obj/effect/shuttle_landmark/distress/blue
|
|
name = "First Deck Port Hangar Bay 2b"
|
|
landmark_tag = "nav_distress_blue"
|
|
special_dock_targets = list("Distress Shuttle" = "distress_shuttle_fore")
|
|
landmark_flags = SLANDMARK_FLAG_AUTOSET
|
|
base_turf = /turf/simulated/floor/plating
|