Allows the Trader Shuttle to be Manipulated by the Shuttle Manipulator + Very minor other trade shuttle content (#30849)

* A surprising number of file changes, this needed.

* lateload wooo

* Update centcomm.dmm

* Update centcomm.dmm

* Update shuttles.dm

---------

Co-authored-by: Fordoxia <143041327+Fordoxia@users.noreply.github.com>
This commit is contained in:
CRUNCH
2025-11-25 14:57:30 +00:00
committed by GitHub
co-authored by Fordoxia
parent d1d7c7fdcf
commit ef74d4ee5f
21 changed files with 432 additions and 435 deletions
+66 -71
View File
@@ -2349,6 +2349,16 @@
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
"if" = (
/obj/structure/mirror{
pixel_x = 28
},
/obj/structure/sink/directional/east,
/obj/structure/mirror{
pixel_x = 28
},
/turf/simulated/floor/plasteel/freezer,
/area/trader_station/sol)
"ig" = (
/turf/simulated/floor/plating/airless,
/area/trader_station/sol)
@@ -5633,6 +5643,10 @@
},
/turf/simulated/floor/plasteel/dark,
/area/ghost_bar)
"sJ" = (
/obj/docking_port/stationary/trader/centcom,
/turf/space,
/area/space/centcomm)
"sK" = (
/turf/simulated/floor/plasteel/stairs/left,
/area/syndicate_mothership)
@@ -5849,7 +5863,7 @@
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate)
"tA" = (
/obj/item/kirbyplants/large,
/obj/machinery/economy/vending/cigarette/free,
/turf/simulated/floor/wood,
/area/trader_station/sol)
"tB" = (
@@ -5962,24 +5976,11 @@
/obj/structure/table/glass/reinforced/plastitanium,
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
"tY" = (
/obj/docking_port/stationary{
dir = 8;
dwidth = 11;
height = 30;
id = "trader_base";
name = "docking bay at Trading Satellite";
width = 22
},
/turf/space,
/area/space/centcomm)
"tZ" = (
/obj/machinery/door/airlock/external{
id_tag = "trader_base";
name = "Docking Port"
},
/obj/structure/fans/tiny,
/obj/effect/mapping_helpers/airlock/locked,
/obj/machinery/door/airlock/external/glass{
id_tag = "trader_away"
},
/turf/simulated/floor/wood,
/area/trader_station/sol)
"ua" = (
@@ -6348,6 +6349,7 @@
/area/trader_station/sol)
"vs" = (
/obj/structure/railing,
/obj/item/kirbyplants/large,
/turf/simulated/floor/wood,
/area/trader_station/sol)
"vt" = (
@@ -6692,13 +6694,6 @@
"wB" = (
/turf/simulated/floor/plasteel/freezer,
/area/trader_station/sol)
"wD" = (
/obj/structure/mirror{
pixel_x = 28
},
/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel/freezer,
/area/trader_station/sol)
"wE" = (
/obj/structure/rack,
/obj/item/gun/energy/meteorgun,
@@ -43442,6 +43437,18 @@ aN
aN
aN
aN
Db
aN
aN
aN
aN
aN
aN
aN
aN
aN
aN
Db
aN
aN
aN
@@ -43454,19 +43461,7 @@ aN
aN
aN
aN
aN
aN
aN
aN
aN
aN
aN
aN
aN
aN
aN
aN
aN
Db
aN
aN
aN
@@ -47554,6 +47549,7 @@ aN
aN
aN
aN
Db
aN
aN
aN
@@ -47577,8 +47573,7 @@ aN
aN
aN
aN
aN
aN
Db
aN
aN
aN
@@ -51163,8 +51158,8 @@ aN
aN
aN
aN
sJ
aN
tY
aN
aN
aN
@@ -51409,8 +51404,7 @@ aN
aN
aN
aN
aN
aN
Db
aN
aN
aN
@@ -51434,6 +51428,7 @@ aN
aN
aN
aN
Db
aN
aN
aN
@@ -51675,7 +51670,6 @@ aN
aN
aN
aN
aN
vG
sv
tF
@@ -51696,6 +51690,7 @@ aN
aN
aN
aN
aN
vy
pa
Em
@@ -51932,14 +51927,13 @@ aN
aN
aN
aN
aN
vG
tl
tF
tF
vG
wd
wB
wd
xa
vG
aN
@@ -51953,6 +51947,7 @@ aN
aN
aN
aN
aN
vy
yD
Em
@@ -52189,14 +52184,13 @@ aN
aN
aN
aN
aN
vG
tt
tF
tF
vr
wf
wD
if
vG
vG
aN
@@ -52205,6 +52199,7 @@ aN
aN
aN
aN
aN
Db
aN
aN
@@ -52446,7 +52441,6 @@ aN
aN
aN
aN
aN
vG
tA
tF
@@ -52455,7 +52449,8 @@ vG
vG
vG
vG
vG
aN
aN
aN
aN
aN
@@ -52703,7 +52698,6 @@ aN
aN
aN
aN
aN
vG
tB
tF
@@ -52719,6 +52713,7 @@ aN
aN
aN
aN
aN
Db
aN
aN
@@ -52960,7 +52955,6 @@ aN
aN
aN
aN
aN
vG
tD
tF
@@ -52981,6 +52975,7 @@ aN
aN
aN
aN
aN
od
od
EF
@@ -53217,7 +53212,6 @@ aN
aN
aN
aN
aN
vG
tE
tF
@@ -53239,6 +53233,7 @@ aN
aN
aN
aN
aN
od
vy
od
@@ -53473,7 +53468,6 @@ aN
aN
aN
aN
aN
vG
vG
Ai
@@ -53500,6 +53494,7 @@ aN
aN
aN
aN
aN
od
od
nj
@@ -53730,7 +53725,6 @@ aN
aN
aN
aN
aN
po
qB
tF
@@ -53758,6 +53752,7 @@ aN
aN
aN
aN
aN
vy
nj
Mb
@@ -53987,7 +53982,6 @@ aN
aN
aN
aN
aN
po
qB
tF
@@ -54004,6 +53998,7 @@ aN
aN
aN
aN
aN
Db
aN
aN
@@ -54244,7 +54239,6 @@ aN
aN
aN
aN
aN
po
qB
tF
@@ -54272,6 +54266,7 @@ aN
aN
aN
aN
aN
od
vy
Md
@@ -54501,15 +54496,15 @@ aN
aN
aN
aN
vG
vG
tH
Tu
Tu
tH
vG
vG
aN
vG
vG
tH
Tu
Tu
tH
vG
vG
aN
aN
aN
@@ -54759,7 +54754,6 @@ aN
aN
aN
aN
aN
vG
ig
ig
@@ -54907,6 +54901,7 @@ aN
aN
aN
aN
aN
"}
(156,1,1) = {"
aN
@@ -55016,12 +55011,12 @@ aN
aN
aN
aN
aN
aN
aN
aN
aN
aN
vG
vG
vG
vG
vG
vG
aN
aN
aN
@@ -285,13 +285,13 @@
pixel_x = 9;
pixel_y = 6
},
/obj/item/storage/fancy/cigarettes/cigpack_carp{
pixel_x = -6;
pixel_y = 4
},
/obj/effect/turf_decal/tiles/department/command{
dir = 4
},
/obj/item/storage/fancy/cigarettes/cigpack_solar_rays{
pixel_x = -6;
pixel_y = 4
},
/turf/simulated/floor/plasteel/dark,
/area/shuttle/trade/sol)
"IG" = (
@@ -786,7 +786,7 @@ Fb
Fb
Fb
Fb
hM
Fb
hi
fZ
Xi
@@ -24,6 +24,12 @@
},
/turf/simulated/floor/plasteel,
/area/shuttle/trade/sol)
"eJ" = (
/obj/effect/turf_decal/tiles/department/security/corner{
dir = 4
},
/turf/simulated/floor/plasteel,
/area/shuttle/trade/sol)
"fg" = (
/obj/machinery/flasher_button{
id = "trader_flash";
@@ -271,11 +277,11 @@
/turf/simulated/floor/plasteel,
/area/shuttle/trade/sol)
"vU" = (
/obj/effect/spawner/random/traders/donksoft,
/obj/structure/closet,
/obj/effect/turf_decal/tiles/department/security/side{
dir = 8
},
/obj/effect/spawner/random/traders/donksoft,
/turf/simulated/floor/plasteel,
/area/shuttle/trade/sol)
"wu" = (
@@ -364,12 +370,12 @@
/turf/simulated/floor/plasteel,
/area/shuttle/trade/sol)
"Cr" = (
/obj/item/stack/tile/disco_light/thirty,
/obj/effect/spawner/random/traders/service,
/obj/structure/closet,
/obj/effect/turf_decal/tiles/department/security/side{
dir = 4
},
/obj/item/stack/tile/disco_light/thirty,
/obj/effect/spawner/random/traders/service,
/turf/simulated/floor/plasteel,
/area/shuttle/trade/sol)
"Dj" = (
@@ -386,7 +392,6 @@
/area/shuttle/trade/sol)
"DW" = (
/obj/structure/table/reinforced,
/obj/item/storage/fancy/cigarettes/cigpack_carp,
/obj/effect/decal/cleanable/dirt,
/obj/item/lighter/random{
pixel_x = 9;
@@ -395,6 +400,7 @@
/obj/effect/turf_decal/tiles/department/security/side{
dir = 6
},
/obj/item/storage/fancy/cigarettes/cigpack_our_brand,
/turf/simulated/floor/plasteel,
/area/shuttle/trade/sol)
"Ek" = (
@@ -598,9 +604,6 @@
},
/turf/simulated/floor/plasteel,
/area/shuttle/trade/sol)
"Wq" = (
/turf/open/floor/plating,
/area/shuttle/trade/sol)
"Xl" = (
/obj/structure/chair/sofa/bench/left,
/obj/machinery/light/spot{
@@ -717,7 +720,7 @@ RE
ah
ah
uM
SC
eJ
nI
Mv
oM
@@ -739,7 +742,7 @@ Tv
xe
Tv
gK
Wq
KF
Mv
oM
"}
+3 -7
View File
@@ -45239,7 +45239,7 @@
/area/station/security/brig)
"dGd" = (
/obj/machinery/door/airlock/external/glass{
id_tag = "trade_dock";
id_tag = "trader_home";
name = "Port Bay 4 Airlock"
},
/obj/effect/mapping_helpers/airlock/locked,
@@ -70176,12 +70176,8 @@
/turf/simulated/floor/plasteel,
/area/station/supply/storage)
"pNm" = (
/obj/docking_port/stationary{
dwidth = 11;
height = 23;
id = "trade_dock";
name = "Port Bay 4 at NSS Cyberiad";
width = 23
/obj/docking_port/stationary/trader{
name = "Docking bay 4 at NSS Cyberiad"
},
/turf/space,
/area/space)
+4 -8
View File
@@ -19982,7 +19982,7 @@
/area/station/public/sleep)
"dgs" = (
/obj/machinery/door/airlock/external/glass{
id_tag = "trade_dock";
id_tag = "trader_home";
name = "Docking Port 4"
},
/obj/effect/mapping_helpers/airlock/locked,
@@ -98885,13 +98885,9 @@
/turf/simulated/floor/plasteel,
/area/station/engineering/gravitygenerator)
"uBa" = (
/obj/docking_port/stationary{
dir = 2;
dwidth = 11;
height = 23;
id = "trade_dock";
name = "port bay 4 at NSS Farragus";
width = 23
/obj/docking_port/stationary/trader{
name = "Docking bay 4 at NSS Farragus";
dir = 2
},
/turf/space,
/area/space)
File diff suppressed because it is too large Load Diff
+4 -8
View File
@@ -7185,7 +7185,7 @@
/area/station/supply/qm)
"bxY" = (
/obj/machinery/door/airlock/external/glass{
id_tag = "trade_dock";
id_tag = "trader_home";
name = "Docking Port 4"
},
/obj/effect/mapping_helpers/airlock/locked,
@@ -118168,13 +118168,9 @@
/turf/simulated/floor/plasteel,
/area/station/medical/storage)
"xNo" = (
/obj/docking_port/stationary{
dir = 2;
dwidth = 11;
height = 23;
id = "trade_dock";
name = "port bay 4 at NSS Diagoras";
width = 23
/obj/docking_port/stationary/trader{
name = "Docking bay 4 at NSS Diagoras";
dir = 2
},
/turf/space,
/area/space)
+4 -8
View File
@@ -9868,7 +9868,7 @@
/area/station/maintenance/turbine)
"biC" = (
/obj/machinery/door/airlock/external/glass{
id_tag = "trade_dock";
id_tag = "trader_home";
name = "Docking Port 4"
},
/obj/effect/mapping_helpers/airlock/locked,
@@ -71037,13 +71037,9 @@
/turf/simulated/floor/plasteel,
/area/station/science/research)
"rHu" = (
/obj/docking_port/stationary{
dir = 8;
dwidth = 11;
height = 23;
id = "trade_dock";
name = "port bay 4 at NSS Cerebron";
width = 23
/obj/docking_port/stationary/trader{
name = "Docking bay 4 at NSS Cerebron";
dir = 8
},
/turf/space,
/area/space)
+2 -3
View File
@@ -490,12 +490,12 @@ SUBSYSTEM_DEF(shuttle)
var/obj/docking_port/mobile/trader/trade_shuttle = getShuttle("trader")
if(trade_shuttle)
var/obj/docking_port/stationary/docked_id = trade_shuttle.get_docked()
if(docked_id?.id != "trader_base")
if(docked_id?.id != "trader_away")
CRASH("Attempted to load a new trade shuttle while the existing one was not at its home base.")
// Dispose of the old shuttle.
trade_shuttle.jumpToNullSpace()
var/obj/docking_port/mobile/trader/dock = getDock("trader_base")
var/obj/docking_port/mobile/trader/dock = getDock("trader_away")
if(!dock)
CRASH("Unable to load trading shuttle, no trading dock found.")
@@ -510,7 +510,6 @@ SUBSYSTEM_DEF(shuttle)
CRASH("New trading shuttle unable to dock at the trading dock: [result]")
trade_shuttle.dock(dock)
trade_shuttle.register()
// TODO indicate to the user that success happened, rather than just
@@ -14,7 +14,12 @@ SUBSYSTEM_DEF(late_mapping)
GLOB.air_alarms = sortAtom(GLOB.air_alarms)
GLOB.apcs = sortAtom(GLOB.apcs)
// Load a Gamma Armoury shuttle at Centcom.
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")
if(SSmapping.gamma_armory_shuttle_id)
SSshuttle.load_initial_gamma_armory_shuttle(SSmapping.gamma_armory_shuttle_id)
else
@@ -8,6 +8,8 @@ SUBSYSTEM_DEF(mapping)
var/datum/map/next_map
/// What map was used last round?
var/datum/map/last_map
/// The trader shuttle to load at Centcom in late_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"
/// List of all areas that can be accessed via IC means
+5 -4
View File
@@ -33,15 +33,16 @@
port_id = "admin"
name = "Base Shuttle Template (Admin)"
/datum/map_template/shuttle/trader
port_id = "trader"
name = "Base Shuttle Template (Trader)"
prefix = "_maps/map_files/shuttles/trader/"
/datum/map_template/shuttle/gamma_armory
port_id = "gamma_armory"
name = "Base Gamma Armory Template"
prefix = "_maps/map_files/shuttles/gamma_armory/"
/datum/map_template/shuttle/trader
port_id = "trader_base"
prefix = "_maps/map_files/shuttles/trader/"
// MARK: Emergency
/datum/map_template/shuttle/emergency/bar
suffix = "bar"
+14 -2
View File
@@ -920,12 +920,24 @@
width = 5
preferred_direction = EAST
/obj/docking_port/stationary/trader
id = "trader_home"
name = "Docking bay 4 at station"
width = 22
dwidth = 11
height = 30
/obj/docking_port/stationary/trader/centcom
id = "trader_away"
name = "Docking bay at trade hub"
dir = 8
/obj/docking_port/mobile/trader
dir = 8
dwidth = 11
height = 30
id = "trader"
name = "sol trade shuttle"
name = "trade shuttle"
width = 22
preferred_direction = EAST
timid = TRUE
@@ -1141,7 +1153,7 @@
/obj/machinery/computer/shuttle/trade/sol
req_access = list(ACCESS_TRADE_SOL)
possible_destinations = "trader_base;trade_dock"
possible_destinations = "trader_away;trader_home"
shuttleId = "trader"
//#undef DOCKING_PORT_HIGHLIGHT