diff --git a/_maps/shuttles/infiltrator_basic.dmm b/_maps/shuttles/infiltrator_basic.dmm
index 61f8ea231df..468a10b865b 100644
--- a/_maps/shuttles/infiltrator_basic.dmm
+++ b/_maps/shuttles/infiltrator_basic.dmm
@@ -19,9 +19,9 @@
/area/shuttle/syndicate/hallway)
"ae" = (
/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium,
-/obj/machinery/door/poddoor/shutters{
- id = "syndieshutters";
- name = "Blast Shutters"
+/obj/machinery/door/poddoor/shutters/syndicate{
+ name = "Blast Shutters";
+ id = "syndieshutters"
},
/turf/open/floor/plating,
/area/shuttle/syndicate/bridge)
@@ -191,10 +191,6 @@
},
/area/shuttle/syndicate/airlock)
"aY" = (
-/obj/machinery/door/poddoor{
- id = "smindicate";
- name = "Outer Blast Door"
- },
/obj/docking_port/mobile/infiltrator,
/obj/structure/fans/tiny,
/obj/machinery/button/door/directional/north{
@@ -205,6 +201,11 @@
/obj/effect/turf_decal/siding/thinplating_new/dark{
dir = 8
},
+/obj/machinery/door/poddoor/shutters/syndicate/indestructible{
+ id = "smindicate";
+ name = "Outer Blast Door";
+ dir = 4
+ },
/turf/open/floor/plating,
/area/shuttle/syndicate/airlock)
"aZ" = (
@@ -601,9 +602,7 @@
/obj/item/storage/box/zipties,
/obj/machinery/computer/security/telescreen/entertainment/directional/west,
/obj/structure/table/reinforced/plastitaniumglass,
-/turf/open/floor/iron/dark/smooth_corner{
- dir = 2
- },
+/turf/open/floor/iron/dark/smooth_corner,
/area/shuttle/syndicate/airlock)
"iE" = (
/obj/structure/closet/syndicate/nuclear,
diff --git a/_maps/templates/lazy_templates/nukie_base.dmm b/_maps/templates/lazy_templates/nukie_base.dmm
index 707e8a251f3..c3c6268f400 100644
--- a/_maps/templates/lazy_templates/nukie_base.dmm
+++ b/_maps/templates/lazy_templates/nukie_base.dmm
@@ -7,14 +7,6 @@
"ae" = (
/turf/open/floor/mineral/plastitanium,
/area/centcom/syndicate_mothership/expansion_bombthreat)
-"ah" = (
-/obj/effect/turf_decal/stripes/end{
- dir = 4
- },
-/obj/machinery/mech_bay_recharge_port,
-/obj/machinery/light/cold/directional/south,
-/turf/open/floor/mineral/titanium,
-/area/centcom/syndicate_mothership/control)
"al" = (
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 8
@@ -22,15 +14,6 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/wood/tile,
/area/centcom/syndicate_mothership/control)
-"as" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark,
-/obj/structure/sign/poster/contraband/cybersun_six_hundred/directional/east,
-/obj/item/kirbyplants/random,
-/turf/open/floor/mineral/titanium,
-/area/centcom/syndicate_mothership/control)
-"au" = (
-/turf/open/floor/circuit/red,
-/area/centcom/syndicate_mothership/control)
"ay" = (
/obj/structure/table/reinforced,
/obj/item/papercutter,
@@ -54,6 +37,13 @@
/obj/effect/turf_decal/tile/bar/opposingcorners,
/turf/open/floor/iron,
/area/centcom/syndicate_mothership/control)
+"aS" = (
+/obj/effect/turf_decal/siding/red/corner,
+/obj/item/folder/red,
+/obj/item/pen/red,
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"aX" = (
/obj/machinery/shower/directional/south,
/turf/open/floor/iron/freezer,
@@ -77,10 +67,6 @@
/obj/structure/mirror/directional/east,
/turf/open/floor/mineral/titanium,
/area/centcom/syndicate_mothership/control)
-"bp" = (
-/obj/machinery/light/cold/directional/north,
-/turf/open/floor/mineral/titanium,
-/area/centcom/syndicate_mothership/control)
"bB" = (
/obj/structure/railing{
dir = 4
@@ -123,6 +109,10 @@
},
/turf/open/floor/mineral/titanium/tiled/yellow,
/area/centcom/syndicate_mothership/expansion_bombthreat)
+"bS" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark,
+/turf/closed/indestructible/syndicate,
+/area/centcom/syndicate_mothership/control)
"bT" = (
/obj/structure/flora/rock/pile/style_random,
/turf/open/misc/asteroid/snow/airless,
@@ -162,6 +152,15 @@
/obj/structure/cable,
/turf/open/floor/iron/smooth,
/area/centcom/syndicate_mothership/control)
+"cC" = (
+/obj/machinery/vending/cola,
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 4
+ },
+/turf/open/floor/iron/white/textured_large{
+ color = "#b51026"
+ },
+/area/centcom/syndicate_mothership/control)
"cF" = (
/obj/effect/baseturf_helper/asteroid/snow,
/turf/closed/indestructible/syndicate,
@@ -219,6 +218,20 @@
/obj/structure/flora/grass/both/style_random,
/turf/open/misc/asteroid/snow/icemoon,
/area/centcom/syndicate_mothership/control)
+"cW" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark,
+/obj/machinery/light/red/dim/directional/north,
+/turf/open/floor/iron/smooth_half,
+/area/centcom/syndicate_mothership/control)
+"cY" = (
+/obj/machinery/light/cold/directional/east,
+/obj/machinery/vending/snack/teal,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/centcom/syndicate_mothership/control)
"cZ" = (
/obj/structure/mop_bucket/janitorialcart{
dir = 4
@@ -233,15 +246,6 @@
/obj/machinery/shower/directional/south,
/turf/open/floor/mineral/plastitanium,
/area/centcom/syndicate_mothership/control)
-"dn" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark{
- dir = 1
- },
-/obj/machinery/camera/autoname/directional/west{
- network = list("nukie")
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/centcom/syndicate_mothership/control)
"dq" = (
/obj/machinery/light/small/directional/north,
/turf/open/floor/iron/smooth_half,
@@ -252,22 +256,16 @@
},
/turf/open/misc/asteroid/snow/airless,
/area/centcom/syndicate_mothership)
-"du" = (
-/obj/structure/chair/stool/directional/north,
-/obj/effect/landmark/start/nukeop_base,
-/obj/structure/sign/poster/contraband/donk_co/directional/south,
-/turf/open/floor/wood/tile,
-/area/centcom/syndicate_mothership/control)
-"dw" = (
-/obj/structure/table/reinforced,
-/obj/machinery/recharger,
-/turf/open/floor/carpet,
-/area/centcom/syndicate_mothership/control)
"dx" = (
/obj/machinery/shower/directional/east,
/obj/effect/turf_decal/stripes/box,
/turf/open/floor/mineral/titanium/tiled,
/area/centcom/syndicate_mothership/expansion_chemicalwarfare)
+"dB" = (
+/obj/machinery/recharger,
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/carpet,
+/area/centcom/syndicate_mothership/control)
"dF" = (
/obj/machinery/light/cold/directional/west,
/obj/structure/table/glass/plasmaglass,
@@ -467,6 +465,12 @@
/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
/turf/open/floor/mineral/titanium,
/area/centcom/syndicate_mothership/control)
+"eM" = (
+/obj/effect/turf_decal/siding/red,
+/obj/machinery/recharger,
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"fa" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/stripes/line{
@@ -478,15 +482,6 @@
},
/turf/open/floor/mineral/plastitanium,
/area/centcom/syndicate_mothership/control)
-"fb" = (
-/obj/structure/chair/sofa/bench/left{
- dir = 4
- },
-/obj/machinery/camera/autoname/directional/north{
- network = list("nukie")
- },
-/turf/open/floor/mineral/titanium,
-/area/centcom/syndicate_mothership/control)
"fk" = (
/turf/open/floor/circuit/red/off,
/area/centcom/syndicate_mothership/expansion_bioterrorism)
@@ -497,6 +492,15 @@
/obj/machinery/portable_atmospherics/canister/plasma,
/turf/open/floor/plating,
/area/centcom/syndicate_mothership/expansion_bombthreat)
+"fr" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 10
+ },
+/obj/structure/table/reinforced/plastitaniumglass,
+/obj/item/folder/white,
+/obj/item/pen/red,
+/turf/open/floor/iron/smooth_half,
+/area/centcom/syndicate_mothership/control)
"fu" = (
/obj/machinery/shower/directional/south,
/obj/machinery/light/floor,
@@ -546,6 +550,14 @@
/obj/machinery/hydroponics/constructable,
/turf/open/floor/mineral/titanium/tiled,
/area/centcom/syndicate_mothership/expansion_bioterrorism)
+"fP" = (
+/obj/effect/turf_decal/siding/red,
+/obj/effect/turf_decal/tile/red/half{
+ dir = 1
+ },
+/obj/machinery/light/red/dim/directional/north,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"fR" = (
/obj/structure/lattice/catwalk,
/obj/machinery/atmospherics/pipe/heat_exchanging/junction,
@@ -554,6 +566,11 @@
"fT" = (
/turf/open/floor/engine/bz,
/area/centcom/syndicate_mothership/expansion_bioterrorism)
+"fU" = (
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/turf_decal/tile/red/half,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"fV" = (
/obj/structure/frame/computer{
dir = 1
@@ -579,36 +596,24 @@
/obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer2,
/turf/closed/indestructible/syndicate,
/area/centcom/syndicate_mothership/expansion_bombthreat)
-"go" = (
-/obj/machinery/light/cold/directional/east,
-/obj/machinery/vending/snack/teal,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
-/turf/open/floor/catwalk_floor/titanium,
-/area/centcom/syndicate_mothership/control)
"gs" = (
/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/mineral/titanium,
/area/centcom/syndicate_mothership/control)
+"gu" = (
+/obj/structure/chair/sofa/bench/right{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/centcom/syndicate_mothership/control)
"gw" = (
/obj/machinery/light/small/directional/west,
/turf/open/floor/mineral/titanium,
/area/centcom/syndicate_mothership/control)
-"gB" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 4
- },
-/obj/machinery/door/airlock/public/glass{
- name = "War Room"
- },
-/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
-/turf/open/floor/iron/textured_large,
-/area/centcom/syndicate_mothership/control)
"gD" = (
/obj/structure/flora/tree/dead/style_random,
/obj/structure/flora/grass/both/style_random,
@@ -789,21 +794,13 @@
dir = 4
},
/area/centcom/syndicate_mothership/expansion_fridgerummage)
-"ij" = (
-/obj/structure/chair/sofa/bench/left{
- dir = 8
+"ih" = (
+/obj/machinery/camera/autoname/directional/west{
+ network = list("nukie")
},
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
-/turf/open/floor/catwalk_floor/titanium,
-/area/centcom/syndicate_mothership/control)
-"il" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark{
+/obj/effect/turf_decal/tile/red/half{
dir = 1
},
-/obj/effect/turf_decal/siding/red/corner,
/turf/open/floor/iron/dark/textured_large,
/area/centcom/syndicate_mothership/control)
"is" = (
@@ -812,6 +809,13 @@
/obj/effect/turf_decal/tile/bar/opposingcorners,
/turf/open/floor/iron,
/area/centcom/syndicate_mothership/control)
+"iz" = (
+/obj/effect/turf_decal/siding/red/corner{
+ dir = 1
+ },
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"iA" = (
/obj/effect/turf_decal/siding/thinplating{
dir = 1
@@ -842,9 +846,11 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/expansion_chemicalwarfare)
-"iV" = (
-/obj/structure/chair/stool/directional/north,
-/turf/open/floor/iron/dark/textured_large,
+"iU" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 6
+ },
+/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/control)
"iX" = (
/obj/machinery/vending/dinnerware,
@@ -856,6 +862,16 @@
/obj/machinery/light/cold/directional/west,
/turf/open/floor/iron,
/area/centcom/syndicate_mothership/control)
+"jd" = (
+/obj/structure/chair/stool/directional/south,
+/obj/structure/sign/map/left{
+ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown).";
+ icon_state = "map-left-MS";
+ pixel_y = 32
+ },
+/obj/effect/landmark/start/nukeop_base,
+/turf/open/floor/wood/tile,
+/area/centcom/syndicate_mothership/control)
"je" = (
/obj/effect/turf_decal/siding/wideplating{
dir = 8
@@ -917,6 +933,15 @@
/obj/structure/noticeboard/directional/north,
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/expansion_bioterrorism)
+"kf" = (
+/obj/effect/turf_decal/siding/red/corner{
+ dir = 8
+ },
+/obj/item/folder/red,
+/obj/item/pen/red,
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"kg" = (
/turf/open/misc/ice/icemoon,
/area/centcom/syndicate_mothership/control)
@@ -1022,12 +1047,6 @@
},
/turf/open/lava/plasma/ice_moon,
/area/centcom/syndicate_mothership/control)
-"lc" = (
-/obj/effect/turf_decal/siding/red/corner{
- dir = 4
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/centcom/syndicate_mothership/control)
"ld" = (
/turf/open/floor/iron/smooth_edge{
dir = 8
@@ -1047,13 +1066,6 @@
/obj/structure/flora/grass/both/style_random,
/turf/open/misc/asteroid/snow/airless,
/area/centcom/syndicate_mothership)
-"lo" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark,
-/obj/machinery/camera/autoname/directional/south{
- network = list("nukie")
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/centcom/syndicate_mothership/control)
"lt" = (
/obj/effect/turf_decal/siding/thinplating_new/dark,
/turf/open/floor/mineral/plastitanium,
@@ -1125,18 +1137,6 @@
/obj/machinery/chem_dispenser/mutagensaltpeter,
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/expansion_bioterrorism)
-"my" = (
-/obj/effect/landmark/start/nukeop_base/leader,
-/obj/effect/turf_decal/tile/bar/opposingcorners,
-/turf/open/floor/iron,
-/area/centcom/syndicate_mothership/control)
-"mz" = (
-/obj/machinery/vending/cola,
-/obj/effect/turf_decal/siding/thinplating_new/dark{
- dir = 4
- },
-/turf/open/floor/mineral/titanium,
-/area/centcom/syndicate_mothership/control)
"mA" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -1152,6 +1152,10 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/expansion_bombthreat)
+"mC" = (
+/obj/effect/turf_decal/tile/red/half,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"mJ" = (
/obj/structure/sign/poster/contraband/free_key,
/turf/closed/indestructible/syndicate,
@@ -1176,19 +1180,6 @@
},
/turf/open/floor/mineral/plastitanium,
/area/centcom/syndicate_mothership/expansion_chemicalwarfare)
-"ng" = (
-/obj/effect/turf_decal/delivery,
-/obj/effect/turf_decal/siding/thinplating_new/dark{
- dir = 1
- },
-/obj/structure/fans/tiny,
-/obj/machinery/door/poddoor/shutters/syndicate{
- id = "FBBZ1";
- name = "Security Shutters";
- dir = 1
- },
-/turf/open/floor/mineral/titanium,
-/area/centcom/syndicate_mothership/control)
"nk" = (
/obj/structure/flora/tree/dead/style_random,
/obj/structure/flora/grass/both/style_random,
@@ -1217,14 +1208,14 @@
/obj/structure/flora/tree/pine/style_random,
/turf/open/misc/asteroid/snow/airless,
/area/centcom/syndicate_mothership)
-"nD" = (
-/obj/effect/turf_decal/stripes/full,
-/turf/open/floor/mineral/titanium/yellow,
-/area/centcom/syndicate_mothership/control)
"nF" = (
/obj/effect/turf_decal/syndicateemblem/top/middle,
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/control)
+"nG" = (
+/obj/machinery/vending/cigarette/syndicate,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"nH" = (
/obj/effect/turf_decal/siding/thinplating_new/dark,
/obj/structure/closet/syndicate/personal,
@@ -1234,6 +1225,10 @@
dir = 8
},
/area/centcom/syndicate_mothership/control)
+"nI" = (
+/obj/machinery/minimap_table,
+/turf/open/floor/circuit/red/no_power,
+/area/centcom/syndicate_mothership/control)
"nL" = (
/obj/structure/chair/office/light{
dir = 1
@@ -1255,6 +1250,12 @@
/obj/effect/turf_decal/tile/bar/opposingcorners,
/turf/open/floor/iron,
/area/centcom/syndicate_mothership/control)
+"nV" = (
+/obj/structure/chair/stool/directional/north,
+/obj/effect/landmark/start/nukeop_base,
+/obj/structure/sign/poster/contraband/donk_co/directional/south,
+/turf/open/floor/wood/tile,
+/area/centcom/syndicate_mothership/control)
"oc" = (
/obj/structure/fence{
dir = 4
@@ -1270,13 +1271,6 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/expansion_bombthreat)
-"oh" = (
-/obj/structure/table/reinforced,
-/obj/item/syndicatedetonator{
- desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."
- },
-/turf/open/floor/carpet,
-/area/centcom/syndicate_mothership/control)
"oi" = (
/obj/effect/turf_decal/siding/thinplating_new/dark{
dir = 10
@@ -1288,16 +1282,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
/turf/open/floor/catwalk_floor/iron_dark,
/area/centcom/syndicate_mothership/control)
-"or" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
+"om" = (
+/obj/structure/chair/sofa/bench/left{
+ dir = 4
},
-/obj/effect/turf_decal/siding/wideplating/dark,
-/obj/machinery/door/airlock/hatch{
- name = "Gangway"
- },
-/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
-/turf/open/floor/iron,
+/obj/structure/sign/poster/contraband/smoke/directional/north,
+/turf/open/floor/iron/dark/textured_large,
/area/centcom/syndicate_mothership/control)
"os" = (
/obj/effect/turf_decal/stripes/box,
@@ -1314,10 +1304,19 @@
},
/turf/open/floor/engine/vacuum,
/area/centcom/syndicate_mothership/expansion_bombthreat)
-"oD" = (
+"oA" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 10
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/centcom/syndicate_mothership/control)
+"oH" = (
/obj/effect/turf_decal/siding/red{
dir = 1
},
+/obj/item/folder/red,
+/obj/item/pen/red,
+/obj/structure/table/reinforced/plastitaniumglass,
/turf/open/floor/iron/dark/textured_large,
/area/centcom/syndicate_mothership/control)
"oK" = (
@@ -1356,6 +1355,14 @@
},
/turf/open/floor/engine,
/area/centcom/syndicate_mothership/expansion_bioterrorism)
+"oU" = (
+/obj/effect/turf_decal/siding/red{
+ dir = 1
+ },
+/obj/machinery/recharger,
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"oW" = (
/obj/effect/turf_decal/siding/thinplating{
dir = 9
@@ -1402,11 +1409,11 @@
/obj/structure/flora/rock/icy/style_random,
/turf/open/misc/asteroid/snow/airless,
/area/centcom/syndicate_mothership)
-"pr" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark{
+"pp" = (
+/obj/effect/turf_decal/siding/red,
+/obj/effect/turf_decal/tile/red/half{
dir = 1
},
-/obj/effect/turf_decal/siding/red,
/turf/open/floor/iron/dark/textured_large,
/area/centcom/syndicate_mothership/control)
"ps" = (
@@ -1438,13 +1445,6 @@
/obj/machinery/vending/tool,
/turf/open/floor/mineral/titanium/yellow,
/area/centcom/syndicate_mothership/control)
-"pS" = (
-/obj/structure/chair/greyscale{
- dir = 4
- },
-/obj/effect/landmark/start/nukeop_base/overwatch,
-/turf/open/floor/mineral/plastitanium,
-/area/centcom/syndicate_mothership)
"pU" = (
/obj/structure/chair/office/light{
dir = 8
@@ -1515,10 +1515,6 @@
},
/turf/open/floor/plastic,
/area/centcom/syndicate_mothership/expansion_fridgerummage)
-"qv" = (
-/obj/item/kirbyplants/random,
-/turf/open/floor/mineral/titanium,
-/area/centcom/syndicate_mothership/control)
"qw" = (
/turf/open/floor/plating,
/area/centcom/syndicate_mothership/control)
@@ -1583,6 +1579,19 @@
},
/turf/open/misc/asteroid/snow/airless,
/area/centcom/syndicate_mothership)
+"qR" = (
+/obj/effect/turf_decal/siding/wideplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wideplating,
+/obj/machinery/door/poddoor/shutters/syndicate/indestructible{
+ name = "Base Lift";
+ dir = 1;
+ id_tag = "nukiespawnlift";
+ id = "nukiespawnlift"
+ },
+/turf/open/floor/iron/dark/textured_half,
+/area/centcom/syndicate_mothership/control)
"qU" = (
/obj/structure/flora/rock/icy/style_random{
pixel_x = -7
@@ -1592,16 +1601,6 @@
"qX" = (
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/expansion_chemicalwarfare)
-"rb" = (
-/obj/effect/turf_decal/siding/red,
-/obj/structure/table/reinforced,
-/obj/machinery/recharger,
-/obj/item/stack/spacecash/c10{
- pixel_x = -19;
- pixel_y = 10
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/centcom/syndicate_mothership/control)
"rf" = (
/turf/open/floor/iron/stairs/old,
/area/centcom/syndicate_mothership/control)
@@ -1623,25 +1622,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
/turf/open/floor/iron/smooth,
/area/centcom/syndicate_mothership/control)
-"ru" = (
-/obj/effect/turf_decal/siding/wideplating{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wideplating,
-/obj/machinery/door/poddoor/shutters/syndicate/indestructible{
- name = "Base Lift";
- dir = 1;
- id_tag = "nukiespawnlift";
- id = "nukiespawnlift"
- },
-/turf/open/floor/iron/dark/textured_half,
-/area/centcom/syndicate_mothership/control)
-"rw" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark{
- dir = 6
- },
-/turf/open/floor/mineral/plastitanium/red,
-/area/centcom/syndicate_mothership/control)
"rA" = (
/obj/effect/turf_decal/siding/purple{
dir = 1
@@ -1681,6 +1661,14 @@
/obj/structure/fence/door/opened,
/turf/open/misc/asteroid/snow/icemoon,
/area/centcom/syndicate_mothership/control)
+"rO" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark/corner{
+ dir = 8
+ },
+/obj/structure/table/reinforced/plastitaniumglass,
+/obj/item/folder/red,
+/turf/open/floor/iron/smooth_half,
+/area/centcom/syndicate_mothership/control)
"rS" = (
/obj/effect/turf_decal/siding/thinplating_new/dark{
dir = 5
@@ -1838,20 +1826,6 @@
},
/turf/open/floor/mineral/titanium/tiled/yellow,
/area/centcom/syndicate_mothership/expansion_bombthreat)
-"tu" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/red/corner{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/centcom/syndicate_mothership/control)
-"tv" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/red/corner,
-/obj/item/folder/red,
-/obj/item/pen/red,
-/turf/open/floor/iron/dark/textured_large,
-/area/centcom/syndicate_mothership/control)
"tz" = (
/obj/effect/turf_decal/siding/thinplating_new/dark{
dir = 8
@@ -1922,6 +1896,13 @@
/obj/structure/statue/uranium/nuke,
/turf/open/misc/asteroid/snow/icemoon,
/area/centcom/syndicate_mothership/control)
+"ux" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/centcom/syndicate_mothership/control)
"uK" = (
/obj/effect/turf_decal/siding/wideplating{
dir = 1
@@ -1954,6 +1935,14 @@
/obj/effect/turf_decal/tile/bar/opposingcorners,
/turf/open/floor/iron,
/area/centcom/syndicate_mothership/control)
+"uY" = (
+/obj/effect/turf_decal/siding/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red/half,
+/obj/machinery/light/red/dim/directional/south,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"ve" = (
/obj/effect/turf_decal/syndicateemblem/top/middle{
dir = 1
@@ -1974,26 +1963,17 @@
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/turf/open/floor/plating,
/area/centcom/syndicate_mothership/expansion_bombthreat)
-"vv" = (
-/obj/structure/table/reinforced,
-/obj/item/paper/fluff/stations/centcom/disk_memo{
- pixel_x = -6;
- pixel_y = -7
+"vn" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
},
-/obj/item/taperecorder{
- pixel_y = 15
- },
-/obj/item/stack/spacecash/c50,
-/turf/open/floor/carpet,
+/turf/open/floor/iron/dark/textured_large,
/area/centcom/syndicate_mothership/control)
-"vx" = (
-/obj/machinery/door/airlock/external/ruin,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 8
+"vB" = (
+/obj/effect/turf_decal/tile/red/anticorner{
+ dir = 1
},
-/obj/structure/fans/tiny,
-/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
-/turf/open/floor/plating,
+/turf/open/floor/iron/dark/textured_large,
/area/centcom/syndicate_mothership/control)
"vI" = (
/obj/structure/railing,
@@ -2038,16 +2018,6 @@
/obj/structure/filingcabinet/medical,
/turf/open/floor/carpet,
/area/centcom/syndicate_mothership/control)
-"wc" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark,
-/turf/open/floor/mineral/titanium,
-/area/centcom/syndicate_mothership/control)
-"we" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark{
- dir = 5
- },
-/turf/open/floor/mineral/plastitanium/red,
-/area/centcom/syndicate_mothership/control)
"wg" = (
/obj/structure/fence/corner{
dir = 6
@@ -2077,6 +2047,16 @@
},
/turf/open/misc/asteroid/snow/airless,
/area/centcom/syndicate_mothership)
+"ww" = (
+/obj/structure/chair/sofa/bench/left{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/centcom/syndicate_mothership/control)
"wC" = (
/obj/structure/chair/sofa/bench/right{
dir = 4
@@ -2084,6 +2064,15 @@
/obj/structure/sign/poster/contraband/rebels_unite/directional/south,
/turf/open/floor/mineral/titanium,
/area/centcom/syndicate_mothership/control)
+"wD" = (
+/obj/structure/chair/sofa/bench/left{
+ dir = 4
+ },
+/obj/machinery/camera/autoname/directional/north{
+ network = list("nukie")
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"wG" = (
/turf/open/floor/iron/smooth_half{
dir = 1
@@ -2112,10 +2101,6 @@
dir = 8
},
/area/centcom/syndicate_mothership/control)
-"wS" = (
-/obj/effect/landmark/nukeop_elevator/exterior,
-/turf/closed/indestructible/syndicate,
-/area/centcom/syndicate_mothership/control)
"wW" = (
/obj/structure/flora/rock/pile/style_random,
/obj/effect/light_emitter{
@@ -2124,6 +2109,10 @@
},
/turf/open/misc/asteroid/snow/airless,
/area/centcom/syndicate_mothership)
+"wX" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark/corner,
+/turf/open/floor/iron/smooth_half,
+/area/centcom/syndicate_mothership/control)
"wY" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/monitored{
desc = "Has a valve and pump attached to it. Slightly more menacing than Nanotrasen's standard.";
@@ -2150,11 +2139,18 @@
/obj/effect/turf_decal/siding/thinplating_new/dark/corner,
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/expansion_bioterrorism)
-"xj" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
-/turf/open/floor/mineral/titanium,
+"xt" = (
+/obj/structure/table/reinforced/plastitaniumglass,
+/obj/effect/turf_decal/delivery,
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 1
+ },
+/obj/structure/fans/tiny,
+/obj/effect/turf_decal/tile/bar/opposingcorners,
+/obj/machinery/door/poddoor/shutters/syndicate{
+ dir = 1
+ },
+/turf/open/floor/iron,
/area/centcom/syndicate_mothership/control)
"xu" = (
/turf/closed/indestructible/syndicate,
@@ -2177,6 +2173,12 @@
"ya" = (
/turf/open/floor/carpet,
/area/centcom/syndicate_mothership/control)
+"yb" = (
+/obj/effect/turf_decal/tile/red/half{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"ye" = (
/obj/effect/turf_decal/weather/snow/corner{
dir = 10
@@ -2260,6 +2262,10 @@
/obj/structure/chair/office,
/turf/open/floor/mineral/titanium/tiled/yellow,
/area/centcom/syndicate_mothership/expansion_chemicalwarfare)
+"zl" = (
+/obj/machinery/light/small/red/directional/west,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"zo" = (
/obj/item/stack/sheet/mineral/sandbags,
/turf/open/floor/catwalk_floor/iron_dark,
@@ -2290,11 +2296,14 @@
},
/turf/open/floor/mineral/plastitanium,
/area/centcom/syndicate_mothership/control)
-"zH" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark,
-/obj/item/kirbyplants/random,
-/turf/open/floor/mineral/titanium,
-/area/centcom/syndicate_mothership/control)
+"zI" = (
+/obj/effect/light_emitter{
+ set_cap = 1;
+ set_luminosity = 4
+ },
+/obj/structure/flora/tree/dead/style_random,
+/turf/closed/indestructible/rock/snow,
+/area/centcom/syndicate_mothership)
"zL" = (
/obj/structure/rack,
/obj/item/restraints/handcuffs/cable/pink,
@@ -2395,6 +2404,10 @@
},
/turf/open/floor/plating,
/area/centcom/syndicate_mothership/expansion_bombthreat)
+"AE" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark,
+/turf/open/floor/iron/smooth_half,
+/area/centcom/syndicate_mothership/control)
"AL" = (
/obj/machinery/light/cold/directional/south,
/turf/open/floor/iron/smooth_half{
@@ -2404,29 +2417,6 @@
"AM" = (
/turf/closed/indestructible/iron,
/area/centcom/syndicate_mothership/control)
-"AN" = (
-/obj/structure/table/reinforced/plastitaniumglass,
-/obj/effect/turf_decal/delivery,
-/obj/effect/turf_decal/siding/thinplating_new/dark{
- dir = 1
- },
-/obj/structure/fans/tiny,
-/obj/effect/turf_decal/tile/bar/opposingcorners,
-/obj/machinery/door/poddoor/shutters/syndicate{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/centcom/syndicate_mothership/control)
-"AO" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/red/corner{
- dir = 4
- },
-/obj/item/stack/spacecash/c1{
- pixel_y = 12
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/centcom/syndicate_mothership/control)
"AR" = (
/obj/effect/baseturf_helper/asteroid/snow,
/turf/closed/indestructible/syndicate,
@@ -2436,16 +2426,6 @@
/obj/structure/flora/grass/both/style_random,
/turf/open/misc/asteroid/snow/icemoon,
/area/centcom/syndicate_mothership/control)
-"AV" = (
-/obj/structure/chair/stool/directional/south,
-/obj/structure/sign/map/left{
- desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown).";
- icon_state = "map-left-MS";
- pixel_y = 32
- },
-/obj/effect/landmark/start/nukeop_base,
-/turf/open/floor/wood/tile,
-/area/centcom/syndicate_mothership/control)
"AW" = (
/obj/machinery/chem_master,
/turf/open/floor/mineral/titanium/tiled/yellow,
@@ -2577,6 +2557,17 @@
},
/turf/open/floor/mineral/titanium,
/area/centcom/syndicate_mothership/control)
+"Cn" = (
+/obj/structure/chair/sofa/bench{
+ dir = 4
+ },
+/obj/machinery/light/cold/directional/west,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/centcom/syndicate_mothership/control)
"Ct" = (
/obj/machinery/door/airlock/hatch{
name = "Closet"
@@ -2631,6 +2622,15 @@
},
/turf/open/floor/mineral/plastitanium,
/area/centcom/syndicate_mothership/control)
+"CW" = (
+/obj/effect/turf_decal/siding/red{
+ dir = 4
+ },
+/obj/item/paper_bin,
+/obj/item/pen,
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"CX" = (
/turf/open/floor/mineral/titanium/tiled/yellow,
/area/centcom/syndicate_mothership)
@@ -2648,6 +2648,16 @@
/obj/structure/sign/poster/contraband/gorlex_recruitment/directional/west,
/turf/open/floor/mineral/titanium,
/area/centcom/syndicate_mothership/control)
+"Dt" = (
+/obj/effect/turf_decal/siding/red/corner{
+ dir = 4
+ },
+/obj/item/stack/spacecash/c1{
+ pixel_y = 12
+ },
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"Du" = (
/obj/docking_port/stationary{
area_type = /area/centcom/syndicate_mothership;
@@ -2685,6 +2695,10 @@
},
/turf/open/floor/mineral/plastitanium,
/area/centcom/syndicate_mothership/control)
+"DQ" = (
+/obj/effect/landmark/nukeop_elevator/exterior,
+/turf/closed/indestructible/syndicate,
+/area/centcom/syndicate_mothership/control)
"DV" = (
/obj/effect/turf_decal/siding/thinplating_new/dark{
dir = 8
@@ -2729,13 +2743,6 @@
"DZ" = (
/turf/closed/indestructible/syndicate,
/area/centcom/syndicate_mothership/control)
-"Ed" = (
-/obj/structure/chair/sofa/bench/left{
- dir = 4
- },
-/obj/structure/sign/poster/contraband/smoke/directional/north,
-/turf/open/floor/mineral/titanium,
-/area/centcom/syndicate_mothership/control)
"Ef" = (
/obj/structure/fence,
/turf/open/misc/asteroid/snow/airless,
@@ -2799,23 +2806,16 @@
/obj/effect/turf_decal/siding/purple,
/turf/open/floor/mineral/plastitanium,
/area/centcom/syndicate_mothership/expansion_chemicalwarfare)
-"Fm" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/red/corner{
- dir = 8
+"Fl" = (
+/obj/structure/chair/stool/directional/west,
+/obj/effect/landmark/start/nukeop_base,
+/turf/open/floor/wood/tile,
+/area/centcom/syndicate_mothership/control)
+"Fo" = (
+/obj/machinery/light/small/red/directional/north{
+ allow_break_on_init = 0
},
-/obj/item/folder/red,
-/obj/item/pen/red,
-/turf/open/floor/iron/dark/textured_large,
-/area/centcom/syndicate_mothership/control)
-"Fp" = (
-/obj/machinery/vending/cigarette/syndicate,
-/turf/open/floor/mineral/titanium,
-/area/centcom/syndicate_mothership/control)
-"Fq" = (
-/obj/structure/table/reinforced,
-/obj/item/flashlight/lamp,
-/turf/open/floor/carpet,
+/turf/open/floor/mineral/plastitanium,
/area/centcom/syndicate_mothership/control)
"FB" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
@@ -2826,6 +2826,25 @@
},
/turf/open/floor/mineral/titanium/tiled/yellow,
/area/centcom/syndicate_mothership/expansion_bombthreat)
+"FC" = (
+/obj/item/paper/fluff/stations/centcom/disk_memo{
+ pixel_x = -6;
+ pixel_y = -7
+ },
+/obj/item/taperecorder{
+ pixel_y = 15
+ },
+/obj/item/stack/spacecash/c50,
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/carpet,
+/area/centcom/syndicate_mothership/control)
+"FE" = (
+/obj/item/syndicatedetonator{
+ desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."
+ },
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/carpet,
+/area/centcom/syndicate_mothership/control)
"FG" = (
/obj/effect/turf_decal/stripes/corner,
/obj/effect/turf_decal/stripes/corner{
@@ -2847,6 +2866,12 @@
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
/turf/closed/indestructible/syndicate,
/area/centcom/syndicate_mothership/expansion_bioterrorism)
+"FQ" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"FR" = (
/obj/machinery/light/floor,
/turf/open/floor/iron/dark/textured_half{
@@ -2991,17 +3016,6 @@
dir = 8
},
/area/centcom/syndicate_mothership/control)
-"GI" = (
-/obj/structure/chair/sofa/bench{
- dir = 4
- },
-/obj/machinery/light/cold/directional/west,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
-/turf/open/floor/catwalk_floor/titanium,
-/area/centcom/syndicate_mothership/control)
"GL" = (
/obj/structure/lattice/catwalk,
/obj/effect/turf_decal/stripes/line{
@@ -3057,10 +3071,6 @@
},
/turf/open/misc/ice/icemoon,
/area/centcom/syndicate_mothership/control)
-"Hs" = (
-/obj/machinery/shuttle_manipulator,
-/turf/open/floor/circuit/red,
-/area/centcom/syndicate_mothership/control)
"Ht" = (
/obj/effect/turf_decal/siding/thinplating_new/dark{
dir = 8
@@ -3114,12 +3124,26 @@
/obj/item/stack/sheet/mineral/plasma,
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/expansion_bioterrorism)
+"HE" = (
+/obj/effect/landmark/start/nukeop_base/leader,
+/obj/effect/turf_decal/tile/bar/opposingcorners,
+/turf/open/floor/iron,
+/area/centcom/syndicate_mothership/control)
"HJ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
/obj/effect/turf_decal/tile/bar/opposingcorners,
/turf/open/floor/iron,
/area/centcom/syndicate_mothership/control)
+"HN" = (
+/obj/machinery/vending/coffee,
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 4
+ },
+/turf/open/floor/iron/white/textured_large{
+ color = "#b51026"
+ },
+/area/centcom/syndicate_mothership/control)
"HW" = (
/obj/effect/light_emitter{
set_cap = 1;
@@ -3140,6 +3164,17 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
/turf/open/floor/catwalk_floor/iron_dark,
/area/centcom/syndicate_mothership/control)
+"Ic" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/structure/fans/tiny,
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/obj/machinery/door/airlock/hatch{
+ name = "Security Checkpoint"
+ },
+/turf/open/floor/plating,
+/area/centcom/syndicate_mothership/control)
"Id" = (
/obj/structure/closet/crate/freezer{
name = "meat freezer"
@@ -3204,6 +3239,11 @@
},
/turf/open/misc/asteroid/snow/icemoon,
/area/centcom/syndicate_mothership/control)
+"IA" = (
+/obj/item/flashlight/lamp,
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/carpet,
+/area/centcom/syndicate_mothership/control)
"IC" = (
/obj/structure/chair/stool/bar/directional/west,
/obj/effect/turf_decal/siding/thinplating/dark{
@@ -3212,41 +3252,12 @@
/obj/effect/turf_decal/tile/bar/opposingcorners,
/turf/open/floor/iron,
/area/centcom/syndicate_mothership/control)
-"IL" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/red,
-/obj/item/toy/nuke{
- pixel_x = -5;
- pixel_y = 1
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/centcom/syndicate_mothership/control)
-"IM" = (
-/obj/structure/chair/sofa/bench/right{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating_new/dark,
-/turf/open/floor/mineral/titanium,
-/area/centcom/syndicate_mothership/control)
"IQ" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
/turf/open/floor/mineral/titanium,
/area/centcom/syndicate_mothership/control)
-"IV" = (
-/obj/structure/chair/stool/directional/south,
-/obj/effect/turf_decal/siding/thinplating_new/dark{
- dir = 1
- },
-/turf/open/floor/iron/dark/textured_large,
-/area/centcom/syndicate_mothership/control)
-"Ja" = (
-/obj/machinery/light/small/red/directional/north{
- allow_break_on_init = 0
- },
-/turf/open/floor/mineral/plastitanium,
-/area/centcom/syndicate_mothership/control)
"Jc" = (
/obj/structure/table/wood,
/obj/machinery/chem_dispenser/drinks/beer{
@@ -3282,6 +3293,10 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/expansion_bioterrorism)
+"Jr" = (
+/obj/effect/turf_decal/stripes/full,
+/turf/open/floor/mineral/titanium,
+/area/centcom/syndicate_mothership/control)
"Js" = (
/obj/structure/table/wood,
/obj/item/rag,
@@ -3298,6 +3313,19 @@
},
/turf/open/floor/mineral/titanium/tiled/yellow,
/area/centcom/syndicate_mothership/expansion_bombthreat)
+"JE" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 9
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/centcom/syndicate_mothership/control)
+"JG" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red/full,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"JJ" = (
/obj/effect/turf_decal/siding/thinplating_new/dark{
dir = 5
@@ -3341,6 +3369,13 @@
/obj/effect/turf_decal/syndicateemblem/top/left,
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/control)
+"JY" = (
+/obj/effect/turf_decal/siding/red/corner,
+/obj/effect/turf_decal/tile/red/half{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"Ka" = (
/obj/structure/chair/sofa/bench/right{
dir = 4
@@ -3361,6 +3396,12 @@
/obj/structure/flora/grass/both/style_random,
/turf/open/misc/asteroid/snow/icemoon,
/area/centcom/syndicate_mothership/control)
+"KB" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
+/turf/open/floor/iron/smooth_large,
+/area/centcom/syndicate_mothership/control)
"KD" = (
/obj/effect/turf_decal/trimline/red,
/obj/effect/turf_decal/trimline/red,
@@ -3410,6 +3451,14 @@
},
/turf/open/lava/plasma/ice_moon,
/area/centcom/syndicate_mothership/control)
+"KT" = (
+/obj/effect/turf_decal/stripes/end{
+ dir = 4
+ },
+/obj/machinery/mech_bay_recharge_port,
+/obj/machinery/light/red/dim/directional/south,
+/turf/open/floor/mineral/titanium,
+/area/centcom/syndicate_mothership/control)
"KU" = (
/obj/effect/light_emitter{
set_cap = 1;
@@ -3426,18 +3475,24 @@
},
/turf/open/floor/iron/smooth_half,
/area/centcom/syndicate_mothership/control)
+"KX" = (
+/obj/effect/turf_decal/siding/red{
+ dir = 8
+ },
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"Ld" = (
/obj/effect/turf_decal/siding/thinplating_new/dark,
/obj/structure/closet/syndicate/personal,
/obj/effect/turf_decal/tile/red/full,
/turf/open/floor/iron/dark/textured_half,
/area/centcom/syndicate_mothership/control)
-"Lk" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/red{
- dir = 8
+"Le" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
},
-/obj/item/storage/fancy/donut_box,
+/obj/effect/turf_decal/tile/red/full,
/turf/open/floor/iron/dark/textured_large,
/area/centcom/syndicate_mothership/control)
"Lu" = (
@@ -3473,15 +3528,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
/turf/open/floor/stone,
/area/centcom/syndicate_mothership/control)
-"LB" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/red{
- dir = 1
- },
-/obj/item/folder/red,
-/obj/item/pen/red,
-/turf/open/floor/iron/dark/textured_large,
-/area/centcom/syndicate_mothership/control)
"LH" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/atmospherics/components/binary/pump/on,
@@ -3530,13 +3576,6 @@
},
/turf/open/floor/plating/snowed/icemoon,
/area/centcom/syndicate_mothership/control)
-"Me" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
-/turf/open/floor/catwalk_floor/titanium,
-/area/centcom/syndicate_mothership/control)
"Mh" = (
/obj/structure/sign/poster/contraband/lamarr/directional/south,
/turf/open/floor/iron/smooth_half{
@@ -3608,6 +3647,12 @@
/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
/turf/open/floor/catwalk_floor/iron,
/area/centcom/syndicate_mothership/control)
+"MF" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"MH" = (
/obj/machinery/hydroponics/constructable,
/obj/machinery/light/cold/directional/west,
@@ -3632,14 +3677,6 @@
dir = 8
},
/area/centcom/syndicate_mothership/control)
-"MU" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 8
- },
-/obj/structure/chair/stool/directional/east,
-/obj/effect/landmark/start/nukeop_base,
-/turf/open/floor/wood/tile,
-/area/centcom/syndicate_mothership/control)
"Nb" = (
/obj/structure/chair/sofa/right/brown{
dir = 4
@@ -3653,6 +3690,13 @@
name = "Tac-Com"
},
/area/centcom/syndicate_mothership/control)
+"Ne" = (
+/obj/effect/turf_decal/siding/red/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red/half,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"Ni" = (
/obj/machinery/light/small/directional/north,
/obj/machinery/computer/slot_machine/syndicate,
@@ -3734,6 +3778,13 @@
/obj/item/melee/powerfist,
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/expansion_bombthreat)
+"Og" = (
+/obj/structure/chair/sofa/bench/right{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating_new/dark,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"Oi" = (
/obj/structure/cable,
/turf/closed/indestructible/syndicate,
@@ -3858,6 +3909,24 @@
"Ph" = (
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/expansion_bioterrorism)
+"Pp" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
+/turf/open/floor/iron/smooth_large,
+/area/centcom/syndicate_mothership/control)
+"Ps" = (
+/obj/effect/turf_decal/delivery,
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 1
+ },
+/obj/structure/fans/tiny,
+/obj/machinery/door/poddoor/shutters/syndicate{
+ id = "FBBZ1";
+ name = "Security Shutters";
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium,
+/area/centcom/syndicate_mothership/control)
"Pu" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -4057,6 +4126,13 @@
/obj/structure/cable,
/turf/open/floor/catwalk_floor/iron,
/area/centcom/syndicate_mothership/control)
+"Re" = (
+/obj/effect/turf_decal/siding/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red/half,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"Rn" = (
/obj/item/circuitboard/computer/syndicate_shuttle{
pixel_x = 2;
@@ -4132,6 +4208,14 @@
/obj/effect/baseturf_helper/asteroid/snow,
/turf/closed/indestructible/syndicate,
/area/centcom/syndicate_mothership/expansion_bioterrorism)
+"RV" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/obj/structure/chair/stool/directional/east,
+/obj/effect/landmark/start/nukeop_base,
+/turf/open/floor/wood/tile,
+/area/centcom/syndicate_mothership/control)
"Sc" = (
/obj/structure/railing,
/turf/open/floor/iron/stairs/old{
@@ -4139,18 +4223,6 @@
initial_gas_mix = "TEMP=2.7"
},
/area/centcom/syndicate_mothership)
-"Se" = (
-/obj/machinery/door/airlock/external/ruin,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 4
- },
-/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
-/turf/open/floor/plating,
-/area/centcom/syndicate_mothership/control)
"Sg" = (
/obj/machinery/camera/autoname/directional/east{
network = list("nukie")
@@ -4210,6 +4282,11 @@
/obj/item/mop,
/turf/open/floor/catwalk_floor/iron_smooth,
/area/centcom/syndicate_mothership/control)
+"Sz" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark,
+/obj/structure/sign/poster/contraband/cybersun_six_hundred/directional/east,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"SD" = (
/obj/effect/turf_decal/siding/thinplating_new/dark{
dir = 8
@@ -4217,6 +4294,12 @@
/obj/machinery/portable_atmospherics/pump,
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/expansion_bombthreat)
+"SH" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
+/turf/closed/indestructible/opsglass,
+/area/centcom/syndicate_mothership/control)
"SJ" = (
/obj/machinery/atmospherics/components/trinary/filter{
dir = 8
@@ -4242,6 +4325,12 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
/turf/closed/indestructible/opsglass,
/area/centcom/syndicate_mothership/control)
+"SN" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 6
+ },
+/turf/open/floor/iron/smooth_half,
+/area/centcom/syndicate_mothership/control)
"SR" = (
/obj/structure/railing,
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
@@ -4352,12 +4441,6 @@
},
/turf/open/floor/wood/tile,
/area/centcom/syndicate_mothership/control)
-"TH" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark{
- dir = 10
- },
-/turf/open/floor/mineral/plastitanium/red,
-/area/centcom/syndicate_mothership/control)
"TK" = (
/obj/structure/barricade/sandbags,
/obj/effect/light_emitter{
@@ -4405,6 +4488,12 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/control)
+"Uc" = (
+/obj/effect/turf_decal/tile/red/anticorner{
+ dir = 4
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"Um" = (
/obj/machinery/button/door/directional/south{
id = "syn_ordmix_vent";
@@ -4457,10 +4546,28 @@
},
/turf/open/floor/plating/icemoon,
/area/centcom/syndicate_mothership/control)
+"UC" = (
+/obj/structure/chair/greyscale{
+ dir = 4
+ },
+/obj/effect/landmark/start/nukeop_base/overwatch,
+/turf/open/floor/mineral/plastitanium,
+/area/centcom/syndicate_mothership)
"UE" = (
/obj/machinery/light/cold/directional/east,
/turf/open/floor/plating,
/area/centcom/syndicate_mothership/control)
+"UH" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wideplating/dark,
+/obj/machinery/door/airlock/hatch{
+ name = "Gangway"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/turf/open/floor/mineral/plastitanium,
+/area/centcom/syndicate_mothership/control)
"Va" = (
/obj/effect/turf_decal/syndicateemblem/middle/left{
dir = 8
@@ -4481,6 +4588,13 @@
/obj/structure/flora/rock/pile/style_random,
/turf/open/misc/asteroid/snow/icemoon,
/area/centcom/syndicate_mothership/control)
+"Vq" = (
+/obj/structure/chair/sofa/bench/right{
+ dir = 8
+ },
+/obj/structure/sign/poster/contraband/syndicate_pistol/directional/north,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"Vr" = (
/obj/effect/turf_decal/siding/thinplating_new/dark{
dir = 5
@@ -4545,12 +4659,15 @@
/obj/item/stack/sheet/mineral/silver/fifty,
/turf/open/floor/mineral/titanium/tiled/yellow,
/area/centcom/syndicate_mothership/expansion_chemicalwarfare)
-"Wc" = (
-/obj/machinery/vending/coffee,
+"Wb" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
/obj/effect/turf_decal/siding/thinplating_new/dark{
dir = 4
},
-/turf/open/floor/mineral/titanium,
+/turf/open/floor/catwalk_floor/iron_dark,
/area/centcom/syndicate_mothership/control)
"Wo" = (
/obj/effect/light_emitter{
@@ -4562,16 +4679,6 @@
"Wp" = (
/turf/open/floor/iron/smooth,
/area/centcom/syndicate_mothership/control)
-"Wr" = (
-/obj/structure/chair/sofa/bench/right{
- dir = 4
- },
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5,
-/turf/open/floor/catwalk_floor/titanium,
-/area/centcom/syndicate_mothership/control)
"Ws" = (
/obj/structure/flora/tree/pine/style_random,
/obj/effect/light_emitter{
@@ -4580,9 +4687,16 @@
},
/turf/open/misc/asteroid/snow/airless,
/area/centcom/syndicate_mothership)
-"Wu" = (
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/iron/dark/textured_large,
+"Wt" = (
+/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
+/obj/machinery/door/airlock/hatch{
+ name = "Security Checkpoint"
+ },
+/turf/open/floor/plating,
/area/centcom/syndicate_mothership/control)
"Wz" = (
/obj/effect/turf_decal/siding/thinplating_new/dark{
@@ -4609,25 +4723,18 @@
},
/turf/open/misc/asteroid/snow/icemoon,
/area/centcom/syndicate_mothership/control)
-"WG" = (
-/obj/structure/chair/sofa/bench/right{
- dir = 8
+"WD" = (
+/obj/effect/turf_decal/siding/thinplating_new/dark{
+ dir = 5
},
-/obj/structure/sign/poster/contraband/syndicate_pistol/directional/north,
-/turf/open/floor/mineral/titanium,
+/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership/control)
"WI" = (
/obj/structure/sign/poster/contraband/revolver/directional/south,
/turf/open/floor/mineral/titanium,
/area/centcom/syndicate_mothership/control)
-"WR" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/red{
- dir = 4
- },
-/obj/item/paper_bin,
-/obj/item/pen,
-/turf/open/floor/iron/dark/textured_large,
+"WQ" = (
+/turf/open/floor/circuit/red/no_power,
/area/centcom/syndicate_mothership/control)
"WS" = (
/obj/structure/sign/poster/contraband/energy_swords/directional/north,
@@ -4652,22 +4759,9 @@
/obj/structure/cable,
/turf/open/floor/catwalk_floor/iron_dark,
/area/centcom/syndicate_mothership/control)
-"Xj" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/red{
- dir = 1
- },
-/obj/machinery/recharger,
-/turf/open/floor/iron/dark/textured_large,
-/area/centcom/syndicate_mothership/control)
"Xk" = (
/turf/open/floor/mineral/plastitanium/red,
/area/centcom/syndicate_mothership)
-"Xu" = (
-/obj/structure/chair/stool/directional/west,
-/obj/effect/landmark/start/nukeop_base,
-/turf/open/floor/wood/tile,
-/area/centcom/syndicate_mothership/control)
"Xv" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/effect/turf_decal/siding/thinplating_new/dark{
@@ -4748,12 +4842,6 @@
dir = 1
},
/area/centcom/syndicate_mothership/control)
-"XZ" = (
-/obj/effect/turf_decal/siding/thinplating_new/dark{
- dir = 9
- },
-/turf/open/floor/mineral/plastitanium/red,
-/area/centcom/syndicate_mothership/control)
"Yd" = (
/obj/machinery/camera/autoname/directional/south{
network = list("nukie")
@@ -4795,6 +4883,15 @@
/obj/structure/cable,
/turf/open/floor/catwalk_floor/iron_smooth,
/area/centcom/syndicate_mothership/control)
+"YM" = (
+/obj/effect/turf_decal/siding/red,
+/obj/item/toy/nuke{
+ pixel_x = -5;
+ pixel_y = 1
+ },
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/iron/dark/textured_large,
+/area/centcom/syndicate_mothership/control)
"YO" = (
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 8
@@ -6512,7 +6609,7 @@ HW
wW
Kq
sv
-pS
+UC
fV
Kq
CX
@@ -6939,7 +7036,7 @@ Pc
ZZ
DZ
gE
-my
+HE
uX
Jc
ek
@@ -7552,7 +7649,7 @@ bF
DZ
al
Gd
-MU
+RV
YO
DZ
tL
@@ -7652,7 +7749,7 @@ VK
BD
sO
DZ
-AV
+jd
mK
er
TS
@@ -7757,7 +7854,7 @@ DZ
OS
TG
jT
-du
+nV
DZ
Dy
Wp
@@ -7857,7 +7954,7 @@ VK
GE
DZ
Ni
-Xu
+Fl
mL
BH
DZ
@@ -9382,16 +9479,16 @@ bW
qw
nw
MP
-ng
+Ps
DZ
VK
VK
VK
VK
DZ
-Ed
-GI
-IM
+om
+Cn
+Og
wG
wG
Te
@@ -9484,16 +9581,16 @@ bW
qw
qw
qw
-ng
+Ps
hb
TC
FR
TC
TC
hb
-ZZ
-Me
-wc
+qN
+ux
+ov
wG
AL
DZ
@@ -9586,20 +9683,20 @@ bW
qw
qw
qw
-ng
+Ps
qJ
TC
TC
FR
TC
qJ
-ZZ
-Me
-wc
+qN
+ux
+ov
wG
wG
DZ
-Ja
+Fo
Ov
DZ
DZ
@@ -9695,14 +9792,14 @@ Xv
KE
VK
DZ
-WG
-ij
-zH
+Vq
+ww
+OF
wG
wG
-ru
-XZ
-TH
+qR
+JE
+oA
Ov
DZ
Ox
@@ -9797,14 +9894,14 @@ so
uX
zL
DZ
-fb
-Wr
-zH
+wD
+gu
+OF
wG
wG
-ru
-we
-rw
+qR
+WD
+iU
Ov
DZ
Ox
@@ -9892,20 +9989,20 @@ bW
qw
qw
qw
-AN
+xt
uX
uX
uX
uX
uX
RA
-ZZ
-Me
-wc
+qN
+ux
+ov
wG
lE
DZ
-Ja
+Fo
Ov
DZ
DZ
@@ -9994,19 +10091,19 @@ bW
qw
qw
qw
-AN
+xt
LS
Mn
uX
ZH
LN
DZ
-Fp
-go
-as
+nG
+cY
+Sz
wG
wG
-wS
+DQ
DZ
DZ
DZ
@@ -10106,12 +10203,11 @@ DZ
DZ
qp
DZ
-gB
-gB
-DZ
-mz
-Wc
+NY
+NY
DZ
+cC
+HN
DZ
DZ
DZ
@@ -10119,6 +10215,7 @@ DZ
DZ
VK
VK
+VK
Ov
DZ
XC
@@ -10208,20 +10305,20 @@ DZ
pK
pg
VK
-ZZ
-ZZ
-dn
+wX
+SN
+ih
qN
qN
-qN
-Wu
-ov
-or
+zl
+fU
+UH
zE
sl
Ov
Ov
Ov
+Ov
DZ
Ox
Ox
@@ -10310,14 +10407,14 @@ DZ
CM
FN
VK
-ZZ
-ZZ
-IV
-tv
-WR
-AO
-iV
-ov
+AE
+vB
+vn
+Le
+Le
+Le
+mC
+DZ
DZ
DZ
DZ
@@ -10412,14 +10509,13 @@ DZ
DZ
eg
tL
-bp
-ZZ
-IV
-IL
-Hs
-Xj
-iV
-ov
+cW
+yb
+qN
+aS
+CW
+Dt
+mC
Cg
DZ
Ox
@@ -10428,6 +10524,7 @@ Ox
Ox
Ox
Ox
+Ox
sq
Ox
sU
@@ -10511,20 +10608,20 @@ Ld
ol
zo
VK
-ZZ
-ZZ
-Me
-ZZ
-ZZ
-IV
-rb
-au
-LB
-iV
-ov
-ah
+qN
+qN
+ux
+AE
+yb
+qN
+YM
+nI
+oU
+mC
+KT
DZ
Ox
+Ox
sq
sq
Ox
@@ -10613,18 +10710,17 @@ Tc
Ib
Ib
en
-xj
-xj
-Me
-ZZ
-ZZ
-IV
-Fm
-Lk
-tu
-iV
-ov
-nD
+Pp
+Pp
+KB
+AE
+yb
+qN
+eM
+WQ
+oH
+mC
+Jr
DZ
Ox
Ox
@@ -10633,6 +10729,7 @@ Ox
Ox
Ox
Ox
+Ox
sU
sU
sU
@@ -10715,21 +10812,21 @@ Ld
XL
RQ
VK
-ZZ
-ZZ
-Me
-ZZ
-ZZ
-il
-dV
-dV
-dV
-lc
-lo
+MF
+MF
+Wb
+AE
+yb
+qN
+kf
+KX
+iz
+mC
ec
DZ
DZ
Ox
+Ox
sU
sU
sU
@@ -10817,21 +10914,21 @@ DZ
DZ
DZ
DZ
-DZ
VK
-Se
-VK
-ZZ
-pr
-oh
-vv
-Fq
-oD
-ov
+Wt
+SH
+cW
+Uc
+FQ
+JG
+JG
+JG
+mC
Nd
gf
DZ
Ox
+Ox
sU
sU
sU
@@ -10919,21 +11016,21 @@ DZ
tJ
HW
HW
-Zt
VK
qw
VK
-qv
-pr
-ya
-PF
-ya
-oD
-OF
+rO
+fr
+JY
+dV
+dV
+dV
+Ne
DZ
DZ
DZ
Ox
+Ox
sU
sU
sU
@@ -11021,21 +11118,21 @@ QM
HW
HW
lj
-HW
VK
qw
VK
DZ
-VK
-wb
-wq
-dw
-VK
-DZ
+bS
+fP
+FE
+FC
+IA
+uY
DZ
Ox
Ox
Ox
+Ox
sU
sU
sU
@@ -11123,20 +11220,20 @@ HW
HW
HW
HW
-tJ
VK
Hv
VK
-Ho
-VK
-VK
-VK
-VK
-VK
-Zt
-KU
+uT
+bS
+pp
+ya
+PF
+ya
+Re
+DZ
Ye
uT
+Ox
Ye
sU
sU
@@ -11225,20 +11322,20 @@ nz
Zt
HW
HW
-HW
VK
qw
VK
-HW
-QM
-HW
-Zt
-HW
-HW
-lj
-KU
+uT
+DZ
+VK
+wb
+wq
+dB
+VK
+DZ
Ye
uT
+Ox
Ye
sU
sU
@@ -11327,18 +11424,18 @@ HW
HW
HW
QM
-Zt
VK
qw
VK
+uT
Zt
+VK
+VK
+VK
+VK
+VK
HW
-HW
-HW
-tJ
-HW
-HW
-KU
+zI
KU
Ye
Ye
@@ -11429,10 +11526,10 @@ uT
uT
uT
uT
-HW
VK
-vx
+Ic
VK
+uT
HW
tJ
HW
@@ -11532,11 +11629,11 @@ uT
uT
uT
uT
-uT
Du
uT
uT
uT
+uT
HW
QM
HW
diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm
index bed1a6b24ac..1b71b003872 100644
--- a/code/__DEFINES/hud.dm
+++ b/code/__DEFINES/hud.dm
@@ -169,6 +169,19 @@
#define HUD_XENOBIO_CONSOLE "xenobio_console"
+#define HUD_TAC_MINIMAP "tac_minimap"
+#define HUD_TAC_MINIMAP_DIMMER "tac_minimap_dimmer"
+#define HUD_TAC_MINIMAP_Z_INDICATOR "tac_minimap_z_indicator"
+#define HUD_TAC_MINIMAP_Z_INDICATOR_UP "tac_minimap_z_up"
+#define HUD_TAC_MINIMAP_Z_INDICATOR_DOWN "tac_minimap_z_down"
+#define HUD_TAC_MINIMAP_TOOL_RED "tac_minimap_tool_red"
+#define HUD_TAC_MINIMAP_TOOL_YELLOW "tac_minimap_tool_yellow"
+#define HUD_TAC_MINIMAP_TOOL_PURPLE "tac_minimap_tool_purple"
+#define HUD_TAC_MINIMAP_TOOL_BLUE "tac_minimap_tool_blue"
+#define HUD_TAC_MINIMAP_TOOL_ERASE "tac_minimap_tool_erase"
+#define HUD_TAC_MINIMAP_TOOL_LABEL "tac_minimap_tool_label"
+#define HUD_TAC_MINIMAP_TOOL_CLEAR "tac_minimap_tool_clear"
+
/*
These defines specificy screen locations. For more information, see the byond documentation on the screen_loc var.
diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm
index 6bc5b96e0e0..4d7a26858a2 100644
--- a/code/__DEFINES/layers.dm
+++ b/code/__DEFINES/layers.dm
@@ -313,6 +313,10 @@
#define CURSE_LAYER 6
#define ECHO_LAYER 7
#define PARRY_LAYER 8
+#define MINIMAP_IMAGE_LAYER 9
+#define MINIMAP_BLIPS_LAYER 10
+#define MINIMAP_LOCATOR_LAYER 11
+#define MINIMAP_LABELS_LAYER 12
#define FOV_EFFECT_LAYER 100
diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm
index 7feed196c75..449a0f7f5f4 100644
--- a/code/__DEFINES/logging.dm
+++ b/code/__DEFINES/logging.dm
@@ -144,6 +144,7 @@
#define LOG_CATEGORY_GAME_ACCESS "game-access"
#define LOG_CATEGORY_GAME_BLOOD_WORM "game-blood-worm"
#define LOG_CATEGORY_GAME_EMOTE "game-emote"
+#define LOG_CATEGORY_GAME_MINIMAP_DRAWING "game-minimap-drawing"
#define LOG_CATEGORY_GAME_INTERNET_REQUEST "game-internet-request"
#define LOG_CATEGORY_GAME_OOC "game-ooc"
#define LOG_CATEGORY_GAME_PRAYER "game-prayer"
diff --git a/code/__DEFINES/minimap.dm b/code/__DEFINES/minimap.dm
new file mode 100644
index 00000000000..05629ef5d0b
--- /dev/null
+++ b/code/__DEFINES/minimap.dm
@@ -0,0 +1,62 @@
+///Converts the overworld x and y to minimap x and y values
+#define MINIMAP_PIXEL_FROM_WORLD(val) (val*2-3)
+
+//actual size of a users screen in pixels
+#define SCREEN_PIXEL_SIZE 480
+
+//Drawing tool colors
+#define TACMAP_DRAWING_RED "#ff0000"
+#define TACMAP_DRAWING_YELLOW "#FFFF00"
+#define TACMAP_DRAWING_PURPLE "#A020F0"
+#define TACMAP_DRAWING_BLUE "#0000FF"
+
+
+//Turf colours
+#define TACMAP_BLACK "#111111d0"
+#define TACMAP_SOLID "#ebe5e5ee"
+#define TACMAP_DOOR "#451e5eee"
+#define TACMAP_WINDOW "#525252d0"
+#define TACMAP_FENCE "#8c2294ee"
+#define TACMAP_LAVA "#db4206d0"
+#define TACMAP_DIRT "#9c906dd0"
+#define TACMAP_SHALE "#706955d0"
+#define TACMAP_SNOW "#c4e3e9d0"
+#define TACMAP_MARS_DIRT "#aa5f44d0"
+#define TACMAP_ICE "#93cae0d0"
+#define TACMAP_WATER "#94b0d59c" //lower opacity as its really bright
+
+//Area colours
+//Departments
+#define TACMAP_AREA_COMMAND COLOR_COMMAND_BLUE
+#define TACMAP_AREA_CARGO COLOR_CARGO_BROWN
+#define TACMAP_AREA_ENGINEERING COLOR_ENGINEERING_ORANGE
+#define TACMAP_AREA_MEDICAL COLOR_MEDICAL_BLUE
+#define TACMAP_AREA_SCIENCE COLOR_SCIENCE_PINK
+#define TACMAP_AREA_SECURITY COLOR_SECURITY_RED
+#define TACMAP_AREA_SERVICE COLOR_SERVICE_LIME
+//General
+#define TACMAP_AREA_MAINTENANCE COLOR_WEBSAFE_DARK_GRAY
+
+/// How much we multiply the drawn image by, and as a result the pixel coordinates
+#define MINIMAP_PIXEL_MULTIPLIER 2
+/// Converts an icon pixel coordinate (from ICON_X/ICON_Y modifiers) to a world tile coordinate.
+#define MINIMAP_ICON_TO_WORLD(icon_coord, minimap_min) ((minimap_min) + floor(((icon_coord) - 1) / MINIMAP_PIXEL_MULTIPLIER))
+/// Converts a world tile coordinate to a pixel_w/pixel_z offset for placing a blip on the minimap display.
+#define MINIMAP_WORLD_TO_PIXEL(world_coord, minimap_min, half_size) (((world_coord) - (minimap_min)) * MINIMAP_PIXEL_MULTIPLIER + 1 - (half_size))
+#define COMSIG_MINIMAP_ADD(blip_tag) "minimap_add_" + blip_tag
+#define COMSIG_MINIMAP_REMOVE(blip_tag) "minimap_remove_" + blip_tag
+// sends a index of how much to change by
+#define COMSIG_MINIMAP_CHANGE_Z_LEVEL "minimap_z_change"
+#define COMSIG_MINIMAP_ACTION_TRIGGER "minimap_action_trigger"
+ #define COMSIG_MINIMAP_ACTION_TRIGGER_CANCEL (1<<0)
+
+
+#define MINIMAP_BOMB_BLIP "nuke"
+#define MINIMAP_NUKEDISK_BLIP "nuke_disk"
+#define MINIMAP_NUKEOP_BLIP "nukeop"
+#define MINIMAP_NUKEOP_BORG_BLIP "nukeop_borg"
+#define MINIMAP_SYNDICATE_MECH_BLIP "syndicate_mech"
+#define MINIMAP_SYNDIE_TURRET_BLIP "syndie_turret"
+#define MINIMAP_LADDER_BLIP "ladder"
+#define MINIMAP_STAIR_BLIP "stair"
+#define MINIMAP_ANNOTATION_TAG_NUCLEAR "nuclear_ops"
diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm
index 317b17c2d7e..59b12502d1c 100644
--- a/code/__DEFINES/traits/declarations.dm
+++ b/code/__DEFINES/traits/declarations.dm
@@ -501,6 +501,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_CLIFF_WALKER "cliff_walker"
/// This means the user is currently holding/wearing a "tactical camouflage" item (like a potted plant).
#define TRAIT_TACTICALLY_CAMOUFLAGED "tactically_camouflaged"
+/// This means the user is allowed to draw on minimap holotables.
+#define TRAIT_MINIMAP_TABLE_DRAW "minimap_table_draw"
/// Gets double arcade prizes
#define TRAIT_GAMERGOD "gamer-god"
#define TRAIT_GIANT "giant"
diff --git a/code/__HELPERS/logging/game.dm b/code/__HELPERS/logging/game.dm
index 0affd00228b..52c1a2254f3 100644
--- a/code/__HELPERS/logging/game.dm
+++ b/code/__HELPERS/logging/game.dm
@@ -32,3 +32,7 @@
/proc/log_ghost_poll(text, list/data)
logger.Log(LOG_CATEGORY_GAME_GHOST_POLLS, text, data)
+
+/// Logging for drawing on minimap
+/proc/log_minimap_drawing(text, list/data)
+ logger.Log(LOG_CATEGORY_GAME_MINIMAP_DRAWING, text, data)
diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm
index ccb1945a924..fcd5753f613 100644
--- a/code/__HELPERS/type2type.dm
+++ b/code/__HELPERS/type2type.dm
@@ -320,6 +320,15 @@ GLOBAL_LIST_INIT(modulo_angle_to_dir, list(NORTH,NORTHEAST,EAST,SOUTHEAST,SOUTH,
if(var_source.vars.Find(A))
. += A
+/// Converts a screen loc param to a x,y coordinate pixel on the screen.
+/proc/params2screenpixel(scr_loc)
+ var/list/x_and_y = splittext(scr_loc, ",")
+ var/list/x_dirty = splittext(x_and_y[1], ":")
+ var/list/y_dirty = splittext(x_and_y[2], ":")
+ var/x = (text2num(x_dirty[1]) - 1) * ICON_SIZE_X + text2num(x_dirty[2])
+ var/y = (text2num(y_dirty[1]) - 1) * ICON_SIZE_Y + text2num(y_dirty[2])
+ return list(x, y)
+
//word of warning: using a matrix like this as a color value will simplify it back to a string after being set
/proc/color_hex2color_matrix(string)
var/length = length(string)
diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm
index 24127005b6e..61a0255dfaa 100644
--- a/code/_globalvars/traits/_traits.dm
+++ b/code/_globalvars/traits/_traits.dm
@@ -651,6 +651,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION,
"TRAIT_NOGRAV_ALWAYS_DRIFT" = TRAIT_NOGRAV_ALWAYS_DRIFT,
"TRAIT_SPEECH_BOOSTER" = TRAIT_SPEECH_BOOSTER,
+ "TRAIT_MINIMAP_TABLE_DRAW" = TRAIT_MINIMAP_TABLE_DRAW,
"TRAIT_MINING_PARRYING" = TRAIT_MINING_PARRYING,
"TRAIT_MINING_AOE_IMMUNE" = TRAIT_MINING_AOE_IMMUNE,
"TRAIT_IGNORE_FIRE_PROTECTION" = TRAIT_IGNORE_FIRE_PROTECTION,
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index ee1aa3633d1..d25020206da 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -354,6 +354,13 @@
/mob/proc/RangedAttack(atom/A, modifiers)
if(SEND_SIGNAL(src, COMSIG_MOB_ATTACK_RANGED, A, modifiers) & COMPONENT_CANCEL_ATTACK_CHAIN)
return TRUE
+ A.RangedAttackOn(src, modifiers)
+
+/**
+ * Atom's version of RangedAttack, for when you want to do something when a mob clicks on this with more sanity than just Click()
+ */
+/atom/proc/RangedAttackOn(mob/attacker, list/modifiers)
+ return null
/**
* Ranged secondary attack
diff --git a/code/_onclick/hud/screen_objects/screen_objects.dm b/code/_onclick/hud/screen_objects/screen_objects.dm
index 11accd552f5..00341f67188 100644
--- a/code/_onclick/hud/screen_objects/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects/screen_objects.dm
@@ -94,7 +94,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen) // I hate this place
RegisterSignal(hud, COMSIG_QDELETING, PROC_REF(on_hud_delete))
/// Returns the mob this is being displayed to, if any
-/atom/movable/screen/proc/get_mob()
+/atom/movable/screen/proc/get_mob() as /mob
return hud?.mymob
/atom/movable/screen/proc/on_hud_delete(datum/source)
diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm
index 114988a0f86..71516fdd24f 100644
--- a/code/controllers/configuration/entries/general.dm
+++ b/code/controllers/configuration/entries/general.dm
@@ -101,6 +101,9 @@
/// log game events
/datum/config_entry/flag/log_game
+/// log minimap drawing events
+/datum/config_entry/flag/log_minimap_drawing
+
/// log mech data
/datum/config_entry/flag/log_mecha
diff --git a/code/datums/proximity_monitor/proximity_monitor.dm b/code/datums/proximity_monitor/proximity_monitor.dm
index ec77ce2145a..f5e63733765 100644
--- a/code/datums/proximity_monitor/proximity_monitor.dm
+++ b/code/datums/proximity_monitor/proximity_monitor.dm
@@ -74,9 +74,10 @@
//Update the ignore_if_not_on_turf
AddComponent(/datum/component/connect_range, host, loc_connections, current_range, ignore_if_not_on_turf)
-/datum/proximity_monitor/proc/on_uncrossed()
+/datum/proximity_monitor/proc/on_uncrossed(atom/source, atom/movable/gone, direction) //Used by the advanced subtype for effect fields.
SIGNAL_HANDLER
- return //Used by the advanced subtype for effect fields.
+ if(source != host)
+ hasprox_receiver?.OnProximityExit(gone)
/datum/proximity_monitor/proc/on_entered(atom/source, atom/movable/arrived, turf/old_loc)
SIGNAL_HANDLER
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 87104b8cd47..fd0f586b98d 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -12,6 +12,7 @@
plane = AREA_PLANE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
invisibility = INVISIBILITY_LIGHTING
+ tacmap_color = null
/// List of all turfs currently inside this area as nested lists indexed by zlevel.
/// Acts as a filtered version of area.contents For faster lookup
@@ -137,6 +138,9 @@
/// Are shuttles allowed to dock in this area
var/allow_shuttle_docking = FALSE
+ /// If TRUE, then this area will be skipped entirely by minimap rendering.
+ var/skip_minimap_rendering = FALSE
+
/**
* A list of teleport locations
*
diff --git a/code/game/area/areas/away_content.dm b/code/game/area/areas/away_content.dm
index 39d7ebce1db..7194a8494e4 100644
--- a/code/game/area/areas/away_content.dm
+++ b/code/game/area/areas/away_content.dm
@@ -11,6 +11,7 @@ Unused icons for new areas are "awaycontent1" ~ "awaycontent30"
default_gravity = STANDARD_GRAVITY
ambience_index = AMBIENCE_AWAY
sound_environment = SOUND_ENVIRONMENT_ROOM
+ skip_minimap_rendering = TRUE
/area/awaymission/museum
name = "Nanotrasen Museum"
diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm
index af047a00698..51f05402973 100644
--- a/code/game/area/areas/mining.dm
+++ b/code/game/area/areas/mining.dm
@@ -196,6 +196,7 @@
sound_environment = SOUND_AREA_ICEMOON
ambient_buzz = 'sound/ambience/lavaland/magma.ogg'
allow_shuttle_docking = TRUE
+ skip_minimap_rendering = TRUE
/area/icemoon/surface
name = "Icemoon"
diff --git a/code/game/area/areas/misc.dm b/code/game/area/areas/misc.dm
index ac66943d5d1..a922a1e147a 100644
--- a/code/game/area/areas/misc.dm
+++ b/code/game/area/areas/misc.dm
@@ -17,6 +17,7 @@
sound_environment = SOUND_AREA_SPACE
ambient_buzz = null //Space is deafeningly quiet
allow_shuttle_docking = TRUE
+ skip_minimap_rendering = TRUE
/area/space/nearstation
icon_state = "space_near"
diff --git a/code/game/area/areas/ruins/_ruins.dm b/code/game/area/areas/ruins/_ruins.dm
index 92fff19386d..f0adbe7eb6b 100644
--- a/code/game/area/areas/ruins/_ruins.dm
+++ b/code/game/area/areas/ruins/_ruins.dm
@@ -9,6 +9,7 @@
ambience_index = AMBIENCE_RUINS
flags_1 = CAN_BE_DIRTY_1
sound_environment = SOUND_ENVIRONMENT_STONEROOM
+ skip_minimap_rendering = TRUE
/area/ruin/unpowered
always_unpowered = TRUE
diff --git a/code/game/area/areas/station/cargo.dm b/code/game/area/areas/station/cargo.dm
index 8e892efda95..430122cc769 100644
--- a/code/game/area/areas/station/cargo.dm
+++ b/code/game/area/areas/station/cargo.dm
@@ -3,6 +3,7 @@
icon_state = "quart"
airlock_wires = /datum/wires/airlock/cargo
sound_environment = SOUND_AREA_STANDARD_STATION
+ tacmap_color = COLOR_CARGO_BROWN
/area/station/cargo/sorting
name = "\improper Delivery Office"
diff --git a/code/game/area/areas/station/command.dm b/code/game/area/areas/station/command.dm
index 30f126dc42c..6cc80002aab 100644
--- a/code/game/area/areas/station/command.dm
+++ b/code/game/area/areas/station/command.dm
@@ -6,6 +6,7 @@
)
airlock_wires = /datum/wires/airlock/command
sound_environment = SOUND_AREA_STANDARD_STATION
+ tacmap_color = TACMAP_AREA_COMMAND
/area/station/command/bridge
name = "\improper Bridge"
diff --git a/code/game/area/areas/station/common.dm b/code/game/area/areas/station/common.dm
index 1b6eba4dc25..641c43dfd41 100644
--- a/code/game/area/areas/station/common.dm
+++ b/code/game/area/areas/station/common.dm
@@ -87,6 +87,7 @@
mood_message = "I love being in the bar!"
mood_trait = TRAIT_EXTROVERT
sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
+ tacmap_color = TACMAP_AREA_SERVICE
/area/station/commons/fitness
name = "\improper Fitness Room"
diff --git a/code/game/area/areas/station/engineering.dm b/code/game/area/areas/station/engineering.dm
index 3f046445385..04e27d738c4 100644
--- a/code/game/area/areas/station/engineering.dm
+++ b/code/game/area/areas/station/engineering.dm
@@ -3,6 +3,7 @@
ambience_index = AMBIENCE_ENGI
airlock_wires = /datum/wires/airlock/engineering
sound_environment = SOUND_AREA_LARGE_ENCLOSED
+ tacmap_color = TACMAP_AREA_ENGINEERING
/area/station/engineering/circuit_workshop
name = "\improper Circuit Workshop"
@@ -150,6 +151,7 @@
icon_state = "construction"
ambience_index = AMBIENCE_ENGI
sound_environment = SOUND_AREA_STANDARD_STATION
+ tacmap_color = TACMAP_AREA_ENGINEERING
/area/station/construction/mining/aux_base
name = "Auxiliary Base Construction"
diff --git a/code/game/area/areas/station/hallway.dm b/code/game/area/areas/station/hallway.dm
index 12a5ba6816b..3c82c9b1bee 100644
--- a/code/game/area/areas/station/hallway.dm
+++ b/code/game/area/areas/station/hallway.dm
@@ -92,6 +92,7 @@
/area/station/hallway/secondary/service
name = "\improper Service Hallway"
icon_state = "hall_service"
+ tacmap_color = TACMAP_AREA_SERVICE
/area/station/hallway/secondary/spacebridge
name = "\improper Space Bridge"
diff --git a/code/game/area/areas/station/maintenance.dm b/code/game/area/areas/station/maintenance.dm
index a6fa76cd80e..84ce4032eb6 100644
--- a/code/game/area/areas/station/maintenance.dm
+++ b/code/game/area/areas/station/maintenance.dm
@@ -7,6 +7,7 @@
forced_ambience = TRUE
ambient_buzz = 'sound/ambience/maintenance/source_corridor2.ogg'
ambient_buzz_vol = 20
+ tacmap_color = TACMAP_AREA_MAINTENANCE
/*
* Departmental Maintenance
@@ -248,6 +249,7 @@
/area/station/maintenance/disposal/incinerator
name = "\improper Incinerator"
icon_state = "incinerator"
+ tacmap_color = TACMAP_AREA_ENGINEERING
/area/station/maintenance/space_hut
name = "\improper Space Hut"
diff --git a/code/game/area/areas/station/medical.dm b/code/game/area/areas/station/medical.dm
index 03bdc8eb5bf..a02e014a0c0 100644
--- a/code/game/area/areas/station/medical.dm
+++ b/code/game/area/areas/station/medical.dm
@@ -4,6 +4,7 @@
ambience_index = AMBIENCE_MEDICAL
airlock_wires = /datum/wires/airlock/medbay
sound_environment = SOUND_AREA_STANDARD_STATION
+ tacmap_color = TACMAP_AREA_MEDICAL
/area/station/medical/abandoned
name = "\improper Abandoned Medbay"
@@ -12,6 +13,7 @@
'sound/ambience/misc/signal.ogg',
)
sound_environment = SOUND_AREA_SMALL_ENCLOSED
+ tacmap_color = TACMAP_AREA_MAINTENANCE
/area/station/medical/medbay/central
name = "Medbay Central"
diff --git a/code/game/area/areas/station/science.dm b/code/game/area/areas/station/science.dm
index b64e7efe75a..9954a500673 100644
--- a/code/game/area/areas/station/science.dm
+++ b/code/game/area/areas/station/science.dm
@@ -3,6 +3,7 @@
icon_state = "science"
airlock_wires = /datum/wires/airlock/science
sound_environment = SOUND_AREA_STANDARD_STATION
+ tacmap_color = TACMAP_AREA_SCIENCE
/area/station/science/lobby
name = "\improper Science Lobby"
@@ -131,6 +132,7 @@
name = "\improper Ordnance Bomb Site"
icon_state = "ord_boom"
area_flags = BLOBS_ALLOWED | CULT_PERMITTED | NO_GRAVITY
+ skip_minimap_rendering = TRUE
/area/station/science/ordnance/bomb/planet
area_flags = /area/station/science/ordnance/bomb::area_flags & ~NO_GRAVITY
diff --git a/code/game/area/areas/station/security.dm b/code/game/area/areas/station/security.dm
index 3166f7733d9..22d3bb0de85 100644
--- a/code/game/area/areas/station/security.dm
+++ b/code/game/area/areas/station/security.dm
@@ -6,6 +6,7 @@
ambience_index = AMBIENCE_DANGER
airlock_wires = /datum/wires/airlock/security
sound_environment = SOUND_AREA_STANDARD_STATION
+ tacmap_color = TACMAP_AREA_SECURITY
/area/station/security/office
name = "\improper Security Office"
diff --git a/code/game/area/areas/station/service.dm b/code/game/area/areas/station/service.dm
index 35540656326..71e9421e3a5 100644
--- a/code/game/area/areas/station/service.dm
+++ b/code/game/area/areas/station/service.dm
@@ -1,5 +1,6 @@
/area/station/service
airlock_wires = /datum/wires/airlock/service
+ tacmap_color = TACMAP_AREA_SERVICE
/*
* Bar/Kitchen Areas
@@ -199,27 +200,34 @@
name = "\improper Abandoned Garden"
icon_state = "abandoned_garden"
sound_environment = SOUND_AREA_SMALL_ENCLOSED
+ tacmap_color = TACMAP_AREA_MAINTENANCE
/area/station/service/kitchen/abandoned
name = "\improper Abandoned Kitchen"
icon_state = "abandoned_kitchen"
+ tacmap_color = TACMAP_AREA_MAINTENANCE
/area/station/service/electronic_marketing_den
name = "\improper Electronic Marketing Den"
icon_state = "abandoned_marketing_den"
+ tacmap_color = TACMAP_AREA_MAINTENANCE
/area/station/service/abandoned_gambling_den
name = "\improper Abandoned Gambling Den"
icon_state = "abandoned_gambling_den"
+ tacmap_color = TACMAP_AREA_MAINTENANCE
/area/station/service/abandoned_gambling_den/gaming
name = "\improper Abandoned Gaming Den"
icon_state = "abandoned_gaming_den"
+ tacmap_color = TACMAP_AREA_MAINTENANCE
/area/station/service/theater/abandoned
name = "\improper Abandoned Theater"
icon_state = "abandoned_theatre"
+ tacmap_color = TACMAP_AREA_MAINTENANCE
/area/station/service/library/abandoned
name = "\improper Abandoned Library"
icon_state = "abandoned_library"
+ tacmap_color = TACMAP_AREA_MAINTENANCE
diff --git a/code/game/area/areas/station/solars.dm b/code/game/area/areas/station/solars.dm
index 569a7f0a169..d7765c6ee9b 100644
--- a/code/game/area/areas/station/solars.dm
+++ b/code/game/area/areas/station/solars.dm
@@ -77,6 +77,7 @@
/area/station/maintenance/solars
name = "Solar Maintenance"
icon_state = "yellow"
+ tacmap_color = TACMAP_AREA_ENGINEERING
/area/station/maintenance/solars/port
name = "Port Solar Maintenance"
diff --git a/code/game/area/areas/station/telecomm.dm b/code/game/area/areas/station/telecomm.dm
index adb4670b44b..46c644acfeb 100644
--- a/code/game/area/areas/station/telecomm.dm
+++ b/code/game/area/areas/station/telecomm.dm
@@ -15,6 +15,7 @@
'sound/ambience/misc/ambimystery.ogg',
)
airlock_wires = /datum/wires/airlock/engineering
+ tacmap_color = TACMAP_AREA_ENGINEERING
/area/station/tcommsat/maints
name = "\improper Telecomms Maintenance Room"
diff --git a/code/game/atom/_atom.dm b/code/game/atom/_atom.dm
index ad246f5ff82..d59f478a2db 100644
--- a/code/game/atom/_atom.dm
+++ b/code/game/atom/_atom.dm
@@ -147,6 +147,9 @@
/// Generally for niche objects, atoms blacklisted can spawn if enabled by spawner.
var/spawn_blacklisted = FALSE
+ /// What color this shows up as on the tactical map
+ var/tacmap_color = TACMAP_SOLID
+
/**
* Top level of the destroy chain for most atoms
*
@@ -438,6 +441,10 @@
/atom/proc/HasProximity(atom/movable/proximity_check_mob as mob|obj)
return
+/// has a previously nearby atom moved away
+/atom/proc/OnProximityExit(atom/movable/proximity_check_mob as mob|obj)
+ return
+
/// Sets the wire datum of an atom
/atom/proc/set_wires(datum/wires/new_wires)
wires = new_wires
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 57dffa377e5..6bbab50fa79 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -28,6 +28,8 @@
idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 0.1
active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * 0.2
+ tacmap_color = TACMAP_DOOR
+
/// The animation we're currently playing, if any
var/animation
var/visible = TRUE
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index 801ed06603c..f682219a06b 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -782,6 +782,19 @@ DEFINE_BITFIELD(turret_flags, list(
. = ..()
AddElement(/datum/element/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES)
AddElement(/datum/element/nav_computer_icon, 'icons/effects/nav_computer_indicators.dmi', "turret", FALSE)
+ add_minimap_blip(src, MINIMAP_SYNDIE_TURRET_BLIP, "sentry_passive")
+
+/obj/machinery/porta_turret/syndicate/proc/update_turret_minimap_icon(new_icon_state)
+ var/atom/movable/screen/minimap_element/blip/blip = get_minimap_blip(MINIMAP_SYNDIE_TURRET_BLIP, src)
+ if(isnull(blip))
+ return
+ blip.icon_state = new_icon_state
+
+/obj/machinery/porta_turret/syndicate/shootAt(atom/movable/target)
+ . = ..()
+ if(raised && (obj_flags & EMAGGED || last_fired == world.time))
+ update_turret_minimap_icon("sentry_firing")
+ addtimer(CALLBACK(src, PROC_REF(update_turret_minimap_icon), "sentry_passive"), shot_delay + 1 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
/obj/machinery/porta_turret/syndicate/setup()
return
diff --git a/code/game/objects/items/implants/implant_tacmap.dm b/code/game/objects/items/implants/implant_tacmap.dm
new file mode 100644
index 00000000000..33ebbe88c08
--- /dev/null
+++ b/code/game/objects/items/implants/implant_tacmap.dm
@@ -0,0 +1,120 @@
+/obj/item/implant/tacmap
+ name = "tactical map implant"
+ desc = "provides you with a map"
+ actions_types = list(/datum/action/minimap)
+ var/wearer_icon_state = null
+ /// Optional z-trait that resolves to the first z-level and locks the minimap there.
+ var/minimap_fixed_z_trait
+ /// Whether this implant allows drawing/labeling on the personal minimap HUD.
+ var/can_draw_on_personal_minimap = FALSE
+ var/static/list/minimap_refresh_signals = list(
+ COMSIG_MOB_STATCHANGE,
+ COMSIG_LIVING_REVIVE,
+ COMSIG_MOB_GHOSTIZED,
+ )
+
+/obj/item/implant/tacmap/implant(mob/living/target, mob/user, silent, force)
+ . = ..()
+ if(.)
+ configure_minimap_action()
+ RegisterSignals(target, minimap_refresh_signals, PROC_REF(refresh_minimap_icon))
+ addtimer(CALLBACK(src, PROC_REF(update_minimap_icon), target), 0.1 SECONDS) // Mobs are spawned inside nullspace sometimes so this avoids that hijinks.
+
+/obj/item/implant/tacmap/removed(mob/living/source, silent, special)
+ UnregisterSignal(source, minimap_refresh_signals)
+ remove_minimap(source)
+ return ..()
+
+///Remove all action of type minimap from the wearer, and make him disappear from the minimap
+/obj/item/implant/tacmap/proc/remove_minimap(mob/user)
+ remove_minimap_blip(MINIMAP_NUKEOP_BLIP, user)
+
+/obj/item/implant/tacmap/proc/refresh_minimap_icon()
+ SIGNAL_HANDLER
+ if(imp_in)
+ update_minimap_icon(imp_in)
+
+/obj/item/implant/tacmap/proc/resolve_fixed_minimap_z_level()
+ if(!isnull(minimap_fixed_z_trait))
+ var/list/trait_levels = SSmapping.levels_by_trait(minimap_fixed_z_trait)
+ if(length(trait_levels))
+ return trait_levels[1]
+ return null
+
+/obj/item/implant/tacmap/proc/configure_minimap_action()
+ var/datum/action/minimap/minimap_action = locate(/datum/action/minimap) in actions
+ if(isnull(minimap_action))
+ return
+ minimap_action.fixed_z_level = resolve_fixed_minimap_z_level()
+ minimap_action.can_draw = can_draw_on_personal_minimap
+
+/obj/item/implant/tacmap/proc/get_minimap_icon_state(mob/living/wearer)
+ return wearer_icon_state
+
+///Updates the wearer's minimap icon
+/obj/item/implant/tacmap/proc/update_minimap_icon(mob/wearer)
+ SIGNAL_HANDLER
+ remove_minimap_blip(MINIMAP_NUKEOP_BLIP, wearer)
+ add_minimap_blip(wearer, MINIMAP_NUKEOP_BLIP, get_minimap_icon_state(wearer))
+
+/obj/item/implant/tacmap/nuclear // Nukie subtype, map shows you nuke disk, operatives, cayenne and the nuke
+ actions_types = list(/datum/action/minimap/nuclear)
+ wearer_icon_state = "syndicate"
+
+/obj/item/implant/tacmap/nuclear/implant(mob/living/target, mob/user, silent, force)
+ . = ..()
+ if(.)
+ RegisterSignal(target, COMSIG_MINIMAP_ACTION_TRIGGER, PROC_REF(deny_nukie_base_open))
+
+/obj/item/implant/tacmap/nuclear/get_minimap_icon_state(mob/living/wearer)
+ if(wearer.stat != DEAD && istype(wearer, /mob/living/basic/carp/pet/cayenne))
+ return "cayenne"
+ . = ..()
+
+/obj/item/implant/tacmap/nuclear/removed(mob/living/source, silent, special)
+ UnregisterSignal(source, COMSIG_MINIMAP_ACTION_TRIGGER)
+ return ..()
+
+/obj/item/implant/tacmap/nuclear/proc/deny_nukie_base_open(mob/living/user)
+ var/turf/user_turf = get_turf(user)
+ if(user_turf.onSyndieBase())
+ user.balloon_alert(user, "can't use implant in the base, go to the holotable!")
+ return COMSIG_MINIMAP_ACTION_TRIGGER_CANCEL
+
+/obj/item/implant/tacmap/nuclear/cayenne // subtype used for cayenne and syndie sentience potions in general
+ wearer_icon_state = "cayenne"
+
+/obj/item/implant/tacmap/nuclear/leader // Leader subtype lets him draw on the map
+ actions_types = list(/datum/action/minimap/nuclear)
+ can_draw_on_personal_minimap = TRUE
+ wearer_icon_state = "syndicate_leader"
+
+/obj/item/implant/tacmap/nuclear/leader/implant(mob/living/target, mob/user, silent, force)
+ . = ..()
+ if(.)
+ ADD_TRAIT(target, TRAIT_MINIMAP_TABLE_DRAW, REF(src))
+
+/obj/item/implant/tacmap/nuclear/leader/removed(mob/living/source, silent, special)
+ REMOVE_TRAIT(source, TRAIT_MINIMAP_TABLE_DRAW, REF(src))
+ return ..()
+
+// Subtype that just lets them open it off-base.
+/obj/item/implant/tacmap/nuclear/offbase
+ minimap_fixed_z_trait = ZTRAIT_STATION
+ can_draw_on_personal_minimap = TRUE
+
+/obj/item/implant/tacmap/nuclear/offbase/deny_nukie_base_open(mob/living/user)
+ return
+
+/obj/item/implanter/tacmap
+ name = "implanter (minimap)"
+ imp_type = /obj/item/implant/tacmap
+
+/obj/item/implanter/tacmap/nuclear
+ name = "implanter (operative minimap)"
+ imp_type = /obj/item/implant/tacmap/nuclear
+
+/obj/item/implantcase/tacmap
+ name = "implant case - 'Tactical Map'"
+ desc = "A glass case containing an implant with a virtual map."
+ imp_type = /obj/item/implant/tacmap
diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm
index aff0ccc4e80..cd4baf7f1c9 100644
--- a/code/game/objects/items/storage/uplink_kits.dm
+++ b/code/game/objects/items/storage/uplink_kits.dm
@@ -764,6 +764,8 @@
new /obj/item/book/manual/nuclear(src) // Very important
// The most important part of the kit, the implant that gives them the syndicate faction.
new /obj/item/implanter/induction_implant(src)
+ // Tactical map implant so they can see the minimap with the rest of the team.
+ new /obj/item/implanter/tacmap/nuclear(src)
// All in all, 6+3+3+2+5+2+4 = ~25 TC of 'miscellaneous' items.
// This is a lot of value for 10 TC, but you have to keep in mind that you NEED someone to get this stuff station-side.
// Pretty much all of it is a bad deal for reinforcements or yourself as they already have similar or good-enough alternatives.
diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm
index 95c725868ca..f2f9d138df8 100644
--- a/code/game/objects/structures/fence.dm
+++ b/code/game/objects/structures/fence.dm
@@ -18,6 +18,7 @@
icon = 'icons/obj/fence.dmi'
icon_state = "straight"
+ tacmap_color = TACMAP_FENCE
var/cuttable = TRUE
var/hole_size= NO_HOLE
diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm
index 5d15c1af89f..88423eb182c 100644
--- a/code/game/objects/structures/ladders.dm
+++ b/code/game/objects/structures/ladders.dm
@@ -165,6 +165,7 @@
down.up = null
down.update_appearance(UPDATE_ICON_STATE)
+ down.update_minimap_blip()
down = null
update_appearance(UPDATE_ICON_STATE)
clear_base_transparency()
@@ -188,6 +189,7 @@
up.down = null
up.clear_base_transparency()
up.update_appearance(UPDATE_ICON_STATE)
+ up.update_minimap_blip()
up = null
update_appearance(UPDATE_ICON_STATE)
@@ -196,6 +198,11 @@
unlink_down()
unlink_up()
+/obj/structure/ladder/proc/update_minimap_blip()
+ remove_minimap_blip(MINIMAP_LADDER_BLIP, src)
+ if(up || down)
+ add_minimap_blip(src, MINIMAP_LADDER_BLIP, "ladder")
+
/obj/structure/ladder/LateInitialize()
// By default, discover ladders above and below us vertically
var/turf/base = get_turf(src)
@@ -213,6 +220,7 @@
// Linking updates our icon, so if we failed both links we need a manual update
if(isnull(down) && isnull(up))
update_appearance(UPDATE_ICON_STATE)
+ update_minimap_blip()
/obj/structure/ladder/update_icon_state()
icon_state = "[base_icon_state][!!up][!!down]"
diff --git a/code/game/objects/structures/stairs.dm b/code/game/objects/structures/stairs.dm
index 8d7e1fc84e1..0f037fec4d5 100644
--- a/code/game/objects/structures/stairs.dm
+++ b/code/game/objects/structures/stairs.dm
@@ -4,6 +4,8 @@
/// Range within which stair indicators will appear for approaching mobs
#define STAIR_INDICATOR_RANGE 3
+/// Minimum tile spacing between stair minimap blips
+#define STAIR_BLIP_MIN_DISTANCE 2
// dir determines the direction of travel to go upwards
// stairs require /turf/open/openspace as the tile above them to work, unless your stairs have 'force_open_above' set to TRUE
@@ -27,6 +29,8 @@
VAR_FINAL/turf/directly_above
/// If TRUE, we have left/middle/right sprites.
var/has_merged_sprites = TRUE
+ /// Current atoms used as this stair's minimap blip targets.
+ var/list/minimap_blip_targets
/// Lazyassoc list of weakef to mob viewing stair indicators to their images
VAR_PRIVATE/list/mob_to_image
@@ -63,6 +67,7 @@
force_open_above()
build_signal_listener()
update_surrounding()
+ update_minimap_blip()
var/static/list/exit_connections = list(
COMSIG_ATOM_EXIT = PROC_REF(on_exit_stairs),
@@ -78,6 +83,7 @@
/obj/structure/stairs/Destroy()
+ clear_minimap_blips()
if(directly_above)
UnregisterSignal(directly_above, COMSIG_TURF_MULTIZ_NEW)
directly_above = null
@@ -104,6 +110,47 @@
for(var/obj/structure/stairs/stair in get_step(src, turn(dir, -90)))
stair.update_appearance()
+ update_minimap_blip()
+
+/obj/structure/stairs/proc/update_minimap_blip()
+ var/bottom_state = isTerminator() ? "stairs_up" : "stairs_down"
+ var/top_state = (bottom_state == "stairs_up") ? "stairs_down" : "stairs_up"
+ var/turf/current_turf = get_turf(src)
+
+ clear_minimap_blips()
+ if(isnull(current_turf))
+ return
+
+ add_minimap_blip_if_valid(current_turf, bottom_state)
+ add_minimap_blip_if_valid(get_step_multiz(current_turf, UP), top_state)
+
+/obj/structure/stairs/proc/clear_minimap_blips()
+ if(!islist(minimap_blip_targets))
+ return
+ for(var/atom/target as anything in minimap_blip_targets)
+ remove_minimap_blip(MINIMAP_STAIR_BLIP, target)
+ LAZYCLEARLIST(minimap_blip_targets)
+
+/obj/structure/stairs/proc/add_minimap_blip_if_valid(atom/target, state)
+ if(isnull(target))
+ return
+ if(!should_place_minimap_blip(target))
+ return
+
+ var/atom/movable/screen/minimap_element/blip/blip = get_minimap_blip(MINIMAP_STAIR_BLIP, target)
+ if(!isnull(blip))
+ blip.icon_state = state
+ else
+ add_minimap_blip(target, MINIMAP_STAIR_BLIP, state)
+ LAZYADD(minimap_blip_targets, target)
+
+/obj/structure/stairs/proc/should_place_minimap_blip(atom/target)
+ var/turf/target_turf = get_turf(target)
+ if(isnull(target_turf))
+ return FALSE
+ if(length(get_minimap_blips_in_area(MINIMAP_STAIR_BLIP, target_turf, STAIR_BLIP_MIN_DISTANCE)))
+ return FALSE
+ return TRUE
/obj/structure/stairs/update_icon_state()
. = ..()
@@ -420,3 +467,4 @@
#undef STAIR_TERMINATOR_YES
#undef STAIR_INDICATOR_RANGE
+#undef STAIR_BLIP_MIN_DISTANCE
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index cd54bd380f2..6ca6b22836c 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -18,6 +18,7 @@
flags_ricochet = RICOCHET_HARD
receive_ricochet_chance_mod = 0.5
custom_materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT)
+ tacmap_color = TACMAP_WINDOW
var/state = WINDOW_OUT_OF_FRAME
var/reinf = FALSE
var/heat_resistance = 800
diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm
index c29772afc5b..09bd513be8e 100644
--- a/code/game/turfs/closed/_closed.dm
+++ b/code/game/turfs/closed/_closed.dm
@@ -9,6 +9,7 @@
init_air = FALSE
rad_insulation = RAD_MEDIUM_INSULATION
pass_flags_self = PASSCLOSEDTURF
+ tacmap_color = TACMAP_BLACK
/turf/closed/AfterChange()
. = ..()
diff --git a/code/game/turfs/open/asteroid.dm b/code/game/turfs/open/asteroid.dm
index c441871caa8..b8128820f8e 100644
--- a/code/game/turfs/open/asteroid.dm
+++ b/code/game/turfs/open/asteroid.dm
@@ -182,6 +182,7 @@ GLOBAL_LIST_EMPTY(dug_up_basalt)
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
planetary_atmos = TRUE
baseturfs = /turf/open/lava/smooth/lava_land_surface
+ skip_minimap_rendering = TRUE
/// Used for the lavaland icemoon ruin.
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins
@@ -393,6 +394,7 @@ GLOBAL_LIST_EMPTY(dug_up_basalt)
baseturfs = /turf/open/openspace/icemoon
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
slowdown = 0
+ skip_minimap_rendering = TRUE
/// Exact subtype as parent, just used in ruins to prevent other ruins/chasms from spawning on top of it.
/turf/open/misc/asteroid/snow/icemoon/do_not_chasm
diff --git a/code/game/turfs/open/floor/iron_floor.dm b/code/game/turfs/open/floor/iron_floor.dm
index 6f0489acea5..7f7a5fa28c9 100644
--- a/code/game/turfs/open/floor/iron_floor.dm
+++ b/code/game/turfs/open/floor/iron_floor.dm
@@ -414,6 +414,7 @@
icon_state = "solarpanel"
base_icon_state = "solarpanel"
floor_tile = /obj/item/stack/tile/iron/solarpanel
+ skip_minimap_rendering = TRUE
/turf/open/floor/iron/solarpanel/airless
initial_gas_mix = AIRLESS_ATMOS
diff --git a/code/game/turfs/open/floor/misc_floor.dm b/code/game/turfs/open/floor/misc_floor.dm
index 61f2c76bc79..ae5ae6c3e9d 100644
--- a/code/game/turfs/open/floor/misc_floor.dm
+++ b/code/game/turfs/open/floor/misc_floor.dm
@@ -75,6 +75,9 @@
icon_state = "bcircuitoff"
always_off = TRUE
+/turf/open/floor/circuit/no_light
+ always_off = TRUE
+
/turf/open/floor/circuit/airless
initial_gas_mix = AIRLESS_ATMOS
@@ -120,6 +123,9 @@
icon_state = "rcircuitoff"
always_off = TRUE
+/turf/open/floor/circuit/red/no_power
+ always_off = TRUE
+
/turf/open/floor/circuit/red/anim
icon_state = "rcircuitanim"
floor_tile = /obj/item/stack/tile/circuit/red/anim
diff --git a/code/game/turfs/open/ice.dm b/code/game/turfs/open/ice.dm
index a966e8e4d7e..1a227d2a034 100644
--- a/code/game/turfs/open/ice.dm
+++ b/code/game/turfs/open/ice.dm
@@ -82,6 +82,7 @@
baseturfs = /turf/open/openspace/icemoon
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
slowdown = 0
+ skip_minimap_rendering = TRUE
/turf/open/misc/ice/icemoon/no_planet_atmos
planetary_atmos = FALSE
diff --git a/code/game/turfs/open/space/space.dm b/code/game/turfs/open/space/space.dm
index dcc735819f3..e4c447008da 100644
--- a/code/game/turfs/open/space/space.dm
+++ b/code/game/turfs/open/space/space.dm
@@ -71,6 +71,7 @@ GLOBAL_LIST_EMPTY(starlight)
vis_flags = VIS_INHERIT_ID //when this be added to vis_contents of something it be associated with something on clicking, important for visualisation of turf in openspace and interraction with openspace that show you turf.
force_no_gravity = TRUE
+ skip_minimap_rendering = TRUE
/turf/open/space/basic
icon_state = MAP_SWITCH("space", "space_basic_map")
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index b6a0b8c3867..4a98f911a04 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -113,6 +113,9 @@ GLOBAL_LIST_EMPTY(station_turfs)
///The typepath we use for lazy fishing on turfs, to save on world init time.
var/fish_source
+ /// If TRUE, then this turf will be skipped entirely by minimap rendering.
+ var/skip_minimap_rendering = FALSE
+
/turf/vv_edit_var(var_name, new_value)
var/static/list/banned_edits = list(NAMEOF_STATIC(src, x), NAMEOF_STATIC(src, y), NAMEOF_STATIC(src, z))
diff --git a/code/modules/antagonists/clown_ops/outfits.dm b/code/modules/antagonists/clown_ops/outfits.dm
index 18016da7c4a..b66b2212445 100644
--- a/code/modules/antagonists/clown_ops/outfits.dm
+++ b/code/modules/antagonists/clown_ops/outfits.dm
@@ -18,7 +18,7 @@
/obj/item/mod/skin_applier/honkerative = 1,
)
box = /obj/item/storage/box/survival/syndie
- implants = list(/obj/item/implant/sad_trombone)
+ implants = list(/obj/item/implant/sad_trombone, /obj/item/implant/tacmap/nuclear)
uplink_type = /obj/item/uplink/clownop
@@ -33,3 +33,4 @@
command_radio = TRUE
id_trim = /datum/id_trim/chameleon/operative/clown_leader
+ implants = list(/obj/item/implant/sad_trombone, /obj/item/implant/tacmap/nuclear/leader)
diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm b/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm
index 7e9aa464142..06a95d809d0 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm
@@ -25,6 +25,7 @@
AddComponent(/datum/component/stationloving, !fake)
AddComponent(/datum/component/keep_me_secure, CALLBACK(src, PROC_REF(secured_process)), CALLBACK(src, PROC_REF(unsecured_process)), 10)
SSpoints_of_interest.make_point_of_interest(src)
+ add_minimap_blip(src, MINIMAP_NUKEDISK_BLIP, "green_disk_off", 'icons/ui_icons/minimap/map_blips_large.dmi', TRUE)
else
// Ensure fake disks still have examine text, but dont actually do anything
AddComponent(/datum/component/keep_me_secure)
diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm
index 807f0e6e690..a00956e7c80 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/_nuclear_bomb.dm
@@ -53,6 +53,8 @@ GLOBAL_VAR(station_nuke_source)
var/proper_bomb = TRUE //Please
/// A reference to the countdown that goes up over the nuke
var/obj/effect/countdown/nuclearbomb/countdown
+ /// is this nuke on the MINIMAP_BOMB_BLIP tag minimap?
+ var/is_on_minimap = TRUE
/obj/machinery/nuclearbomb/Initialize(mapload)
. = ..()
@@ -62,6 +64,7 @@ GLOBAL_VAR(station_nuke_source)
update_appearance()
SSpoints_of_interest.make_point_of_interest(src)
previous_level = SSsecurity_level.get_current_level_as_text()
+ update_minimap_blip()
/obj/machinery/nuclearbomb/Destroy()
safety = FALSE
@@ -523,6 +526,7 @@ GLOBAL_VAR(station_nuke_source)
arm_nuke(usr)
else
disarm_nuke(usr)
+ update_minimap_blip()
/// Arms the nuke, making it active and triggering all pinpointers to start counting down (+delta alert)
/obj/machinery/nuclearbomb/proc/arm_nuke(mob/armer)
@@ -565,6 +569,12 @@ GLOBAL_VAR(station_nuke_source)
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NUKE_DEVICE_DISARMED, src)
update_appearance()
+/obj/machinery/nuclearbomb/proc/update_minimap_blip()
+ if(!is_on_minimap)
+ return
+ var/blip_icon = 'icons/ui_icons/minimap/map_blips_large.dmi'
+ add_minimap_blip(src, MINIMAP_BOMB_BLIP, "nuke_[timing ? "on" : "off"]", blip_icon, TRUE)
+
/// If the nuke is active, gets how much time is left until it detonates, in seconds.
/// If the nuke is not active, gets how much time the nuke is set for, in seconds.
/obj/machinery/nuclearbomb/proc/get_time_left()
diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/beer_nuke.dm b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/beer_nuke.dm
index 66798ae798c..7bef615c806 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclear_bomb/beer_nuke.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclear_bomb/beer_nuke.dm
@@ -3,6 +3,7 @@
name = "\improper Nanotrasen-brand nuclear fission explosive"
desc = "One of the more successful achievements of the Nanotrasen Corporate Warfare Division, their nuclear fission explosives are renowned for being cheap to produce and devastatingly effective. Signs explain that though this particular device has been decommissioned, every Nanotrasen station is equipped with an equivalent one, just in case. All Captains carefully guard the disk needed to detonate them - at least, the sign says they do. There seems to be a tap on the back."
proper_bomb = FALSE
+ is_on_minimap = FALSE
/// The keg located within the beer nuke.
var/obj/structure/reagent_dispensers/beerkeg/keg
/// Reagent that is produced once the nuke detonates.
diff --git a/code/modules/antagonists/nukeop/outfits.dm b/code/modules/antagonists/nukeop/outfits.dm
index 74402a2cd06..ce7cadba7a5 100644
--- a/code/modules/antagonists/nukeop/outfits.dm
+++ b/code/modules/antagonists/nukeop/outfits.dm
@@ -13,6 +13,11 @@
skillchips = list(/obj/item/skillchip/disk_verifier)
box = /obj/item/storage/box/survival/syndie
+ implants = list(
+ /obj/item/implant/weapons_auth,
+ /obj/item/implant/explosive,
+ /obj/item/implant/tacmap/nuclear,
+ )
/// Amount of TC to automatically store in this outfit's uplink.
var/tc = 25
/// Enables big voice on this outfit's headset, used for nukie leaders.
@@ -33,6 +38,12 @@
name = "Syndicate Leader - Basic"
command_radio = TRUE
+ implants = list(
+ /obj/item/implant/weapons_auth,
+ /obj/item/implant/explosive,
+ /obj/item/implant/tacmap/nuclear/leader,
+ )
+
id_trim = /datum/id_trim/chameleon/operative/nuke_leader
/datum/outfit/syndicate/leader/plasmaman
@@ -84,6 +95,11 @@
/datum/outfit/syndicate/full/loneop
name = "Syndicate Operative - Full Kit (Loneop)"
uplink_type = /obj/item/uplink/loneop
+ implants = list(
+ /obj/item/implant/weapons_auth,
+ /obj/item/implant/explosive,
+ /obj/item/implant/tacmap/nuclear/leader,
+ )
/datum/outfit/syndicate/full/plasmaman
name = "Syndicate Operative - Full Kit (Plasmaman)"
@@ -213,3 +229,8 @@
command_radio = TRUE
tc = 0
uplink_type = null
+ implants = list(
+ /obj/item/implant/weapons_auth,
+ /obj/item/implant/explosive,
+ /obj/item/implant/tacmap/nuclear/offbase,
+ )
diff --git a/code/modules/logging/categories/log_category_game.dm b/code/modules/logging/categories/log_category_game.dm
index fced988c1fc..a5be914e6d2 100644
--- a/code/modules/logging/categories/log_category_game.dm
+++ b/code/modules/logging/categories/log_category_game.dm
@@ -66,3 +66,7 @@
category = LOG_CATEGORY_GAME_BLOOD_WORM
config_flag = /datum/config_entry/flag/log_blood_worm
master_category = /datum/log_category/game
+
+/datum/log_category/minimap_drawing
+ category = LOG_CATEGORY_GAME_MINIMAP_DRAWING
+ master_category = /datum/log_category/game
diff --git a/code/modules/minimap/_minimap.dm b/code/modules/minimap/_minimap.dm
new file mode 100644
index 00000000000..e864b080f56
--- /dev/null
+++ b/code/modules/minimap/_minimap.dm
@@ -0,0 +1,45 @@
+GLOBAL_ALIST_EMPTY(minimap_blip_tags)
+GLOBAL_ALIST_EMPTY(minimap_annotations)
+GLOBAL_LIST_EMPTY(minimap_annotation_viewers)
+
+/// Create a minimap blip on the z-level in question, object is optional, and will tie the blip to the object in question, and will clean up itself if the object in question is deleted
+/proc/add_minimap_blip(atom/object, tag, icon_state, icon = 'icons/ui_icons/minimap/map_blips.dmi', large = FALSE, layer = 12)
+ if(!istype(object) || !tag || !icon_state)
+ CRASH("Invalid params passed in to add_minimap_blip")
+ var/atom/movable/screen/minimap_element/blip/new_blip = new(null, null, object, icon_state, icon, large, tag)
+ new_blip.layer = layer
+ LAZYADD(GLOB.minimap_blip_tags[tag], new_blip)
+ SEND_GLOBAL_SIGNAL(COMSIG_MINIMAP_ADD(tag), new_blip)
+
+/proc/get_minimap_blip(tag, atom/object)
+ if(!tag || !istype(object))
+ return
+ for(var/atom/movable/screen/minimap_element/blip/blip as anything in GLOB.minimap_blip_tags[tag])
+ if(blip.track_target == object)
+ return blip
+
+/proc/remove_minimap_blip(tag, atom/object)
+ var/atom/movable/screen/minimap_element/blip/blip = get_minimap_blip(tag, object)
+ if(isnull(blip))
+ return
+ SEND_GLOBAL_SIGNAL(COMSIG_MINIMAP_REMOVE(tag), blip)
+ LAZYREMOVE(GLOB.minimap_blip_tags[tag], blip)
+ qdel(blip)
+
+/// Returns minimap blips matching a tag that are within `distance` tiles of `target_turf` on the same z-level.
+/proc/get_minimap_blips_in_area(tag, turf/target_turf, distance)
+ if(!tag || isnull(target_turf) || !isnum(distance) || !islist(GLOB.minimap_blip_tags[tag]))
+ return list()
+
+ var/list/nearby_blips = list()
+ for(var/atom/movable/screen/minimap_element/blip/blip as anything in GLOB.minimap_blip_tags[tag])
+ var/turf/blip_turf = get_turf(blip.track_target)
+ if(isnull(blip_turf))
+ continue
+ if(blip_turf.z != target_turf.z)
+ continue
+ if(get_dist(blip_turf, target_turf) > distance)
+ continue
+ nearby_blips += blip
+
+ return nearby_blips
diff --git a/code/modules/minimap/hud/minimal_z_level.dm b/code/modules/minimap/hud/minimal_z_level.dm
new file mode 100644
index 00000000000..af6071b49dc
--- /dev/null
+++ b/code/modules/minimap/hud/minimal_z_level.dm
@@ -0,0 +1,68 @@
+/atom/movable/screen/minimap_z_indicator
+ icon = 'icons/hud/screen_ai.dmi'
+ icon_state = "zindicator"
+ screen_loc = "BOTTOM+4,RIGHT"
+
+/atom/movable/screen/minimap_z_indicator/Initialize(mapload, datum/hud/hud_owner)
+ . = ..()
+ if(!isnull(hud_owner.mymob))
+ RegisterSignal(hud_owner.mymob, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(on_z_level_change))
+ RegisterSignal(hud_owner.mymob, COMSIG_MINIMAP_CHANGE_Z_LEVEL, PROC_REF(on_minimap_change_request))
+ var/current_turf = get_turf(hud_owner.mymob)
+ on_z_level_change(null, current_turf, FALSE)
+
+///sets the currently indicated relative floor
+/atom/movable/screen/minimap_z_indicator/proc/on_z_level_change(turf/old_turf, turf/new_turf, same_z_layer)
+ SIGNAL_HANDLER
+ var/used_z = get_displayed_z_level(new_turf)
+ set_floor_text(used_z)
+
+/atom/movable/screen/minimap_z_indicator/proc/on_minimap_change_request(mob/hud_owner, new_z_change)
+ SIGNAL_HANDLER
+ var/atom/movable/screen/minimap_display/current_display = hud?.screen_objects[HUD_TAC_MINIMAP]
+ if(isnull(current_display))
+ var/current_turf = get_turf(hud_owner)
+ on_z_level_change(null, current_turf, FALSE)
+ return
+ var/current_z = current_display.get_viewed_z_level()
+ if(isnull(current_z))
+ return
+ var/requested_z = current_display.get_clamped_connected_z(current_z + new_z_change, current_z)
+ set_floor_text(requested_z)
+
+/atom/movable/screen/minimap_z_indicator/proc/get_displayed_z_level(turf/current_turf)
+ var/atom/movable/screen/minimap_display/current_display = hud?.screen_objects[HUD_TAC_MINIMAP]
+ if(!isnull(current_display?.fixed_z_level))
+ return current_display.minimap?.z
+ return current_turf?.z
+
+/atom/movable/screen/minimap_z_indicator/proc/set_floor_text(used_z)
+ if(isnull(used_z))
+ return
+ var/bottom_z = used_z
+ while(SSmapping.multiz_levels?[bottom_z]?[Z_LEVEL_DOWN]) // just keep going down
+ bottom_z--
+ var/text = "Floor
[(used_z - bottom_z) + 1]"
+ maptext = MAPTEXT_TINY_UNICODE("