[MIRROR] Emergency shuttle information display improvements [MDB IGNORE] (#23016)

* Emergency shuttle information display improvements

* Update emergency.dm

* Update emergency.dm

* Modular shuttles

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-08-11 22:39:32 -04:00
committed by GitHub
co-authored by Tim Giz
parent 57721f2d08
commit 008b044ac5
26 changed files with 591 additions and 573 deletions
+4 -9
View File
@@ -812,9 +812,6 @@
/turf/open/floor/iron/small,
/area/shuttle/abandoned/cargo)
"Bs" = (
/obj/machinery/computer/shuttle/white_ship/bridge{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/broken/directional/south,
/obj/machinery/button/door/directional/south{
@@ -827,6 +824,7 @@
name = "Bridge Blast Door Control";
pixel_x = 6
},
/obj/structure/table/greyscale,
/turf/open/floor/iron/dark/small,
/area/shuttle/abandoned/bridge)
"Bt" = (
@@ -948,10 +946,10 @@
/turf/open/floor/catwalk_floor,
/area/shuttle/abandoned/crew)
"FK" = (
/obj/machinery/computer/shuttle/white_ship/pod/recall{
/obj/effect/decal/cleanable/dirt,
/obj/machinery/computer/shuttle/white_ship/bridge{
dir = 1
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark/small,
/area/shuttle/abandoned/bridge)
"FL" = (
@@ -1393,14 +1391,11 @@
/turf/open/floor/iron/smooth_large,
/area/shuttle/abandoned/cargo)
"Uu" = (
/obj/structure/chair/comfy/shuttle{
dir = 4
},
/obj/structure/chair/comfy/shuttle,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark/small,
/area/shuttle/abandoned/bridge)
"UK" = (
/obj/structure/table/greyscale,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/turretid{
icon_state = "control_kill";
+17 -25
View File
@@ -664,6 +664,10 @@
pixel_x = 14
},
/obj/structure/cable,
/obj/item/megaphone{
pixel_x = -2;
pixel_y = -4
},
/turf/open/floor/iron/dark,
/area/shuttle/abandoned/bridge)
"cf" = (
@@ -686,12 +690,12 @@
/area/shuttle/abandoned/bridge)
"cg" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/computer/shuttle/white_ship/pod/recall{
dir = 8
},
/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
dir = 1
},
/obj/machinery/computer/shuttle/white_ship/bridge{
dir = 8
},
/turf/open/floor/iron/dark,
/area/shuttle/abandoned/bridge)
"ch" = (
@@ -768,13 +772,16 @@
/turf/open/floor/iron,
/area/shuttle/abandoned/bar)
"cv" = (
/obj/machinery/computer/shuttle/white_ship/bridge{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 8
},
/obj/structure/table,
/obj/item/folder/blue{
pixel_x = 6;
pixel_y = 9
},
/obj/machinery/recharger,
/turf/open/floor/iron/dark,
/area/shuttle/abandoned/bridge)
"cx" = (
@@ -828,28 +835,19 @@
/obj/structure/table,
/obj/machinery/light/small/built/directional/west,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/cell_charger,
/obj/item/stock_parts/cell/high,
/obj/item/radio/off{
pixel_x = 6;
pixel_y = 7
},
/obj/item/megaphone{
pixel_x = -2;
pixel_y = -4
},
/turf/open/floor/iron/dark,
/area/shuttle/abandoned/bridge)
"cE" = (
/obj/structure/table,
/obj/machinery/firealarm/directional/south,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/cell_charger,
/obj/item/stock_parts/cell/high,
/obj/item/storage/toolbox/emergency{
pixel_x = -12
},
/obj/item/wrench{
pixel_x = -12
},
/obj/item/wrench,
/obj/item/storage/toolbox/emergency,
/turf/open/floor/iron/dark,
/area/shuttle/abandoned/bridge)
"cF" = (
@@ -1652,15 +1650,9 @@
/turf/open/floor/iron/dark,
/area/shuttle/abandoned/cargo)
"wE" = (
/obj/structure/table,
/obj/machinery/airalarm/directional/north,
/obj/effect/mapping_helpers/airalarm/all_access,
/obj/effect/decal/cleanable/dirt,
/obj/item/folder/blue{
pixel_x = 6;
pixel_y = 9
},
/obj/machinery/recharger,
/turf/open/floor/iron/dark,
/area/shuttle/abandoned/bridge)
"xK" = (
+83
View File
@@ -0,0 +1,83 @@
/datum/map_template/shuttle
name = "Base Shuttle Template"
var/prefix = "_maps/shuttles/"
var/suffix
/**
* Port ID is the place this template should be docking at, set on '/obj/docking_port/stationary'
* Because getShuttle() compares port_id to shuttle_id to find an already existing shuttle,
* you should set shuttle_id to be the same as port_id if you want them to be replacable.
*/
var/port_id
/// ID of the shuttle, make sure it matches port_id if necessary.
var/shuttle_id
/// Information to display on communication console about the shuttle
var/description
/// The recommended occupancy limit for the shuttle (count chairs, beds, and benches then round to 5)
var/occupancy_limit
/// Description of the prerequisition that has to be achieved for the shuttle to be purchased
var/prerequisites
/// Shuttle warnings and hazards to the admin who spawns the shuttle
var/admin_notes
/// How much does this shuttle cost the cargo budget to purchase? Put in terms of CARGO_CRATE_VALUE to properly scale the cost with the current balance of cargo's income.
var/credit_cost = INFINITY
/// What job accesses can buy this shuttle? If null, this shuttle cannot be bought.
var/list/who_can_purchase = list(ACCESS_CAPTAIN)
/// Whether or not this shuttle is locked to emags only.
var/emag_only = FALSE
/// If set, overrides default movement_force on shuttle
var/list/movement_force
var/port_x_offset
var/port_y_offset
var/extra_desc = ""
/datum/map_template/shuttle/proc/prerequisites_met()
return TRUE
/datum/map_template/shuttle/New()
shuttle_id = "[port_id]_[suffix]"
mappath = "[prefix][shuttle_id].dmm"
. = ..()
/datum/map_template/shuttle/preload_size(path, cache)
. = ..(path, TRUE) // Done this way because we still want to know if someone actualy wanted to cache the map
if(!cached_map)
return
var/offset = discover_offset(/obj/docking_port/mobile)
port_x_offset = offset[1]
port_y_offset = offset[2]
if(!cache)
cached_map = null
/datum/map_template/shuttle/load(turf/T, centered, register=TRUE)
. = ..()
if(!.)
return
var/list/turfs = block( locate(.[MAP_MINX], .[MAP_MINY], .[MAP_MINZ]),
locate(.[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ]))
for(var/i in 1 to turfs.len)
var/turf/place = turfs[i]
if(isspaceturf(place)) // This assumes all shuttles are loaded in a single spot then moved to their real destination.
continue
if (place.count_baseturfs() < 2) // Some snowflake shuttle shit
continue
place.insert_baseturf(3, /turf/baseturf_skipover/shuttle)
for(var/obj/docking_port/mobile/port in place)
port.calculate_docking_port_information(src)
// initTemplateBounds explicitly ignores the shuttle's docking port, to ensure that it calculates the bounds of the shuttle correctly
// so we need to manually initialize it here
SSatoms.InitializeAtoms(list(port))
if(register)
port.register()
//Whatever special stuff you want
/datum/map_template/shuttle/post_load(obj/docking_port/mobile/M)
if(movement_force)
M.movement_force = movement_force.Copy()
M.linkup()
+35
View File
@@ -0,0 +1,35 @@
/datum/map_template/shuttle/arrival
port_id = "arrival"
who_can_purchase = null
/datum/map_template/shuttle/arrival/box
suffix = "box"
name = "arrival shuttle (Box)"
/datum/map_template/shuttle/arrival/donut
suffix = "donut"
name = "arrival shuttle (Donut)"
/datum/map_template/shuttle/arrival/birdshot
suffix = "birdshot"
name = "arrival shuttle (Birdshot)"
/datum/map_template/shuttle/arrival/delta
suffix = "delta"
name = "arrival shuttle (Delta)"
/datum/map_template/shuttle/arrival/kilo
suffix = "kilo"
name = "arrival shuttle (Kilo)"
/datum/map_template/shuttle/arrival/pubby
suffix = "pubby"
name = "arrival shuttle (Pubby)"
/datum/map_template/shuttle/arrival/omega
suffix = "omega"
name = "arrival shuttle (Omega)"
/datum/map_template/shuttle/arrival/northstar
suffix = "northstar"
name = "arrival shuttle (North Star)"
+7
View File
@@ -0,0 +1,7 @@
/datum/map_template/shuttle/assault_pod
port_id = "assault_pod"
who_can_purchase = null
/datum/map_template/shuttle/assault_pod/default
suffix = "default"
name = "assault pod (Default)"
+11
View File
@@ -0,0 +1,11 @@
/datum/map_template/shuttle/aux_base
port_id = "aux_base"
who_can_purchase = null
/datum/map_template/shuttle/aux_base/default
suffix = "default"
name = "auxilliary base (Default)"
/datum/map_template/shuttle/aux_base/small
suffix = "small"
name = "auxilliary base (Small)"
+36
View File
@@ -0,0 +1,36 @@
/datum/map_template/shuttle/cargo
port_id = "cargo"
name = "Base Shuttle Template (Cargo)"
who_can_purchase = null
/datum/map_template/shuttle/cargo/kilo
suffix = "kilo"
name = "supply shuttle (Kilo)"
/datum/map_template/shuttle/cargo/birdboat
suffix = "birdboat"
name = "supply shuttle (Birdboat)"
/datum/map_template/shuttle/cargo/donut
suffix = "donut"
name = "supply shuttle (Donut)"
/datum/map_template/shuttle/cargo/pubby
suffix = "pubby"
name = "supply shuttle (Pubby)"
/datum/map_template/shuttle/cargo/birdshot
suffix = "birdshot"
name = "supply shuttle (Birdshot)"
/datum/map_template/shuttle/cargo/box
suffix = "box"
name = "cargo ferry (Box)"
/datum/map_template/shuttle/cargo/delta
suffix = "delta"
name = "cargo ferry (Delta)"
/datum/map_template/shuttle/cargo/northstar
suffix = "northstar"
name = "cargo ferry (North Star)"
@@ -1,154 +1,13 @@
#define EMAG_LOCKED_SHUTTLE_COST (CARGO_CRATE_VALUE * 50)
/datum/map_template/shuttle
name = "Base Shuttle Template"
var/prefix = "_maps/shuttles/"
var/suffix
/**
* Port ID is the place this template should be docking at, set on '/obj/docking_port/stationary'
* Because getShuttle() compares port_id to shuttle_id to find an already existing shuttle,
* you should set shuttle_id to be the same as port_id if you want them to be replacable.
*/
var/port_id
///ID of the shuttle, make sure it matches port_id if necessary.
var/shuttle_id
var/description
var/prerequisites
var/admin_notes
/// How much does this shuttle cost the cargo budget to purchase? Put in terms of CARGO_CRATE_VALUE to properly scale the cost with the current balance of cargo's income.
var/credit_cost = INFINITY
/// What job accesses can buy this shuttle? If null, this shuttle cannot be bought.
var/list/who_can_purchase = list(ACCESS_CAPTAIN)
/// Whether or not this shuttle is locked to emags only.
var/emag_only = FALSE
/// If set, overrides default movement_force on shuttle
var/list/movement_force
var/port_x_offset
var/port_y_offset
var/extra_desc = ""
/datum/map_template/shuttle/proc/prerequisites_met()
return TRUE
/datum/map_template/shuttle/New()
shuttle_id = "[port_id]_[suffix]"
mappath = "[prefix][shuttle_id].dmm"
. = ..()
/datum/map_template/shuttle/preload_size(path, cache)
. = ..(path, TRUE) // Done this way because we still want to know if someone actualy wanted to cache the map
if(!cached_map)
return
var/offset = discover_offset(/obj/docking_port/mobile)
port_x_offset = offset[1]
port_y_offset = offset[2]
if(!cache)
cached_map = null
/datum/map_template/shuttle/load(turf/T, centered, register=TRUE)
. = ..()
if(!.)
return
var/list/turfs = block( locate(.[MAP_MINX], .[MAP_MINY], .[MAP_MINZ]),
locate(.[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ]))
for(var/i in 1 to turfs.len)
var/turf/place = turfs[i]
if(isspaceturf(place)) // This assumes all shuttles are loaded in a single spot then moved to their real destination.
continue
if (place.count_baseturfs() < 2) // Some snowflake shuttle shit
continue
place.insert_baseturf(3, /turf/baseturf_skipover/shuttle)
for(var/obj/docking_port/mobile/port in place)
port.calculate_docking_port_information(src)
// initTemplateBounds explicitly ignores the shuttle's docking port, to ensure that it calculates the bounds of the shuttle correctly
// so we need to manually initialize it here
SSatoms.InitializeAtoms(list(port))
if(register)
port.register()
//Whatever special stuff you want
/datum/map_template/shuttle/post_load(obj/docking_port/mobile/M)
if(movement_force)
M.movement_force = movement_force.Copy()
M.linkup()
/datum/map_template/shuttle/emergency // SKYRAT EDIT OVERRIDE - OVERRIDEN IN ADVANCED_SHUTTLES - shuttles.dm
port_id = "emergency"
name = "Base Shuttle Template (Emergency)"
/datum/map_template/shuttle/cargo
port_id = "cargo"
name = "Base Shuttle Template (Cargo)"
who_can_purchase = null
/datum/map_template/shuttle/ferry
port_id = "ferry"
name = "Base Shuttle Template (Ferry)"
/datum/map_template/shuttle/whiteship
port_id = "whiteship"
/datum/map_template/shuttle/labour
port_id = "labour"
who_can_purchase = null
/datum/map_template/shuttle/mining
port_id = "mining"
who_can_purchase = null
/datum/map_template/shuttle/mining_common
port_id = "mining_common"
who_can_purchase = null
/datum/map_template/shuttle/arrival
port_id = "arrival"
who_can_purchase = null
/datum/map_template/shuttle/infiltrator
port_id = "infiltrator"
who_can_purchase = null
/datum/map_template/shuttle/aux_base
port_id = "aux_base"
who_can_purchase = null
/datum/map_template/shuttle/escape_pod
port_id = "escape_pod"
who_can_purchase = null
/datum/map_template/shuttle/assault_pod
port_id = "assault_pod"
who_can_purchase = null
/datum/map_template/shuttle/pirate
port_id = "pirate"
who_can_purchase = null
/datum/map_template/shuttle/hunter
port_id = "hunter"
who_can_purchase = null
/datum/map_template/shuttle/ruin //For random shuttles in ruins
port_id = "ruin"
who_can_purchase = null
/datum/map_template/shuttle/snowdin
port_id = "snowdin"
who_can_purchase = null
/datum/map_template/shuttle/ert
port_id = "ert"
who_can_purchase = null
// Shuttles start here:
/datum/map_template/shuttle/emergency/New()
. = ..()
if(!occupancy_limit && who_can_purchase)
CRASH("The [name] needs an occupancy limit!")
/datum/map_template/shuttle/emergency/backup
prefix = "_maps/shuttles/"
@@ -163,6 +22,7 @@
admin_notes = "No brig, no medical facilities."
credit_cost = CARGO_CRATE_VALUE * 5
who_can_purchase = list(ACCESS_CAPTAIN, ACCESS_CE)
occupancy_limit = "Flexible"
/datum/map_template/shuttle/emergency/construction/post_load()
. = ..()
@@ -170,18 +30,19 @@
var/datum/supply_pack/P = SSshuttle.supply_packs[/datum/supply_pack/engineering/shuttle_engine]
P.special_enabled = TRUE
/datum/map_template/shuttle/emergency/asteroid
suffix = "asteroid"
name = "Asteroid Station Emergency Shuttle"
description = "A respectable mid-sized shuttle that first saw service shuttling Nanotrasen crew to and from their asteroid belt embedded facilities."
credit_cost = CARGO_CRATE_VALUE * 6
occupancy_limit = "50"
/datum/map_template/shuttle/emergency/venture
suffix = "venture"
name = "Venture Emergency Shuttle"
description = "A mid-sized shuttle for those who like a lot of space for their legs."
credit_cost = CARGO_CRATE_VALUE * 10
occupancy_limit = "45"
/datum/map_template/shuttle/emergency/bar
suffix = "bar"
@@ -190,6 +51,7 @@
admin_notes = "Bardrone and Barmaid are GODMODE, will be automatically sentienced by the fun balloon at 60 seconds before arrival. \
Has medical facilities."
credit_cost = CARGO_CRATE_VALUE * 10
occupancy_limit = "30"
/datum/map_template/shuttle/emergency/pod
suffix = "pod"
@@ -197,6 +59,7 @@
description = "We did not expect an evacuation this quickly. All we have available is two escape pods."
admin_notes = "For player punishment."
who_can_purchase = null
occupancy_limit = "10"
/datum/map_template/shuttle/emergency/russiafightpit
suffix = "russiafightpit"
@@ -204,6 +67,7 @@
description = "Dis is a high-quality shuttle, da. Many seats, lots of space, all equipment! Even includes entertainment! Such as lots to drink, and a fighting arena for drunk crew to have fun! If arena not fun enough, simply press button of releasing bears. Do not worry, bears trained not to break out of fighting pit, so totally safe so long as nobody stupid or drunk enough to leave door open. Try not to let asimov babycons ruin fun!"
admin_notes = "Includes a small variety of weapons. And bears. Only captain-access can release the bears. Bears won't smash the windows themselves, but they can escape if someone lets them."
credit_cost = CARGO_CRATE_VALUE * 10 // While the shuttle is rusted and poorly maintained, trained bears are costly.
occupancy_limit = "40"
/datum/map_template/shuttle/emergency/meteor
suffix = "meteor"
@@ -212,6 +76,7 @@
admin_notes = "This shuttle will likely crush escape, killing anyone there."
credit_cost = CARGO_CRATE_VALUE * 30
movement_force = list("KNOCKDOWN" = 3, "THROW" = 2)
occupancy_limit = "CONDEMNED"
/datum/map_template/shuttle/emergency/monastery
suffix = "monastery"
@@ -221,7 +86,8 @@
emag_only = TRUE
credit_cost = EMAG_LOCKED_SHUTTLE_COST * 1.8
movement_force = list("KNOCKDOWN" = 3, "THROW" = 5)
who_can_purchase = null //SKYRAT EDIT CHANGE
occupancy_limit = "70"
who_can_purchase = null //SKYRAT EDIT ADDITION
/datum/map_template/shuttle/emergency/luxury
suffix = "luxury"
@@ -231,13 +97,16 @@
admin_notes = "Due to the limited space for non paying crew, this shuttle may cause a riot."
emag_only = TRUE
credit_cost = EMAG_LOCKED_SHUTTLE_COST
occupancy_limit = "75"
/datum/map_template/shuttle/emergency/medisim
suffix = "medisim"
name = "Medieval Reality Simulation Dome"
description = "A state of the art simulation dome, loaded onto your shuttle! Watch and laugh at how petty humanity used to be before it reached the stars. Guaranteed to be at least 40% historically accurate."
prerequisites = "A special holodeck simulation might allow this shuttle to be loaded."
admin_notes = "Ghosts can spawn in and fight as knights or archers. The CTF auto restarts, so no admin intervention necessary."
credit_cost = 20000
occupancy_limit = "30"
/datum/map_template/shuttle/emergency/medisim/prerequisites_met()
return SSshuttle.shuttle_purchase_requirements_met[SHUTTLE_UNLOCK_MEDISIM]
@@ -249,13 +118,16 @@
admin_notes = "Flaming hot. The main area has a dance machine as well as plasma floor tiles that will be ignited by players every single time."
emag_only = TRUE
credit_cost = EMAG_LOCKED_SHUTTLE_COST
occupancy_limit = "10"
/datum/map_template/shuttle/emergency/arena
suffix = "arena"
name = "The Arena"
description = "The crew must pass through an otherworldy arena to board this shuttle. Expect massive casualties. The source of the Bloody Signal must be tracked down and eliminated to unlock this shuttle."
description = "The crew must pass through an otherworldy arena to board this shuttle. Expect massive casualties."
prerequisites = "The source of the Bloody Signal must be tracked down and eliminated to unlock this shuttle."
admin_notes = "RIP AND TEAR."
credit_cost = CARGO_CRATE_VALUE * 20
occupancy_limit = "1/2"
/// Whether the arena z-level has been created
var/arena_loaded = FALSE
@@ -278,12 +150,14 @@
name = "Birdboat Station Emergency Shuttle"
description = "Though a little on the small side, this shuttle is feature complete, which is more than can be said for the pattern of station it was commissioned for."
credit_cost = CARGO_CRATE_VALUE * 2
occupancy_limit = "25"
/datum/map_template/shuttle/emergency/box
suffix = "box"
name = "Box Station Emergency Shuttle"
credit_cost = CARGO_CRATE_VALUE * 4
description = "The gold standard in emergency exfiltration, this tried and true design is equipped with everything the crew needs for a safe flight home."
occupancy_limit = "45"
/datum/map_template/shuttle/emergency/donut
suffix = "donut"
@@ -291,6 +165,7 @@
description = "The perfect spearhead for any crude joke involving the station's shape, this shuttle supports a separate containment cell for prisoners and a compact medical wing."
admin_notes = "Has airlocks on both sides of the shuttle and will probably intersect near the front on some stations that build past departures."
credit_cost = CARGO_CRATE_VALUE * 5
occupancy_limit = "60"
/datum/map_template/shuttle/emergency/clown
suffix = "clown"
@@ -302,6 +177,7 @@
Have a fun ride!"
admin_notes = "Brig is replaced by anchored greentext book surrounded by lavaland chasms, stationside door has been removed to prevent accidental dropping. No brig."
credit_cost = CARGO_CRATE_VALUE * 16
occupancy_limit = "HONK"
/datum/map_template/shuttle/emergency/cramped
suffix = "cramped"
@@ -311,36 +187,42 @@
\n\
Contains contraband armory guns, maintenance loot, and abandoned crates!"
admin_notes = "Due to origin as a solo piloted secure vessel, has an active GPS onboard labeled STV5. Has roughly as much space as Hi Daniel, except with explosive crates."
occupancy_limit = "5"
/datum/map_template/shuttle/emergency/meta
suffix = "meta"
name = "Meta Station Emergency Shuttle"
credit_cost = CARGO_CRATE_VALUE * 8
description = "A fairly standard shuttle, though larger and slightly better equipped than the Box Station variant."
occupancy_limit = "45"
/datum/map_template/shuttle/emergency/kilo
suffix = "kilo"
name = "Kilo Station Emergency Shuttle"
credit_cost = CARGO_CRATE_VALUE * 10
description = "A fully functional shuttle including a complete infirmary, storage facilties and regular amenities."
occupancy_limit = "55"
/datum/map_template/shuttle/emergency/mini
suffix = "mini"
name = "Ministation emergency shuttle"
credit_cost = CARGO_CRATE_VALUE * 2
description = "Despite its namesake, this shuttle is actually only slightly smaller than standard, and still complete with a brig and medbay."
occupancy_limit = "35"
/datum/map_template/shuttle/emergency/tram
suffix = "tram"
name = "Tram Station Emergency Shuttle"
credit_cost = CARGO_CRATE_VALUE * 4
description = "A train but in space, choo choo!"
occupancy_limit = "35"
/datum/map_template/shuttle/emergency/birdshot
suffix = "birdshot"
name = "Birdshot Station Emergency Shuttle"
credit_cost = CARGO_CRATE_VALUE * 2
description = "We pulled this one out of Mothball just for you!"
occupancy_limit = "40"
/datum/map_template/shuttle/emergency/scrapheap
suffix = "scrapheap"
@@ -349,6 +231,7 @@
description = "Comrade! We see you are having trouble with money, yes? If you have money issue, very little money, we are looking for good shuttle, emergency shuttle. You take best in sector shuttle, we take yours, you get money, da? Please do not lean on window, fragile like fina china. -Ivan"
admin_notes = "An abomination with no functional medbay, sections missing, and some very fragile windows. Surprisingly airtight. When bought, gives a good influx of money, but can only be bought if the budget is literally 0 credits."
movement_force = list("KNOCKDOWN" = 3, "THROW" = 2)
occupancy_limit = "30"
/datum/map_template/shuttle/emergency/scrapheap/prerequisites_met()
return SSshuttle.shuttle_purchase_requirements_met[SHUTTLE_UNLOCK_SCRAPHEAP]
@@ -359,7 +242,9 @@
description = "Looks like this shuttle may have wandered into the darkness between the stars on route to the station. Let's not think too hard about where all the bodies came from."
admin_notes = "Contains real cult ruins, mob eyeballs, and inactive constructs. Cult mobs will automatically be sentienced by fun balloon. \
Cloning pods in 'medbay' area are showcases and nonfunctional."
prerequisites = "Mysterious cult runes may need to be banished before this shuttle can be summoned."
credit_cost = 6667 ///The joke is the number so no defines
occupancy_limit = "666"
/datum/map_template/shuttle/emergency/narnar/prerequisites_met()
return SSshuttle.shuttle_purchase_requirements_met[SHUTTLE_UNLOCK_NARNAR]
@@ -370,6 +255,7 @@
description = "A train but in space! Complete with a first, second class, brig and storage area."
admin_notes = "Choo choo motherfucker!"
credit_cost = CARGO_CRATE_VALUE * 2
occupancy_limit = "50"
/datum/map_template/shuttle/emergency/cere
suffix = "cere"
@@ -378,6 +264,7 @@
an engine room stocked with various supplies, and a crew capacity of 80+ to top it all off. Live large, live Cere."
admin_notes = "Seriously big, even larger than the Delta shuttle."
credit_cost = CARGO_CRATE_VALUE * 20
occupancy_limit = "110"
/datum/map_template/shuttle/emergency/supermatter
suffix = "supermatter"
@@ -393,6 +280,7 @@
emag_only = TRUE
credit_cost = EMAG_LOCKED_SHUTTLE_COST
movement_force = list("KNOCKDOWN" = 3, "THROW" = 2)
occupancy_limit = "15"
/datum/map_template/shuttle/emergency/imfedupwiththisworld
suffix = "imfedupwiththisworld"
@@ -403,12 +291,14 @@
emag_only = TRUE
credit_cost = EMAG_LOCKED_SHUTTLE_COST
movement_force = list("KNOCKDOWN" = 3, "THROW" = 2)
occupancy_limit = "5"
/datum/map_template/shuttle/emergency/goon
suffix = "goon"
name = "NES Port"
description = "The Nanotrasen Emergency Shuttle Port(NES Port for short) is a shuttle used at other less known Nanotrasen facilities and has a more open inside for larger crowds, but fewer onboard shuttle facilities."
credit_cost = CARGO_CRATE_VALUE
occupancy_limit = "40"
/datum/map_template/shuttle/emergency/rollerdome
suffix = "rollerdome"
@@ -417,6 +307,7 @@
He says this shuttle is based off an old entertainment complex from the 1990s, though our database has no records on anything pertaining to that decade."
admin_notes = "ONLY NINETIES KIDS REMEMBER. Uses the fun balloon and drone from the Emergency Bar."
credit_cost = CARGO_CRATE_VALUE * 30
occupancy_limit = "5"
/datum/map_template/shuttle/emergency/basketball
suffix = "bballhooper"
@@ -426,6 +317,7 @@
It also wasn't manufactured to deal with the form-factor of some of your stations... good luck with that."
admin_notes = "A larger shuttle built around a basketball stadium: entirely impractical but just a complete blast!"
credit_cost = CARGO_CRATE_VALUE * 10
occupancy_limit = "30"
/datum/map_template/shuttle/emergency/wabbajack
suffix = "wabbajack"
@@ -435,6 +327,7 @@
Needless to say, no engineering team wanted to go near the thing, and it's only being used as an Emergency Escape Shuttle because there is literally nothing else available."
admin_notes = "If the crew can solve the puzzle, they will wake the wabbajack statue. It will likely not end well. There's a reason it's boarded up. Maybe they should have just left it alone."
credit_cost = CARGO_CRATE_VALUE * 30
occupancy_limit = "30"
/datum/map_template/shuttle/emergency/wabbajack/prerequisites_met()
return SSshuttle.shuttle_purchase_requirements_met[SHUTTLE_UNLOCK_WABBAJACK]
@@ -444,6 +337,7 @@
name = "Omegastation Emergency Shuttle"
description = "On the smaller size with a modern design, this shuttle is for the crew who like the cosier things, while still being able to stretch their legs."
credit_cost = CARGO_CRATE_VALUE * 2
occupancy_limit = "30"
/datum/map_template/shuttle/emergency/cruise
suffix = "cruise"
@@ -451,6 +345,7 @@
description = "Ordinarily reserved for special functions and events, the Cruise Shuttle Independence can bring a summery cheer to your next station evacuation for a 'modest' fee!"
admin_notes = "This motherfucker is BIG. You might need to force dock it."
credit_cost = CARGO_CRATE_VALUE * 100
occupancy_limit = "80"
/datum/map_template/shuttle/emergency/monkey
suffix = "nature"
@@ -458,6 +353,7 @@
description = "A large shuttle with a center biodome that is flourishing with life. Frolick with the monkeys! (Extra monkeys are stored on the bridge.)"
admin_notes = "Pretty freakin' large, almost as big as Raven or Cere. Excercise caution with it."
credit_cost = CARGO_CRATE_VALUE * 16
occupancy_limit = "45"
/datum/map_template/shuttle/emergency/casino
suffix = "casino"
@@ -465,6 +361,7 @@
description = "A luxurious casino packed to the brim with everything you need to start new gambling addicitions!"
admin_notes = "The ship is a bit chunky, so watch where you park it."
credit_cost = 7777
occupancy_limit = "85"
/datum/map_template/shuttle/emergency/shadow
suffix = "shadow"
@@ -472,6 +369,7 @@
description = "Guaranteed to get you somewhere FAST. With a custom-built plasma engine, this bad boy will put more distance between you and certain danger than any other!"
admin_notes = "The aft of the ship has a plasma tank that starts ignited. May get released by crew. The plasma windows next to the engine heaters will also erupt into flame, and also risk getting released by crew."
credit_cost = CARGO_CRATE_VALUE * 50
occupancy_limit = "40"
/datum/map_template/shuttle/emergency/fish
suffix = "fish"
@@ -479,6 +377,7 @@
description = "Trades such amenities as 'storage space' and 'sufficient seating' for an artifical environment ideal for fishing, plus ample supplies (also for fishing)."
admin_notes = "There's a chasm in it, it has railings but that won't stop determined players."
credit_cost = CARGO_CRATE_VALUE * 10
occupancy_limit = "35"
/datum/map_template/shuttle/emergency/lance
suffix = "lance"
@@ -486,6 +385,7 @@
description = "A brand new shuttle by Nanotrasen's finest in shuttle-engineering, it's designed to tactically slam into a destroyed station, dispatching threats and saving crew at the same time! Be careful to stay out of it's path."
admin_notes = "WARNING: This shuttle is designed to crash into the station. It has turrets, similar to the raven."
credit_cost = CARGO_CRATE_VALUE * 70
occupancy_limit = "50"
/datum/map_template/shuttle/emergency/tranquility
suffix = "tranquility"
@@ -493,6 +393,7 @@
description = "A large shuttle, covered in flora and comfortable resting areas. The perfect way to end a peaceful shift"
admin_notes = "it's pretty big, and comfy. Be careful when placing it down!"
credit_cost = CARGO_CRATE_VALUE * 25
occupancy_limit = "40"
/datum/map_template/shuttle/emergency/hugcage
suffix = "hugcage"
@@ -500,6 +401,7 @@
description = "A small cozy shuttle with plenty of beds for tired or sensitive spacemen, and a box for pillow-fights."
admin_notes = "Has a sentience fun balloon for pets."
credit_cost = CARGO_CRATE_VALUE * 16
occupancy_limit = "20"
/datum/map_template/shuttle/emergency/fame
suffix = "fame"
@@ -507,124 +409,7 @@
description = "A grandiose shuttle that has a red carpet leading to the hall of fame. Are you worthy to stand among the best spessmen in existence?"
admin_notes = "Designed around persistence from memories, trophies, photos, and statues."
credit_cost = CARGO_CRATE_VALUE * 25
/datum/map_template/shuttle/ferry/base
suffix = "base"
name = "transport ferry"
description = "Standard issue Box/Metastation CentCom ferry."
/datum/map_template/shuttle/ferry/meat
suffix = "meat"
name = "\"meat\" ferry"
description = "Ahoy! We got all kinds o' meat aft here. Meat from plant people, people who be dark, not in a racist way, just they're dark black. \
Oh and lizard meat too,mighty popular that is. Definitely 100% fresh, just ask this guy here. *person on meatspike moans* See? \
Definitely high quality meat, nothin' wrong with it, nothin' added, definitely no zombifyin' reagents!"
admin_notes = "Meat currently contains no zombifying reagents, lizard on meatspike must be spawned in."
/datum/map_template/shuttle/ferry/lighthouse
suffix = "lighthouse"
name = "The Lighthouse(?)"
description = "*static*... part of a much larger vessel, possibly military in origin. \
The weapon markings aren't anything we've seen ...static... by almost never the same person twice, possible use of unknown storage ...static... \
seeing ERT officers onboard, but no missions are on file for ...static...static...annoying jingle... only at The LIGHTHOUSE! \
Fulfilling needs you didn't even know you had. We've got EVERYTHING, and something else!"
admin_notes = "Currently larger than ferry docking port on Box, will not hit anything, but must be force docked. Trader and ERT bodyguards are not included."
/datum/map_template/shuttle/ferry/fancy
suffix = "fancy"
name = "fancy transport ferry"
description = "At some point, someone upgraded the ferry to have fancier flooring... and fewer seats."
/datum/map_template/shuttle/ferry/kilo
suffix = "kilo"
name = "kilo transport ferry"
description = "Standard issue CentCom Ferry for Kilo pattern stations. Includes additional equipment and rechargers."
/datum/map_template/shuttle/ferry/northstar
suffix = "northstar"
name = "north star transport ferry"
description = "In the very depths of the frontier, you'll need a rugged shuttle capable of delivering crew, this is that."
/datum/map_template/shuttle/whiteship/box
suffix = "box"
name = "Hospital Ship"
description = "Whiteship with medical supplies. Zombies do not currently spawn corpses, and are not infectious."
/datum/map_template/shuttle/whiteship/meta
suffix = "meta"
name = "Salvage Ship"
description = "Whiteship that focuses on a large cargo bay that players can build in. Spawns with Syndicate mobs who do not drop corpses and are highly aggressive."
/datum/map_template/shuttle/whiteship/pubby
suffix = "pubby"
name = "NT Science Vessel"
description = "A small science vessel that uses just one area and is full of angry ants."
/datum/map_template/shuttle/whiteship/cere
suffix = "cere"
name = "NT Heavy Salvage Vessel"
description = "A beefy, well-rounded salvage vessel with a pair of corpses (miner and engineer) and a Captain's hat. Equipped with solar sails and a PACMAN generator."
/datum/map_template/shuttle/whiteship/birdshot
suffix = "birdshot"
name = "NT Patrol Bee"
description = "A small patrol vessel with a central corridor connecting all rooms. Features 2 small cargo bays and a brig. Spawns with an agressive and deadly Gelatinous Cube"
/datum/map_template/shuttle/whiteship/kilo
suffix = "kilo"
name = "NT Mining Shuttle"
description = "A mining vessel with a curious shape starting with a few angry netherworld mobs."
/datum/map_template/shuttle/whiteship/donut
suffix = "donut"
name = "NT Long-Distance Bluespace Jumper"
description = "A ship hit with an engine blowout, leaving it as a depressurised husk. Has infinite power, although likely to bait people into removing that property. Also the most open out of all the whiteships, and starts with a 25% ripley chance."
/datum/map_template/shuttle/whiteship/tram
suffix = "tram"
name = "NT Long-Distance Bluespace Freighter"
description = "A long shuttle that starts with Nanotrasen private security corpses. DOES NOT FIT IN THE BASE DOCKS! Does fit in Deep Space's dock though."
/datum/map_template/shuttle/whiteship/delta
suffix = "delta"
name = "NT Frigate"
description = "A standard whiteship with big spiders onboard. PACMAN generator is not wired and next to main grid cabling, so it requires some work."
/datum/map_template/shuttle/whiteship/pod
suffix = "whiteship_pod"
name = "Salvage Pod"
description = "There is no map for this vessel and it was supposed to be used with the Meta-class. Do not try to spawn it!"
/datum/map_template/shuttle/whiteship/personalshuttle
suffix = "personalshuttle"
name = "Personal Travel Shuttle"
description = "A small vessel with a few zombies and an engineer's corpse that can be looted."
/datum/map_template/shuttle/whiteship/obelisk
suffix = "obelisk"
name = "Obelisk"
description = "A large research vessel affected by the Cult of Nar'Sie. PACMAN generator is not wired and next to main grid cabling, so it requires some work."
admin_notes = "Not actually an obelisk, has nonsentient cult constructs."
/datum/map_template/shuttle/cargo/kilo
suffix = "kilo"
name = "supply shuttle (Kilo)"
/datum/map_template/shuttle/cargo/birdboat
suffix = "birdboat"
name = "supply shuttle (Birdboat)"
/datum/map_template/shuttle/cargo/donut
suffix = "donut"
name = "supply shuttle (Donut)"
/datum/map_template/shuttle/cargo/pubby
suffix = "pubby"
name = "supply shuttle (Pubby)"
/datum/map_template/shuttle/cargo/birdshot
suffix = "birdshot"
name = "supply shuttle (Birdshot)"
occupancy_limit = "55"
/datum/map_template/shuttle/emergency/delta
suffix = "delta"
@@ -632,6 +417,7 @@
description = "A large shuttle for a large station, this shuttle can comfortably fit all your overpopulation and crowding needs. Complete with all facilities plus additional equipment."
admin_notes = "Go big or go home."
credit_cost = CARGO_CRATE_VALUE * 15
occupancy_limit = "75"
/datum/map_template/shuttle/emergency/northstar
suffix = "northstar"
@@ -639,6 +425,7 @@
description = "A rugged shuttle meant for long-distance transit from the tips of the frontier to Central Command and back. \
moderately comfortable and large, but cramped."
credit_cost = CARGO_CRATE_VALUE * 14
occupancy_limit = "55"
/datum/map_template/shuttle/emergency/raven
suffix = "raven"
@@ -648,252 +435,19 @@
This escape shuttle boasts shields and numerous anti-personnel turrets guarding its perimeter to fend off meteors and enemy boarding attempts."
admin_notes = "Comes with turrets that will target anything without the neutral faction (nuke ops, xenos etc, but not pets)."
credit_cost = CARGO_CRATE_VALUE * 60
occupancy_limit = "CLASSIFIED"
/datum/map_template/shuttle/emergency/zeta
suffix = "zeta"
name = "Tr%nPo2r& Z3TA"
description = "A glitch appears on your monitor, flickering in and out of the options laid before you. \
It seems strange and alien, you may need a special technology to access the signal.."
It seems strange and alien..."
prerequisites = "You may need a special technology to access the signal."
admin_notes = "Has alien surgery tools, and a void core that provides unlimited power."
credit_cost = CARGO_CRATE_VALUE * 16
occupancy_limit = "xxx"
/datum/map_template/shuttle/emergency/zeta/prerequisites_met()
return SSshuttle.shuttle_purchase_requirements_met[SHUTTLE_UNLOCK_ALIENTECH]
/datum/map_template/shuttle/arrival/box
suffix = "box"
name = "arrival shuttle (Box)"
/datum/map_template/shuttle/cargo/box
suffix = "box"
name = "cargo ferry (Box)"
/datum/map_template/shuttle/mining/box
suffix = "box"
name = "mining shuttle (Box)"
/datum/map_template/shuttle/labour/box
suffix = "box"
name = "labour shuttle (Box)"
/datum/map_template/shuttle/labour/generic
suffix = "generic"
name = "labour shuttle (Generic)"
/datum/map_template/shuttle/arrival/donut
suffix = "donut"
name = "arrival shuttle (Donut)"
/datum/map_template/shuttle/arrival/birdshot
suffix = "birdshot"
name = "arrival shuttle (Birdshot)"
/datum/map_template/shuttle/infiltrator/basic
suffix = "basic"
name = "basic syndicate infiltrator"
description = "Base Syndicate infiltrator, spawned by default for nukeops to use."
/datum/map_template/shuttle/infiltrator/advanced
suffix = "advanced"
name = "advanced syndicate infiltrator"
description = "A much larger version of the standard Syndicate infiltrator that feels more like Kilostation. Has APCs, but power is not a concern for nuclear operatives. Also comes with atmos!"
/datum/map_template/shuttle/cargo/delta
suffix = "delta"
name = "cargo ferry (Delta)"
/datum/map_template/shuttle/mining/delta
suffix = "delta"
name = "mining shuttle (Delta)"
/datum/map_template/shuttle/mining/kilo
suffix = "kilo"
name = "mining shuttle (Kilo)"
/datum/map_template/shuttle/mining/large
suffix = "large"
name = "mining shuttle (Large)"
/datum/map_template/shuttle/mining/northstar
suffix = "northstar"
name = "mining shuttle (North Star)"
/datum/map_template/shuttle/labour/delta
suffix = "delta"
name = "labour shuttle (Delta)"
/datum/map_template/shuttle/labour/kilo
suffix = "kilo"
name = "labour shuttle (Kilo)"
/datum/map_template/shuttle/mining_common/meta
suffix = "meta"
name = "lavaland shuttle (Meta)"
/datum/map_template/shuttle/mining_common/kilo
suffix = "kilo"
name = "lavaland shuttle (Kilo)"
/datum/map_template/shuttle/mining_common/northstar
suffix = "northstar"
name = "lavaland shuttle (North Star)"
/datum/map_template/shuttle/arrival/delta
suffix = "delta"
name = "arrival shuttle (Delta)"
/datum/map_template/shuttle/arrival/kilo
suffix = "kilo"
name = "arrival shuttle (Kilo)"
/datum/map_template/shuttle/arrival/pubby
suffix = "pubby"
name = "arrival shuttle (Pubby)"
/datum/map_template/shuttle/arrival/omega
suffix = "omega"
name = "arrival shuttle (Omega)"
/datum/map_template/shuttle/aux_base/default
suffix = "default"
name = "auxilliary base (Default)"
/datum/map_template/shuttle/aux_base/small
suffix = "small"
name = "auxilliary base (Small)"
/datum/map_template/shuttle/escape_pod/default
suffix = "default"
name = "escape pod (Default)"
description = "Base escape pod with 2 tiles of interior space."
/datum/map_template/shuttle/escape_pod/large
suffix = "large"
name = "escape pod (Large)"
description = "Actually the old Pubbystation monastery shuttle."
/datum/map_template/shuttle/escape_pod/luxury
suffix = "luxury"
name = "escape pod (Luxury)"
description = "Upgraded escape pod with 3 tiles of interior space."
/datum/map_template/shuttle/escape_pod/cramped
suffix = "cramped"
name = "escape pod (Cramped)"
description = "Downgraded escape pod that lacks a window and only has one seat, alongside lacking an emergency safe."
/datum/map_template/shuttle/assault_pod/default
suffix = "default"
name = "assault pod (Default)"
/datum/map_template/shuttle/pirate/default
suffix = "default"
name = "pirate ship (Default)"
/datum/map_template/shuttle/pirate/silverscale
suffix = "silverscale"
name = "pirate ship (Silver Scales)"
/datum/map_template/shuttle/pirate/dutchman
suffix = "dutchman"
name = "pirate ship (Flying Dutchman)"
/datum/map_template/shuttle/pirate/interdyne
suffix = "interdyne"
name = "pirate ship (Pharmaceutics Biocraft)"
/datum/map_template/shuttle/pirate/grey
suffix = "grey"
name = "pirate ship (The Space Toolbox)"
/datum/map_template/shuttle/pirate/irs
suffix = "irs"
name = "pirate ship (Space IRS)"
/datum/map_template/shuttle/pirate/geode
suffix = "geode"
name = "pirate ship (Lustrous Geode)"
/datum/map_template/shuttle/hunter/space_cop
suffix = "space_cop"
name = "Police Spacevan"
/datum/map_template/shuttle/hunter/russian
suffix = "russian"
name = "Russian Cargo Ship"
/datum/map_template/shuttle/hunter/bounty
suffix = "bounty"
name = "Bounty Hunter Ship"
/datum/map_template/shuttle/hunter/psyker
suffix = "psyker"
name = "Psyker Fortune-Telling Ship"
/datum/map_template/shuttle/starfury
port_id = "starfury"
who_can_purchase = null
/datum/map_template/shuttle/starfury/fighter_one
suffix = "fighter1"
name = "SBC Starfury Fighter (1)"
/datum/map_template/shuttle/starfury/fighter_two
suffix = "fighter2"
name = "SBC Starfury Fighter (2)"
/datum/map_template/shuttle/starfury/fighter_three
suffix = "fighter3"
name = "SBC Starfury Fighter (3)"
/datum/map_template/shuttle/starfury/corvette
suffix = "corvette"
name = "SBC Starfury Corvette"
/datum/map_template/shuttle/ruin/cyborg_mothership
suffix = "cyborg_mothership"
name = "Cyborg Mothership"
description = "A highly industrialised vessel designed for silicon operation infested with hivebots and space vines."
/datum/map_template/shuttle/ruin/caravan_victim
suffix = "caravan_victim"
name = "Small Freighter"
description = "Small freight vessel, starts near blacked-out with 3 Syndicate Commandos and 1 Syndicate Stormtrooper, alongside a large hull breach."
/datum/map_template/shuttle/ruin/pirate_cutter
suffix = "pirate_cutter"
name = "Pirate Cutter"
description = "Small pirate vessel with ballistic turrets. Spawns with 3 pirate mobs, one of which drops an energy cutlass."
/datum/map_template/shuttle/ruin/syndicate_dropship
suffix = "syndicate_dropship"
name = "Syndicate Dropship"
description = "Light Syndicate vessel with laser turrets. Spawns with a Syndicate mob in the bridge."
/datum/map_template/shuttle/ruin/syndicate_fighter_shiv
suffix = "syndicate_fighter_shiv"
name = "Syndicate Fighter"
description = "A small Syndicate vessel with exactly one tile of useful interior space and 4 laser turrets. Starts with a Syndicate mob in the pilot's seat, and extremely cramped."
/datum/map_template/shuttle/snowdin/mining
suffix = "mining"
name = "Snowdin Mining Elevator"
/datum/map_template/shuttle/snowdin/excavation
suffix = "excavation"
name = "Snowdin Excavation Elevator"
/datum/map_template/shuttle/arrival/northstar
suffix = "northstar"
name = "arrival shuttle (North Star)"
/datum/map_template/shuttle/cargo/northstar
suffix = "northstar"
name = "cargo ferry (North Star)"
// Custom ERT shuttles
/datum/map_template/shuttle/ert/bounty
suffix = "bounty"
name = "Bounty Hunter ERT Shuttle"
#undef EMAG_LOCKED_SHUTTLE_COST
+8
View File
@@ -0,0 +1,8 @@
/datum/map_template/shuttle/ert
port_id = "ert"
who_can_purchase = null
// Custom ERT shuttles
/datum/map_template/shuttle/ert/bounty
suffix = "bounty"
name = "Bounty Hunter ERT Shuttle"
+23
View File
@@ -0,0 +1,23 @@
/datum/map_template/shuttle/escape_pod
port_id = "escape_pod"
who_can_purchase = null
/datum/map_template/shuttle/escape_pod/default
suffix = "default"
name = "escape pod (Default)"
description = "Base escape pod with 2 tiles of interior space."
/datum/map_template/shuttle/escape_pod/large
suffix = "large"
name = "escape pod (Large)"
description = "Actually the old Pubbystation monastery shuttle."
/datum/map_template/shuttle/escape_pod/luxury
suffix = "luxury"
name = "escape pod (Luxury)"
description = "Upgraded escape pod with 3 tiles of interior space."
/datum/map_template/shuttle/escape_pod/cramped
suffix = "cramped"
name = "escape pod (Cramped)"
description = "Downgraded escape pod that lacks a window and only has one seat, alongside lacking an emergency safe."
+40
View File
@@ -0,0 +1,40 @@
/datum/map_template/shuttle/ferry
port_id = "ferry"
name = "Base Shuttle Template (Ferry)"
/datum/map_template/shuttle/ferry/base
suffix = "base"
name = "transport ferry"
description = "Standard issue Box/Metastation CentCom ferry."
/datum/map_template/shuttle/ferry/meat
suffix = "meat"
name = "\"meat\" ferry"
description = "Ahoy! We got all kinds o' meat aft here. Meat from plant people, people who be dark, not in a racist way, just they're dark black. \
Oh and lizard meat too,mighty popular that is. Definitely 100% fresh, just ask this guy here. *person on meatspike moans* See? \
Definitely high quality meat, nothin' wrong with it, nothin' added, definitely no zombifyin' reagents!"
admin_notes = "Meat currently contains no zombifying reagents, lizard on meatspike must be spawned in."
/datum/map_template/shuttle/ferry/lighthouse
suffix = "lighthouse"
name = "The Lighthouse(?)"
description = "*static*... part of a much larger vessel, possibly military in origin. \
The weapon markings aren't anything we've seen ...static... by almost never the same person twice, possible use of unknown storage ...static... \
seeing ERT officers onboard, but no missions are on file for ...static...static...annoying jingle... only at The LIGHTHOUSE! \
Fulfilling needs you didn't even know you had. We've got EVERYTHING, and something else!"
admin_notes = "Currently larger than ferry docking port on Box, will not hit anything, but must be force docked. Trader and ERT bodyguards are not included."
/datum/map_template/shuttle/ferry/fancy
suffix = "fancy"
name = "fancy transport ferry"
description = "At some point, someone upgraded the ferry to have fancier flooring... and fewer seats."
/datum/map_template/shuttle/ferry/kilo
suffix = "kilo"
name = "kilo transport ferry"
description = "Standard issue CentCom Ferry for Kilo pattern stations. Includes additional equipment and rechargers."
/datum/map_template/shuttle/ferry/northstar
suffix = "northstar"
name = "north star transport ferry"
description = "In the very depths of the frontier, you'll need a rugged shuttle capable of delivering crew, this is that."
+19
View File
@@ -0,0 +1,19 @@
/datum/map_template/shuttle/hunter
port_id = "hunter"
who_can_purchase = null
/datum/map_template/shuttle/hunter/space_cop
suffix = "space_cop"
name = "Police Spacevan"
/datum/map_template/shuttle/hunter/russian
suffix = "russian"
name = "Russian Cargo Ship"
/datum/map_template/shuttle/hunter/bounty
suffix = "bounty"
name = "Bounty Hunter Ship"
/datum/map_template/shuttle/hunter/psyker
suffix = "psyker"
name = "Psyker Fortune-Telling Ship"
+13
View File
@@ -0,0 +1,13 @@
/datum/map_template/shuttle/infiltrator
port_id = "infiltrator"
who_can_purchase = null
/datum/map_template/shuttle/infiltrator/basic
suffix = "basic"
name = "basic syndicate infiltrator"
description = "Base Syndicate infiltrator, spawned by default for nukeops to use."
/datum/map_template/shuttle/infiltrator/advanced
suffix = "advanced"
name = "advanced syndicate infiltrator"
description = "A much larger version of the standard Syndicate infiltrator that feels more like Kilostation. Has APCs, but power is not a concern for nuclear operatives. Also comes with atmos!"
+62
View File
@@ -0,0 +1,62 @@
// LABOUR SHUTTLES
/datum/map_template/shuttle/labour
port_id = "labour"
who_can_purchase = null
/datum/map_template/shuttle/labour/box
suffix = "box"
name = "labour shuttle (Box)"
/datum/map_template/shuttle/labour/generic
suffix = "generic"
name = "labour shuttle (Generic)"
/datum/map_template/shuttle/labour/delta
suffix = "delta"
name = "labour shuttle (Delta)"
/datum/map_template/shuttle/labour/kilo
suffix = "kilo"
name = "labour shuttle (Kilo)"
// MINING SHUTTLES
/datum/map_template/shuttle/mining
port_id = "mining"
who_can_purchase = null
/datum/map_template/shuttle/mining/box
suffix = "box"
name = "mining shuttle (Box)"
/datum/map_template/shuttle/mining/delta
suffix = "delta"
name = "mining shuttle (Delta)"
/datum/map_template/shuttle/mining/kilo
suffix = "kilo"
name = "mining shuttle (Kilo)"
/datum/map_template/shuttle/mining/large
suffix = "large"
name = "mining shuttle (Large)"
/datum/map_template/shuttle/mining/northstar
suffix = "northstar"
name = "mining shuttle (North Star)"
// MINING COMMON SHUTTLES
/datum/map_template/shuttle/mining_common
port_id = "mining_common"
who_can_purchase = null
/datum/map_template/shuttle/mining_common/meta
suffix = "meta"
name = "lavaland shuttle (Meta)"
/datum/map_template/shuttle/mining_common/kilo
suffix = "kilo"
name = "lavaland shuttle (Kilo)"
/datum/map_template/shuttle/mining_common/northstar
suffix = "northstar"
name = "lavaland shuttle (North Star)"
+31
View File
@@ -0,0 +1,31 @@
/datum/map_template/shuttle/pirate
port_id = "pirate"
who_can_purchase = null
/datum/map_template/shuttle/pirate/default
suffix = "default"
name = "pirate ship (Default)"
/datum/map_template/shuttle/pirate/silverscale
suffix = "silverscale"
name = "pirate ship (Silver Scales)"
/datum/map_template/shuttle/pirate/dutchman
suffix = "dutchman"
name = "pirate ship (Flying Dutchman)"
/datum/map_template/shuttle/pirate/interdyne
suffix = "interdyne"
name = "pirate ship (Pharmaceutics Biocraft)"
/datum/map_template/shuttle/pirate/grey
suffix = "grey"
name = "pirate ship (The Space Toolbox)"
/datum/map_template/shuttle/pirate/irs
suffix = "irs"
name = "pirate ship (Space IRS)"
/datum/map_template/shuttle/pirate/geode
suffix = "geode"
name = "pirate ship (Lustrous Geode)"
+28
View File
@@ -0,0 +1,28 @@
/datum/map_template/shuttle/ruin
port_id = "ruin"
who_can_purchase = null
/datum/map_template/shuttle/ruin/cyborg_mothership
suffix = "cyborg_mothership"
name = "Cyborg Mothership"
description = "A highly industrialised vessel designed for silicon operation infested with hivebots and space vines."
/datum/map_template/shuttle/ruin/caravan_victim
suffix = "caravan_victim"
name = "Small Freighter"
description = "Small freight vessel, starts near blacked-out with 3 Syndicate Commandos and 1 Syndicate Stormtrooper, alongside a large hull breach."
/datum/map_template/shuttle/ruin/pirate_cutter
suffix = "pirate_cutter"
name = "Pirate Cutter"
description = "Small pirate vessel with ballistic turrets. Spawns with 3 pirate mobs, one of which drops an energy cutlass."
/datum/map_template/shuttle/ruin/syndicate_dropship
suffix = "syndicate_dropship"
name = "Syndicate Dropship"
description = "Light Syndicate vessel with laser turrets. Spawns with a Syndicate mob in the bridge."
/datum/map_template/shuttle/ruin/syndicate_fighter_shiv
suffix = "syndicate_fighter_shiv"
name = "Syndicate Fighter"
description = "A small Syndicate vessel with exactly one tile of useful interior space and 4 laser turrets. Starts with a Syndicate mob in the pilot's seat, and extremely cramped."
+11
View File
@@ -0,0 +1,11 @@
/datum/map_template/shuttle/snowdin
port_id = "snowdin"
who_can_purchase = null
/datum/map_template/shuttle/snowdin/mining
suffix = "mining"
name = "Snowdin Mining Elevator"
/datum/map_template/shuttle/snowdin/excavation
suffix = "excavation"
name = "Snowdin Excavation Elevator"
+20
View File
@@ -0,0 +1,20 @@
/datum/map_template/shuttle/starfury
port_id = "starfury"
who_can_purchase = null
/datum/map_template/shuttle/starfury/fighter_one
suffix = "fighter1"
name = "SBC Starfury Fighter (1)"
/datum/map_template/shuttle/starfury/fighter_two
suffix = "fighter2"
name = "SBC Starfury Fighter (2)"
/datum/map_template/shuttle/starfury/fighter_three
suffix = "fighter3"
name = "SBC Starfury Fighter (3)"
/datum/map_template/shuttle/starfury/corvette
suffix = "corvette"
name = "SBC Starfury Corvette"
+58
View File
@@ -0,0 +1,58 @@
/datum/map_template/shuttle/whiteship
port_id = "whiteship"
/datum/map_template/shuttle/whiteship/box
suffix = "box"
name = "Hospital Ship"
description = "Whiteship with medical supplies. Zombies do not currently spawn corpses, and are not infectious."
/datum/map_template/shuttle/whiteship/meta
suffix = "meta"
name = "Salvage Ship"
description = "Whiteship that focuses on a large cargo bay that players can build in. Spawns with Syndicate mobs who do not drop corpses and are highly aggressive."
/datum/map_template/shuttle/whiteship/pubby
suffix = "pubby"
name = "NT Science Vessel"
description = "A small science vessel that uses just one area and is full of angry ants."
/datum/map_template/shuttle/whiteship/cere
suffix = "cere"
name = "NT Heavy Salvage Vessel"
description = "A beefy, well-rounded salvage vessel with a pair of corpses (miner and engineer) and a Captain's hat. Equipped with solar sails and a PACMAN generator."
/datum/map_template/shuttle/whiteship/birdshot
suffix = "birdshot"
name = "NT Patrol Bee"
description = "A small patrol vessel with a central corridor connecting all rooms. Features 2 small cargo bays and a brig. Spawns with an agressive and deadly Gelatinous Cube"
/datum/map_template/shuttle/whiteship/kilo
suffix = "kilo"
name = "NT Mining Shuttle"
description = "A mining vessel with a curious shape starting with a few angry netherworld mobs."
/datum/map_template/shuttle/whiteship/donut
suffix = "donut"
name = "NT Long-Distance Bluespace Jumper"
description = "A ship hit with an engine blowout, leaving it as a depressurised husk. Has infinite power, although likely to bait people into removing that property. Also the most open out of all the whiteships, and starts with a 25% ripley chance."
/datum/map_template/shuttle/whiteship/tram
suffix = "tram"
name = "NT Long-Distance Bluespace Freighter"
description = "A long shuttle that starts with Nanotrasen private security corpses. DOES NOT FIT IN THE BASE DOCKS! Does fit in Deep Space's dock though."
/datum/map_template/shuttle/whiteship/delta
suffix = "delta"
name = "NT Frigate"
description = "A standard whiteship with big spiders onboard. PACMAN generator is not wired and next to main grid cabling, so it requires some work."
/datum/map_template/shuttle/whiteship/personalshuttle
suffix = "personalshuttle"
name = "Personal Travel Shuttle"
description = "A small vessel with a few zombies and an engineer's corpse that can be looted."
/datum/map_template/shuttle/whiteship/obelisk
suffix = "obelisk"
name = "Obelisk"
description = "A large research vessel affected by the Cult of Nar'Sie. PACMAN generator is not wired and next to main grid cabling, so it requires some work."
admin_notes = "Not actually an obelisk, has nonsentient cult constructs."
@@ -660,6 +660,7 @@ GLOBAL_VAR_INIT(cops_arrived, FALSE)
shuttles += list(list(
"name" = shuttle_template.name,
"description" = shuttle_template.description,
"occupancy_limit" = shuttle_template.occupancy_limit,
"creditCost" = shuttle_template.credit_cost,
"emagOnly" = shuttle_template.emag_only,
"prerequisites" = shuttle_template.prerequisites,
@@ -324,14 +324,6 @@
greyscale_colors = CIRCUIT_COLOR_GENERIC
build_path = /obj/machinery/computer/shuttle/white_ship/bridge
/obj/item/circuitboard/computer/white_ship/pod
name = "Salvage Pod"
build_path = /obj/machinery/computer/shuttle/white_ship/pod
/obj/item/circuitboard/computer/white_ship/pod/recall
name = "Salvage Pod Recall"
build_path = /obj/machinery/computer/shuttle/white_ship/pod/recall
/obj/item/circuitboard/computer/bountypad
name = "Bounty Pad"
build_path = /obj/machinery/computer/piratepad_control/civilian
-24
View File
@@ -15,19 +15,6 @@
. = ..()
AddComponent(/datum/component/gps, SPACE_SIGNAL_GPSTAG)
/obj/machinery/computer/shuttle/white_ship/pod
name = "Salvage Pod Console"
desc = "Used to control the Salvage Pod."
circuit = /obj/item/circuitboard/computer/white_ship/pod
shuttleId = "whiteship_pod"
possible_destinations = "whiteship_pod_home;whiteship_pod_custom"
/obj/machinery/computer/shuttle/white_ship/pod/recall
name = "Salvage Pod Recall Console"
desc = "Used to recall the Salvage Pod."
circuit = /obj/item/circuitboard/computer/white_ship/pod/recall
possible_destinations = "whiteship_pod_home"
/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship
name = "White Ship Navigation Computer"
desc = "Used to designate a precise transit location for the White Ship."
@@ -40,17 +27,6 @@
y_offset = -10
designate_time = 100
/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship/pod
name = "Salvage Pod Navigation Computer"
desc = "Used to designate a precise transit location for the Salvage Pod."
shuttleId = "whiteship_pod"
shuttlePortId = "whiteship_pod_custom"
jump_to_ports = list("whiteship_pod_home" = 1)
view_range = 0
x_offset = -2
y_offset = 0
designate_time = 0
/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship/Initialize(mapload)
. = ..()
GLOB.jam_on_wardec += src
@@ -61,6 +61,7 @@
suffix = "skyrat"
name = "Standard Emergency Shuttle"
description = "Nanotrasen's standard issue emergency shuttle."
occupancy_limit = 60
/datum/map_template/shuttle/labour/skyrat
name = "NMC Drudge (Labour)"
@@ -9,6 +9,7 @@
description = "The perfect shuttle for rectangle enthuasiasts, this long and slender shuttle has been known for it's incredible(Citation Needed) safety rating."
admin_notes = "Has airlocks on both sides of the shuttle and will probably ram deltastation's maint wing below medical. Oh well?"
credit_cost = CARGO_CRATE_VALUE * 4
occupancy_limit = 45
/*----- Black Market Shuttle Datum + related code -----*/
/datum/map_template/shuttle/ruin/blackmarket_chevvy
+17 -1
View File
@@ -801,7 +801,6 @@
#include "code\datums\request_message.dm"
#include "code\datums\ruins.dm"
#include "code\datums\saymode.dm"
#include "code\datums\shuttles.dm"
#include "code\datums\signals.dm"
#include "code\datums\spawners_menu.dm"
#include "code\datums\sprite_accessories.dm"
@@ -1572,6 +1571,23 @@
#include "code\datums\screentips\atom_context.dm"
#include "code\datums\screentips\item_context.dm"
#include "code\datums\screentips\screentips.dm"
#include "code\datums\shuttles\_shuttle.dm"
#include "code\datums\shuttles\arrival.dm"
#include "code\datums\shuttles\assault_pod.dm"
#include "code\datums\shuttles\aux_base.dm"
#include "code\datums\shuttles\cargo.dm"
#include "code\datums\shuttles\emergency.dm"
#include "code\datums\shuttles\ert.dm"
#include "code\datums\shuttles\escape_pod.dm"
#include "code\datums\shuttles\ferry.dm"
#include "code\datums\shuttles\hunter.dm"
#include "code\datums\shuttles\infiltrator.dm"
#include "code\datums\shuttles\mining.dm"
#include "code\datums\shuttles\pirate.dm"
#include "code\datums\shuttles\ruin.dm"
#include "code\datums\shuttles\snowdin.dm"
#include "code\datums\shuttles\starfury.dm"
#include "code\datums\shuttles\whiteship.dm"
#include "code\datums\skills\_skill.dm"
#include "code\datums\skills\cleaning.dm"
#include "code\datums\skills\fishing.dm"
@@ -193,9 +193,14 @@ const PageBuyingShuttle = (props, context) => {
/>
}>
<Box>{shuttle.description}</Box>
{shuttle.prerequisites ? (
<b>Prerequisites: {shuttle.prerequisites}</b>
) : null}
<Box color="teal" fontSize="10px" italic>
Occupancy Limit: {shuttle.occupancy_limit}
</Box>
<Box color="violet" fontSize="10px" bold>
{shuttle.prerequisites ? (
<b>Prerequisitces: {shuttle.prerequisites}</b>
) : null}
</Box>
</Section>
))}
</Box>