diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm
index 4b2ccb5503d..c09c18020da 100644
--- a/_maps/map_files/generic/centcomm.dmm
+++ b/_maps/map_files/generic/centcomm.dmm
@@ -85,6 +85,14 @@
icon_state = "asteroid"
},
/area/holodeck/source_picnicarea)
+"aq" = (
+/obj/structure/closet/crate/can,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"ar" = (
/turf/simulated/floor/holofloor{
icon = 'icons/turf/floors/plating.dmi';
@@ -245,6 +253,14 @@
/obj/item/book/manual/nuclear,
/turf/simulated/floor/carpet/arcade,
/area/syndicate_mothership)
+"aT" = (
+/obj/structure/bedsheetbin{
+ pixel_x = -1;
+ pixel_y = 2
+ },
+/obj/structure/table/glass/reinforced/plastitanium,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"aU" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -334,6 +350,13 @@
icon_state = "dark"
},
/area/ghost_bar)
+"bj" = (
+/obj/effect/turf_decal/arrows/red{
+ dir = 1;
+ pixel_y = -16
+ },
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"bk" = (
/obj/machinery/smartfridge/food/chef,
/turf/simulated/floor/plasteel{
@@ -345,6 +368,12 @@
/obj/effect/mapping_helpers/airlock/access/all/syndicate,
/turf/simulated/floor/carpet/arcade,
/area/syndicate_mothership)
+"bn" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"bo" = (
/turf/simulated/floor/holofloor{
dir = 4;
@@ -404,6 +433,19 @@
icon_state = "green"
},
/area/holodeck/source_emptycourt)
+"bD" = (
+/obj/structure/window/reinforced/tinted,
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/machinery/door/window{
+ dir = 8;
+ name = "Toilet";
+ opacity = 1
+ },
+/obj/structure/toilet/directional/east,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"bE" = (
/obj/machinery/optable/abductor,
/turf/simulated/floor/plating/abductor,
@@ -439,6 +481,13 @@
/obj/item/storage/box/alienhandcuffs,
/turf/simulated/floor/plating/abductor,
/area/abductor_ship)
+"bL" = (
+/obj/machinery/economy/vending/tool/free,
+/turf/simulated/floor/plasteel{
+ dir = 6;
+ icon_state = "darkred"
+ },
+/area/ghost_bar)
"bM" = (
/turf/simulated/floor/holofloor,
/area/holodeck/source_emptycourt)
@@ -455,6 +504,10 @@
},
/turf/simulated/floor/plating/abductor,
/area/abductor_ship)
+"bQ" = (
+/obj/item/crowbar/red,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"bR" = (
/obj/structure/reagent_dispensers/beerkeg,
/turf/simulated/floor/plasteel/freezer,
@@ -495,6 +548,10 @@
/obj/machinery/economy/vending/boozeomat,
/turf/simulated/floor/plasteel/freezer,
/area/ninja/holding)
+"bZ" = (
+/obj/structure/chair/sofa/right,
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"ca" = (
/turf/simulated/floor/holofloor{
dir = 6;
@@ -828,6 +885,10 @@
/obj/structure/table/glass/reinforced/plastitanium,
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership/jail)
+"de" = (
+/obj/structure/chair/office/dark,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"df" = (
/turf/simulated/wall/indestructible/fakeglass,
/area/ninja/outpost)
@@ -1075,6 +1136,14 @@
icon_state = "cafeteria"
},
/area/ninja/holding)
+"ef" = (
+/obj/machinery/chem_dispenser/beer,
+/obj/structure/table/reinforced,
+/obj/machinery/barsign/ghost_bar{
+ pixel_y = 32
+ },
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"eg" = (
/obj/effect/landmark/spawner/prisonwarp,
/turf/simulated/floor/plating,
@@ -1153,6 +1222,10 @@
},
/turf/simulated/floor/wood,
/area/ghost_bar)
+"eu" = (
+/obj/machinery/economy/vending/cigarette/syndicate/free,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"ev" = (
/turf/simulated/floor/beach/sand,
/area/holodeck/source_beach)
@@ -1264,6 +1337,14 @@
},
/turf/simulated/floor/wood,
/area/wizard_station)
+"eP" = (
+/obj/effect/mapping_helpers/turfs/damage,
+/obj/structure/closet/crate/can,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"eQ" = (
/turf/simulated/floor/holofloor,
/area/holodeck/source_boxingcourt)
@@ -1271,6 +1352,26 @@
/obj/item/kirbyplants/large,
/turf/simulated/floor/pod/dark,
/area/syndicate_mothership)
+"eT" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/light/floor,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
+"eU" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
+"eV" = (
+/obj/machinery/light/floor,
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
+ },
+/area/ghost_bar)
"eW" = (
/obj/structure/sink/directional/west,
/turf/simulated/floor/plasteel{
@@ -1472,6 +1573,10 @@
icon_state = "dark"
},
/area/ghost_bar)
+"fH" = (
+/obj/structure/flora/grass/both,
+/turf/simulated/floor/plating/asteroid/snow,
+/area/space/centcomm)
"fI" = (
/turf/simulated/wall/indestructible/riveted,
/area/tdome/arena_source)
@@ -1522,6 +1627,12 @@
},
/turf/simulated/floor/plasteel/dark,
/area/ghost_bar)
+"fQ" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"fR" = (
/obj/structure/barricade/sandbags,
/obj/effect/turf_decal/delivery/hollow,
@@ -1646,6 +1757,15 @@
},
/turf/simulated/floor/plating/airless,
/area/shuttle/syndicate_sit)
+"go" = (
+/obj/machinery/kitchen_machine/microwave/upgraded{
+ pixel_y = 8
+ },
+/obj/structure/table/reinforced,
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
+ },
+/area/ghost_bar)
"gp" = (
/obj/structure/shuttle/engine/propulsion{
dir = 1;
@@ -1713,6 +1833,13 @@
},
/turf/simulated/floor/carpet/purple,
/area/wizard_station)
+"gC" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"gD" = (
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate_sit)
@@ -1749,6 +1876,14 @@
/obj/machinery/sleeper/syndie,
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate_elite)
+"gM" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "bar"
+ },
+/area/ghost_bar)
"gN" = (
/obj/machinery/abductor/experiment{
team = 2
@@ -1773,14 +1908,6 @@
/obj/structure/window/reinforced,
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate_sit)
-"gS" = (
-/obj/machinery/light/small{
- dir = 4;
- pixel_y = 8
- },
-/obj/machinery/economy/vending/cigarette,
-/turf/simulated/floor/wood,
-/area/ghost_bar)
"gT" = (
/obj/machinery/light/spot{
dir = 8
@@ -1849,6 +1976,15 @@
/obj/machinery/atmospherics/portable/canister/oxygen,
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate_elite)
+"hf" = (
+/obj/structure/closet/crate/can,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
+"hg" = (
+/obj/structure/table/wood,
+/obj/item/deck/unum,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"hi" = (
/obj/machinery/light/spot{
dir = 8
@@ -1999,6 +2135,22 @@
},
/turf/simulated/floor/wood,
/area/wizard_station)
+"hz" = (
+/obj/machinery/door/window{
+ dir = 8;
+ name = "Toilet";
+ opacity = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/structure/toilet/directional/east,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"hA" = (
/obj/effect/mapping_helpers/airlock/access/all/syndicate,
/obj/machinery/door/airlock/external{
@@ -2147,11 +2299,6 @@
icon_state = "vault"
},
/area/tdome/tdomeadmin)
-"hU" = (
-/obj/structure/table/wood/fancy/royalblack,
-/obj/item/clothing/mask/cigarette/cigar,
-/turf/simulated/floor/carpet/black,
-/area/ghost_bar)
"hV" = (
/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/sit{
dir = 1
@@ -2303,6 +2450,13 @@
icon_state = "whiteblue"
},
/area/shuttle/escape)
+"is" = (
+/obj/structure/filingcabinet,
+/turf/simulated/floor/plasteel{
+ dir = 5;
+ icon_state = "darkred"
+ },
+/area/ghost_bar)
"it" = (
/obj/structure/railing/corner,
/turf/simulated/floor/plasteel{
@@ -2354,6 +2508,11 @@
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
+"iA" = (
+/obj/structure/table/glass/reinforced/plastitanium,
+/obj/item/coin/antagtoken/syndicate,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"iC" = (
/obj/machinery/washing_machine,
/turf/simulated/floor/plasteel/dark,
@@ -2473,6 +2632,9 @@
},
/turf/simulated/floor/mineral/titanium,
/area/shuttle/transport)
+"iW" = (
+/turf/simulated/wall/indestructible/rock/snow,
+/area/space/centcomm)
"iX" = (
/obj/machinery/suit_storage_unit/syndicate/secure,
/turf/simulated/floor/mineral/plastitanium/red,
@@ -2511,6 +2673,10 @@
},
/turf/simulated/floor/wood,
/area/wizard_station)
+"jc" = (
+/obj/structure/table/reinforced,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"je" = (
/obj/machinery/mech_bay_recharge_port/upgraded/unsimulated{
dir = 8
@@ -2605,11 +2771,22 @@
},
/turf/simulated/floor/plating/airless,
/area/shuttle/administration)
+"ju" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"jv" = (
/obj/structure/table,
/obj/machinery/recharger,
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate)
+"jw" = (
+/obj/structure/snowman,
+/turf/simulated/floor/plating/asteroid/snow,
+/area/space/centcomm)
"jx" = (
/obj/structure/table,
/obj/item/screwdriver{
@@ -2817,6 +2994,12 @@
/obj/machinery/pdapainter,
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
+"kj" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/simulated/floor/carpet/arcade,
+/area/ghost_bar)
"kk" = (
/obj/structure/closet/secure_closet{
req_access = list(150)
@@ -2863,6 +3046,13 @@
},
/turf/simulated/floor/plating/abductor,
/area/abductor_ship)
+"kr" = (
+/obj/structure/table/glass/reinforced/plastitanium,
+/obj/machinery/computer/security/telescreen,
+/turf/simulated/floor/plasteel{
+ icon_state = "darkred"
+ },
+/area/ghost_bar)
"ks" = (
/obj/machinery/economy/vending/coffee/free,
/turf/simulated/floor/plasteel/dark,
@@ -2943,6 +3133,19 @@
/obj/structure/table/glass/reinforced/plastitanium,
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
+"kH" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/table/glass/reinforced/plastitanium,
+/obj/item/storage/firstaid/fire{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/brute,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"kI" = (
/obj/item/toy/figure/crew/syndie,
/turf/simulated/floor/plating/asteroid/snow,
@@ -2952,6 +3155,11 @@
/obj/effect/turf_decal/woodsiding,
/turf/simulated/floor/wood,
/area/wizard_station)
+"kK" = (
+/obj/structure/table/wood,
+/obj/item/deck/tarot,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"kL" = (
/obj/structure/filingcabinet/medical,
/turf/simulated/floor/plasteel{
@@ -3020,6 +3228,12 @@
"kU" = (
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership/jail)
+"kW" = (
+/obj/structure/chair/sofa{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"kY" = (
/obj/item/storage/fancy/cigarettes/cigpack_robustgold{
pixel_y = 6
@@ -3037,6 +3251,10 @@
/obj/structure/bed,
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership/jail)
+"la" = (
+/obj/structure/gunrack,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"lb" = (
/obj/machinery/door/airlock/hatch/syndicate{
name = "SST Ready Room"
@@ -3065,12 +3283,18 @@
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
-"lj" = (
-/obj/machinery/light/small{
- dir = 4;
- pixel_y = 8
+"li" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -8;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = -8
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
},
-/turf/simulated/floor/plasteel/dark,
/area/ghost_bar)
"lk" = (
/obj/structure/chair/wood{
@@ -3078,6 +3302,13 @@
},
/turf/simulated/floor/plasteel,
/area/admin)
+"ll" = (
+/obj/structure/chair/office/dark,
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_x = 32
+ },
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"ln" = (
/obj/item/gun/energy/immolator/multi{
pixel_x = -4;
@@ -3102,6 +3333,11 @@
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership/jail)
+"lp" = (
+/obj/structure/table/reinforced,
+/obj/item/multitool/red,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"lq" = (
/turf/simulated/wall/mineral/plastitanium/nodiagonal,
/area/shuttle/supply)
@@ -3121,6 +3357,14 @@
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership/jail)
+"lu" = (
+/obj/structure/table/wood,
+/obj/item/deck/tarot,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"lv" = (
/obj/structure/chair/stool,
/turf/simulated/floor/plasteel/dark,
@@ -3162,6 +3406,10 @@
/obj/effect/decal/remains/human,
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership/jail)
+"lE" = (
+/obj/structure/flora/tree/pine,
+/turf/simulated/floor/plating/asteroid/snow,
+/area/space/centcomm)
"lF" = (
/obj/effect/landmark/abductor/agent{
team = 3
@@ -3554,6 +3802,11 @@
icon_state = "bar"
},
/area/syndicate_mothership)
+"mL" = (
+/obj/machinery/economy/arcade/claw,
+/obj/structure/sign/poster/contraband/energy_swords/directional/north,
+/turf/simulated/floor/carpet/arcade,
+/area/ghost_bar)
"mM" = (
/obj/item/radio/intercom/syndicate{
pixel_y = 25
@@ -3683,6 +3936,12 @@
icon_state = "bar"
},
/area/syndicate_mothership)
+"nf" = (
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkredcorners"
+ },
+/area/ghost_bar)
"ng" = (
/obj/mecha/combat/phazon,
/turf/simulated/floor/plasteel,
@@ -4007,6 +4266,13 @@
icon_state = "bar"
},
/area/syndicate_mothership)
+"nZ" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/machinery/economy/vending/cigarette,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"oa" = (
/obj/structure/table,
/obj/machinery/reagentgrinder,
@@ -4019,6 +4285,11 @@
icon_state = "bar"
},
/area/syndicate_mothership)
+"oc" = (
+/obj/structure/table/reinforced,
+/obj/item/ashtray/glass,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"od" = (
/turf/simulated/wall/mineral/titanium,
/area/shuttle/escape)
@@ -4042,6 +4313,13 @@
/obj/structure/table/wood/fancy/royalblack,
/turf/simulated/floor/carpet/royalblack,
/area/admin)
+"ok" = (
+/obj/structure/chair/sofa,
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
+ },
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"ol" = (
/obj/structure/chair/comfy/black{
dir = 4
@@ -4263,10 +4541,10 @@
/turf/simulated/wall/r_wall,
/area/start)
"pi" = (
-/obj/structure/sink/directional/east,
/obj/structure/mirror/magic/nuclear{
pixel_x = 28
},
+/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel/freezer,
/area/syndicate_mothership)
"pk" = (
@@ -4321,6 +4599,31 @@
},
/turf/simulated/floor/plasteel,
/area/admin)
+"pu" = (
+/obj/structure/mopbucket,
+/obj/item/mop,
+/obj/structure/sink/directional/north,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
+"pw" = (
+/obj/structure/window/reinforced/tinted,
+/obj/machinery/door/window{
+ dir = 8;
+ name = "Toilet";
+ opacity = 1
+ },
+/obj/structure/toilet/directional/east,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
+"py" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "vault"
+ },
+/area/ghost_bar)
"pz" = (
/obj/item/flag/syndi,
/turf/simulated/floor/plasteel{
@@ -4445,6 +4748,12 @@
/obj/effect/landmark/spawner/tdome1,
/turf/simulated/floor/plasteel,
/area/tdome/arena)
+"pX" = (
+/obj/structure/reagent_dispensers/spacecleanertank{
+ pixel_x = 32
+ },
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"pY" = (
/obj/machinery/door/airlock/centcom{
name = "Team Storage"
@@ -4497,12 +4806,6 @@
icon_state = "red"
},
/area/holodeck/source_thunderdomecourt)
-"qk" = (
-/obj/machinery/cooking/deepfryer/upgraded,
-/turf/simulated/floor/plasteel{
- icon_state = "cafeteria"
- },
-/area/ghost_bar)
"ql" = (
/obj/structure/table/reinforced,
/obj/item/reagent_containers/drinks/mug/med,
@@ -4562,6 +4865,16 @@
/obj/structure/table/glass/reinforced/plastitanium,
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership/jail)
+"qz" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/computer/operating{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"qB" = (
/obj/machinery/cryopod/offstation/right,
/turf/simulated/floor/wood,
@@ -4821,6 +5134,10 @@
/obj/item/kirbyplants/large,
/turf/simulated/floor/plasteel,
/area/centcom/evac)
+"rm" = (
+/obj/structure/chair/sofa/corner,
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"rn" = (
/obj/structure/rack,
/obj/item/ammo_box/a357,
@@ -4963,6 +5280,19 @@
/obj/structure/fans/tiny/invisible,
/turf/simulated/floor/plating,
/area/centcom/specops)
+"rD" = (
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/preopen{
+ id_tag = "ghost_connect"
+ },
+/obj/machinery/door/airlock/hatch/syndicate{
+ name = "oneway syndicate hatch";
+ auto_close_time = 16
+ },
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"rE" = (
/turf/simulated/wall/indestructible/riveted,
/area/start)
@@ -5109,6 +5439,24 @@
/obj/structure/chair/comfy/shuttle,
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/assault_pod)
+"sh" = (
+/obj/machinery/door/poddoor/shutters{
+ density = 0;
+ dir = 2;
+ icon_state = "open";
+ id_tag = "trader_privacy";
+ name = "Privacy Shutters";
+ opacity = 0
+ },
+/obj/effect/spawner/window/shuttle,
+/turf/simulated/floor/mineral/titanium/blue,
+/area/shuttle/trade/sol)
+"si" = (
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "darkred"
+ },
+/area/ghost_bar)
"sj" = (
/turf/simulated/floor/plasteel/dark,
/area/tdome/tdomeadmin)
@@ -5141,6 +5489,18 @@
},
/turf/simulated/floor/plasteel,
/area/tdome/arena_source)
+"ss" = (
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
+ },
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_y = 5
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
+ },
+/area/ghost_bar)
"st" = (
/obj/structure/table/wood,
/obj/item/clothing/accessory/legal_badge{
@@ -5232,19 +5592,22 @@
/turf/simulated/floor/plating,
/area/shuttle/syndicate)
"sH" = (
-/obj/structure/table/reinforced,
-/obj/item/reagent_containers/condiment/saltshaker{
- pixel_x = -8;
- pixel_y = 5
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
},
-/obj/item/reagent_containers/condiment/peppermill{
- pixel_x = -8
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
},
-/obj/item/reagent_containers/condiment/enzyme{
- pixel_y = 5
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
+"sI" = (
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_x = -32
},
/turf/simulated/floor/plasteel{
- icon_state = "cafeteria"
+ dir = 5;
+ icon_state = "vault"
},
/area/ghost_bar)
"sK" = (
@@ -5396,6 +5759,11 @@
/obj/item/flashlight/lamp,
/turf/simulated/floor/carpet/black,
/area/centcom/specops)
+"to" = (
+/obj/machinery/chem_dispenser/soda,
+/obj/structure/table/reinforced,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"tp" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -5420,6 +5788,10 @@
/obj/machinery/economy/vending/wallmed/directional/north,
/turf/simulated/floor/wood,
/area/trader_station/sol)
+"tu" = (
+/obj/structure/flora/grass/green,
+/turf/simulated/floor/plating/asteroid/snow,
+/area/space/centcomm)
"tv" = (
/obj/structure/table,
/obj/machinery/cell_charger,
@@ -5538,6 +5910,12 @@
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate)
+"tP" = (
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
+ },
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"tQ" = (
/obj/machinery/mech_bay_recharge_port/upgraded/unsimulated{
dir = 8;
@@ -5548,6 +5926,15 @@
icon_state = "darkred"
},
/area/centcom/specops)
+"tS" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ dir = 5;
+ icon_state = "vault"
+ },
+/area/ghost_bar)
"tU" = (
/obj/structure/table,
/obj/item/storage/toolbox/syndicate,
@@ -5604,6 +5991,12 @@
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate)
+"uf" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/arcade,
+/area/ghost_bar)
"ug" = (
/obj/structure/rack,
/obj/item/ammo_box/magazine/mm762x51,
@@ -5727,6 +6120,20 @@
/obj/item/storage/firstaid/tactical,
/turf/simulated/floor/plasteel/freezer,
/area/admin)
+"ut" = (
+/obj/structure/table/glass/reinforced/plastitanium,
+/obj/machinery/door_control/no_emag{
+ id = "ghost_connect";
+ name = "Ghost Bar Access";
+ pixel_x = 6;
+ pixel_y = 6;
+ req_access = list(153)
+ },
+/turf/simulated/floor/plasteel{
+ dir = 10;
+ icon_state = "darkred"
+ },
+/area/ghost_bar)
"uu" = (
/obj/structure/table,
/obj/item/grenade/syndieminibomb{
@@ -5775,6 +6182,14 @@
/obj/effect/decal/remains/human,
/turf/simulated/floor/plating/asteroid/snow,
/area/syndicate_mothership)
+"uG" = (
+/obj/machinery/door/airlock/hatch/syndicate{
+ req_access = null
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
+ },
+/area/ghost_bar)
"uH" = (
/obj/structure/mirror{
pixel_x = 28
@@ -5782,6 +6197,13 @@
/obj/structure/sink/directional/east,
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate)
+"uI" = (
+/obj/structure/table/wood/fancy/royalblack,
+/obj/machinery/computer/security/telescreen,
+/turf/simulated/floor/plasteel{
+ icon_state = "bar"
+ },
+/area/ghost_bar)
"uJ" = (
/obj/machinery/optable,
/turf/simulated/floor/mineral/plastitanium/red,
@@ -5856,6 +6278,16 @@
"vd" = (
/turf/simulated/floor/carpet/green,
/area/ghost_bar)
+"ve" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/door/airlock/hatch/syndicate{
+ req_access = null
+ },
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"vf" = (
/obj/effect/landmark/spawner/trader,
/obj/structure/chair/comfy/brown,
@@ -5928,6 +6360,12 @@
},
/turf/simulated/floor/wood,
/area/trader_station/sol)
+"vv" = (
+/turf/simulated/floor/plasteel{
+ dir = 8;
+ icon_state = "darkred"
+ },
+/area/ghost_bar)
"vx" = (
/obj/structure/railing,
/obj/structure/table/wood,
@@ -6085,6 +6523,10 @@
icon_state = "cafeteria"
},
/area/tdome/tdomeobserve)
+"vW" = (
+/obj/machinery/economy/vending/shoedispenser/free,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"vX" = (
/obj/structure/table,
/obj/structure/window/reinforced,
@@ -6295,15 +6737,11 @@
},
/turf/simulated/floor/plasteel,
/area/admin)
-"wI" = (
-/obj/structure/toilet/directional/east,
-/obj/structure/window/reinforced/tinted,
-/obj/machinery/door/window{
- dir = 8;
- name = "Toilet";
- opacity = 1
+"wJ" = (
+/turf/simulated/floor/plasteel{
+ dir = 5;
+ icon_state = "darkred"
},
-/turf/simulated/floor/plasteel/freezer,
/area/ghost_bar)
"wK" = (
/turf/simulated/wall/mineral/plastitanium,
@@ -6313,7 +6751,29 @@
/turf/simulated/floor/mineral/plastitanium/red,
/area/ghost_bar)
"wN" = (
-/obj/structure/closet/crate/cookware,
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -8;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = -8
+ },
+/obj/item/kitchen/knife,
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_y = 5
+ },
+/obj/machinery/reagentgrinder{
+ desc = "Used to grind things up into raw materials and liquids.";
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/glass/beaker/large,
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
+ },
+/area/ghost_bar)
+"wP" = (
+/obj/machinery/economy/vending/chefdrobe,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -6403,7 +6863,6 @@
/turf/simulated/floor/carpet,
/area/admin)
"xa" = (
-/obj/structure/toilet/directional/east,
/obj/structure/window/reinforced/tinted{
dir = 1
},
@@ -6412,6 +6871,7 @@
name = "Toilet";
opacity = 1
},
+/obj/structure/toilet/directional/east,
/turf/simulated/floor/plasteel/freezer,
/area/trader_station/sol)
"xb" = (
@@ -6487,6 +6947,12 @@
},
/turf/simulated/floor/plasteel,
/area/admin)
+"xm" = (
+/turf/simulated/floor/plasteel{
+ dir = 5;
+ icon_state = "vault"
+ },
+/area/ghost_bar)
"xo" = (
/turf/simulated/floor/grass/jungle,
/area/wizard_station)
@@ -6517,6 +6983,15 @@
icon_state = "white"
},
/area/centcom/control)
+"xw" = (
+/obj/structure/mopbucket,
+/obj/item/mop,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"xx" = (
/obj/machinery/photocopier/faxmachine/longrange/syndie{
department = "Syndicate"
@@ -6564,6 +7039,15 @@
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/syndicate)
+"xG" = (
+/obj/structure/table/wood/fancy/royalblack,
+/obj/machinery/light/floor,
+/obj/item/storage/fancy/cigarettes/cigpack_syndicate{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"xH" = (
/turf/simulated/wall/indestructible/wood,
/area/wizard_station)
@@ -6599,6 +7083,12 @@
/obj/machinery/door/airlock/external,
/turf/simulated/floor/plasteel/dark,
/area/centcom/control)
+"xQ" = (
+/obj/structure/table/wood,
+/obj/item/folder/blue,
+/obj/item/toner,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"xR" = (
/obj/docking_port/stationary{
dir = 2;
@@ -6638,6 +7128,13 @@
/obj/structure/railing,
/turf/simulated/floor/plasteel/dark,
/area/ghost_bar)
+"xW" = (
+/obj/structure/mirror{
+ pixel_x = 32
+ },
+/obj/structure/sink/directional/east,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"xX" = (
/obj/machinery/economy/vending/cola/free,
/turf/simulated/floor/plasteel/dark,
@@ -6664,6 +7161,10 @@
/obj/item/lighter/zippo/contractor,
/turf/simulated/floor/carpet/black,
/area/ghost_bar)
+"yd" = (
+/obj/machinery/economy/vending/suitdispenser/free,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"ye" = (
/obj/structure/signpost,
/turf/simulated/floor/plating/airless{
@@ -6718,6 +7219,13 @@
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
+"yt" = (
+/obj/structure/table/glass/reinforced/plastitanium,
+/obj/item/syndicatedetonator,
+/turf/simulated/floor/plasteel{
+ icon_state = "darkred"
+ },
+/area/ghost_bar)
"yu" = (
/obj/machinery/economy/vending/snack,
/obj/effect/turf_decal/delivery/hollow,
@@ -6740,6 +7248,17 @@
/obj/structure/flora/rock/jungle,
/turf/simulated/floor/grass/jungle,
/area/wizard_station)
+"yy" = (
+/obj/structure/table/wood/fancy/royalblack,
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
+"yB" = (
+/obj/machinery/light/small,
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/simulated/floor/carpet/arcade,
+/area/ghost_bar)
"yC" = (
/obj/structure/marker_beacon/dock_marker,
/turf/simulated/floor/plating/airless,
@@ -6757,15 +7276,12 @@
icon_state = "green"
},
/area/centcom/evac)
-"yI" = (
-/obj/structure/sink/directional/east,
-/obj/structure/mirror{
- pixel_x = 32
- },
+"yJ" = (
/obj/machinery/light/small{
- dir = 1
+ dir = 4;
+ pixel_y = 8
},
-/turf/simulated/floor/plasteel/freezer,
+/turf/simulated/floor/wood,
/area/ghost_bar)
"yK" = (
/turf/simulated/floor/plating/airless{
@@ -6790,6 +7306,14 @@
/obj/structure/bookcase/random,
/turf/simulated/floor/wood,
/area/ghost_bar)
+"yP" = (
+/obj/structure/table/glass/reinforced/plastitanium,
+/obj/item/ashtray/glass,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkred"
+ },
+/area/ghost_bar)
"yQ" = (
/obj/structure/flora/ausbushes/fullgrass,
/obj/structure/flora/ausbushes/grassybush,
@@ -6803,11 +7327,44 @@
icon_state = "cafeteria"
},
/area/tdome/tdomeobserve)
+"yW" = (
+/obj/machinery/economy/vending/toyliberationstation,
+/turf/simulated/floor/plasteel{
+ icon_state = "darkred"
+ },
+/area/ghost_bar)
"yX" = (
/obj/structure/table/wood,
/obj/item/storage/fancy/crayons,
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
+"yY" = (
+/obj/structure/rack,
+/obj/item/tank/internals/emergency_oxygen/double/vox,
+/obj/item/tank/internals/emergency_oxygen/double/vox,
+/obj/item/tank/internals/emergency_oxygen/double/vox,
+/obj/item/tank/internals/emergency_oxygen/double/vox,
+/obj/item/tank/internals/emergency_oxygen/double/vox,
+/obj/item/tank/internals/emergency_oxygen/double/vox,
+/obj/item/tank/internals/emergency_oxygen/double/vox,
+/obj/item/tank/internals/emergency_oxygen/double/vox,
+/obj/item/tank/internals/emergency_oxygen/double/vox,
+/obj/item/tank/internals/emergency_oxygen/double/vox,
+/obj/item/clothing/mask/breath/vox,
+/obj/item/clothing/mask/breath/vox,
+/obj/item/clothing/mask/breath/vox,
+/obj/item/clothing/mask/breath/vox,
+/obj/item/clothing/mask/breath/vox,
+/obj/item/clothing/mask/breath/vox,
+/obj/item/clothing/mask/breath/vox,
+/obj/item/clothing/mask/breath/vox,
+/obj/item/clothing/mask/breath/vox,
+/obj/item/clothing/mask/breath/vox,
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "vault"
+ },
+/area/ghost_bar)
"yZ" = (
/obj/effect/mapping_helpers/airlock/access/all/centcomm/shuttles,
/obj/machinery/door/airlock/external{
@@ -6817,6 +7374,12 @@
/obj/structure/fans/tiny,
/turf/simulated/floor/plating,
/area/centcom/suppy)
+"zc" = (
+/obj/machinery/door/airlock/hatch/syndicate{
+ req_access = null
+ },
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"zf" = (
/obj/structure/chair/comfy/shuttle,
/obj/effect/turf_decal/box,
@@ -6900,6 +7463,10 @@
},
/turf/simulated/floor/mineral/titanium,
/area/shuttle/transport)
+"zr" = (
+/obj/machinery/light/floor,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"zs" = (
/obj/effect/turf_decal/stripes/corner{
dir = 8
@@ -6920,13 +7487,6 @@
/obj/item/flag/wiz,
/turf/simulated/floor/wood,
/area/wizard_station)
-"zw" = (
-/obj/structure/sink/directional/east,
-/obj/structure/mirror{
- pixel_x = 32
- },
-/turf/simulated/floor/plasteel/freezer,
-/area/ghost_bar)
"zx" = (
/obj/structure/kitchenspike,
/turf/simulated/floor/wood,
@@ -6977,6 +7537,10 @@
/obj/effect/landmark/spawner/aroomwarp,
/turf/simulated/floor/plasteel,
/area/admin)
+"zH" = (
+/obj/machinery/photocopier,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"zK" = (
/obj/machinery/door_control/no_emag/no_cyborg{
pixel_x = 24;
@@ -7003,9 +7567,7 @@
/area/centcom/specops)
"zP" = (
/obj/machinery/light/small,
-/obj/machinery/smartfridge/foodcart{
- dir = 4
- },
+/obj/machinery/economy/vending/dinnerware,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -7209,6 +7771,19 @@
/obj/structure/chair/comfy/black,
/turf/simulated/floor/plasteel,
/area/admin)
+"Ay" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/table/glass/reinforced/plastitanium,
+/obj/item/storage/firstaid/toxin{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/adv,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"AB" = (
/obj/machinery/computer/arcade/battle{
dir = 4
@@ -7414,12 +7989,6 @@
/obj/machinery/economy/vending/tool/free,
/turf/simulated/floor/plasteel/dark,
/area/centcom/specops)
-"Bn" = (
-/obj/machinery/icemachine,
-/turf/simulated/floor/plasteel{
- icon_state = "cafeteria"
- },
-/area/ghost_bar)
"Bo" = (
/obj/structure/table/wood,
/obj/item/storage/box/drinkingglasses,
@@ -7483,6 +8052,12 @@
},
/turf/simulated/floor/plasteel/dark,
/area/admin)
+"Bx" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/simulated/floor/carpet/arcade,
+/area/ghost_bar)
"By" = (
/obj/structure/ninjatele{
pixel_x = 28
@@ -7545,6 +8120,16 @@
icon_state = "bar"
},
/area/syndicate_mothership)
+"BK" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/door/airlock/hatch/syndicate{
+ req_access = null
+ },
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"BL" = (
/obj/effect/turf_decal{
dir = 4
@@ -7571,6 +8156,12 @@
},
/turf/simulated/floor/mineral/plastitanium,
/area/shuttle/supply)
+"BS" = (
+/turf/simulated/floor/plasteel{
+ dir = 6;
+ icon_state = "vault"
+ },
+/area/ghost_bar)
"BT" = (
/obj/effect/landmark/spawner/tdomeobserve,
/turf/simulated/floor/plasteel/dark,
@@ -7592,6 +8183,13 @@
"BZ" = (
/turf/simulated/wall/indestructible/opsglass,
/area/syndicate_mothership)
+"Ca" = (
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
+ },
+/obj/structure/gunrack,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"Cb" = (
/obj/structure/flora/ausbushes/fullgrass,
/obj/structure/flora/ausbushes/grassybush,
@@ -7685,7 +8283,6 @@
/turf/simulated/floor/plasteel,
/area/centcom/evac)
"Ck" = (
-/obj/machinery/door/airlock/multi_tile/glass,
/obj/effect/mapping_helpers/airlock/autoname,
/turf/simulated/floor/wood,
/area/ghost_bar)
@@ -7700,12 +8297,6 @@
icon_state = "red"
},
/area/holodeck/source_thunderdomecourt)
-"Cn" = (
-/obj/machinery/computer/security/telescreen/entertainment{
- pixel_x = 32
- },
-/turf/simulated/floor/wood,
-/area/ghost_bar)
"Cp" = (
/obj/structure/sink/directional/east,
/turf/simulated/floor/plasteel{
@@ -7817,6 +8408,16 @@
icon_state = "bar"
},
/area/tdome/tdomeobserve)
+"CH" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/defibrillator_mount/loaded{
+ pixel_x = -30
+ },
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"CI" = (
/obj/structure/urinal{
pixel_y = 28
@@ -7840,6 +8441,15 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel/dark,
/area/centcom/control)
+"CL" = (
+/obj/item/storage/firstaid/regular{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/regular,
+/obj/structure/table/glass/reinforced/plastitanium,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"CM" = (
/obj/effect/mapping_helpers/airlock/access/all/centcomm/shuttles,
/obj/machinery/door/airlock/external{
@@ -7848,6 +8458,10 @@
},
/turf/simulated/floor/plating,
/area/centcom/suppy)
+"CN" = (
+/obj/machinery/economy/vending/autodrobe/free,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"CO" = (
/turf/simulated/floor/plating,
/area/centcom/suppy)
@@ -7880,6 +8494,17 @@
/obj/effect/landmark/spawner/roundstart_observer,
/turf/simulated/floor/carpet/red,
/area/wizard_station)
+"CV" = (
+/obj/machinery/light/small,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
+"CW" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"CX" = (
/obj/item/kitchen/knife/butcher,
/obj/item/melee/baseball_bat,
@@ -7929,10 +8554,7 @@
},
/area/tdome/tdomeadmin)
"Dk" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/bag/tray,
-/obj/item/kitchen/rollingpin,
-/obj/item/kitchen/knife,
+/obj/machinery/cooking/oven/upgraded,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -7987,6 +8609,14 @@
icon_state = "vault"
},
/area/tdome/tdomeadmin)
+"Du" = (
+/obj/machinery/washing_machine,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"Dv" = (
/obj/structure/rack,
/obj/item/clothing/head/helmet/space/space_ninja,
@@ -8122,25 +8752,15 @@
/turf/simulated/floor/engine,
/area/admin)
"DS" = (
-/obj/machinery/atmospherics/refill_station/plasma,
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -32
+ },
+/obj/item/kirbyplants/large,
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "vault"
},
/area/centcom/specops)
-"DT" = (
-/obj/structure/window/reinforced/tinted,
-/obj/structure/window/reinforced/tinted{
- dir = 1
- },
-/obj/structure/toilet/directional/east,
-/obj/machinery/door/window{
- dir = 8;
- name = "Toilet";
- opacity = 1
- },
-/turf/simulated/floor/plasteel/freezer,
-/area/ghost_bar)
"DV" = (
/obj/effect/mapping_helpers/airlock/access/all/centcomm/commander,
/obj/machinery/door/airlock/centcom{
@@ -8347,6 +8967,12 @@
icon_state = "darkblue"
},
/area/shuttle/escape)
+"EB" = (
+/obj/machinery/door/airlock/hatch/syndicate{
+ req_access = null
+ },
+/turf/simulated/floor/carpet/arcade,
+/area/ghost_bar)
"ED" = (
/obj/machinery/prize_counter,
/turf/simulated/floor/carpet/arcade,
@@ -8382,6 +9008,14 @@
/obj/machinery/economy/slot_machine,
/turf/simulated/floor/wood,
/area/ghost_bar)
+"EK" = (
+/obj/machinery/smartfridge/foodcart{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
+ },
+/area/ghost_bar)
"EL" = (
/obj/machinery/door/airlock/hatch{
desc = "Uh oh. You'd better hope you aren't going in here!";
@@ -8389,6 +9023,10 @@
},
/turf/simulated/floor/plasteel/dark,
/area/admin)
+"EM" = (
+/obj/machinery/cryopod/offstation/right,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"EN" = (
/obj/machinery/economy/vending/cola,
/turf/simulated/floor/mineral/plastitanium/red,
@@ -8405,6 +9043,14 @@
icon_state = "dark"
},
/area/ghost_bar)
+"ER" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/light/floor,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"ET" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -8439,11 +9085,6 @@
/obj/machinery/light/small{
dir = 1
},
-/obj/machinery/reagentgrinder{
- desc = "Used to grind things up into raw materials and liquids.";
- pixel_y = 5
- },
-/obj/item/reagent_containers/glass/beaker/large,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -8551,6 +9192,14 @@
/obj/structure/fans/tiny,
/turf/simulated/floor/plasteel/dark,
/area/centcom/specops)
+"Fv" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "bar"
+ },
+/area/ghost_bar)
"Fw" = (
/obj/machinery/conveyor/east{
id = "QMLoad2"
@@ -8635,6 +9284,10 @@
},
/turf/simulated/floor/wood,
/area/wizard_station)
+"FI" = (
+/obj/machinery/economy/vending/syndisnack,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"FJ" = (
/obj/structure/table/reinforced,
/obj/item/storage/box/mousetraps,
@@ -8663,6 +9316,15 @@
/obj/structure/table/wood,
/turf/simulated/floor/wood,
/area/wizard_station)
+"FO" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
+ },
+/turf/simulated/floor/carpet/arcade,
+/area/ghost_bar)
"FP" = (
/obj/structure/chair/comfy/brown{
dir = 8
@@ -8722,6 +9384,12 @@
},
/turf/simulated/floor/wood,
/area/ghost_bar)
+"Gb" = (
+/obj/structure/rack,
+/obj/item/storage/box/lights/bulbs,
+/obj/item/storage/box/lights/bulbs,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"Gc" = (
/obj/machinery/bsa/full/admin{
pixel_y = -22
@@ -8782,6 +9450,17 @@
},
/turf/simulated/floor/wood,
/area/wizard_station)
+"Gl" = (
+/obj/structure/mirror{
+ pixel_x = -28
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/sink/directional/west,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"Gm" = (
/obj/machinery/access_button{
pixel_x = -8;
@@ -8813,6 +9492,10 @@
/obj/item/gun/energy/bsg/prebuilt/admin,
/turf/simulated/floor/carpet/black,
/area/centcom/specops)
+"Go" = (
+/obj/machinery/computer/camera_advanced,
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"Gp" = (
/obj/structure/chair/stool{
dir = 8
@@ -8914,6 +9597,10 @@
/obj/item/kitchen/knife/shiv/carrot,
/turf/simulated/floor/wood,
/area/wizard_station)
+"GH" = (
+/obj/machinery/economy/vending/coffee/free,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"GI" = (
/obj/structure/chair/comfy/shuttle{
dir = 4
@@ -9160,6 +9847,14 @@
icon_state = "vault"
},
/area/centcom/specops)
+"Hw" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/optable,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"Hx" = (
/obj/structure/chair/stool{
dir = 8
@@ -9205,14 +9900,22 @@
},
/area/ghost_bar)
"HE" = (
-/obj/machinery/shower/directional/west,
-/obj/structure/curtain/open/shower,
+/obj/machinery/recharge_station,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
/turf/simulated/floor/plasteel/freezer,
/area/ghost_bar)
"HF" = (
/obj/effect/landmark/spawner/bubblegum_arena,
/turf/simulated/floor/indestructible/necropolis,
/area/ruin/space/bubblegum_arena)
+"HG" = (
+/obj/structure/curtain/open/shower,
+/obj/machinery/shower/directional/west,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"HH" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -9459,6 +10162,12 @@
},
/turf/simulated/floor/plating/airless,
/area/shuttle/escape)
+"Iw" = (
+/obj/machinery/computer/arcade/battle{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/arcade,
+/area/ghost_bar)
"Iy" = (
/obj/item/trash/sosjerky,
/obj/effect/decal/cleanable/dirt,
@@ -9713,10 +10422,12 @@
/turf/simulated/wall/indestructible/riveted,
/area/centcom/suppy)
"Jo" = (
-/obj/machinery/chem_master/condimaster,
-/turf/simulated/floor/plasteel{
- icon_state = "cafeteria"
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/drinks/shaker,
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
},
+/turf/simulated/floor/wood,
/area/ghost_bar)
"Jq" = (
/obj/structure/table/wood,
@@ -9940,6 +10651,13 @@
},
/turf/simulated/floor/plating/asteroid/snow,
/area/syndicate_mothership)
+"JT" = (
+/obj/structure/table/wood,
+/obj/machinery/computer/library/syndie{
+ req_one_access = list()
+ },
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"JU" = (
/obj/structure/holowindow{
dir = 1
@@ -10033,6 +10751,13 @@
/obj/structure/snowman,
/turf/simulated/floor/plating/asteroid/snow,
/area/syndicate_mothership)
+"Kl" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/cooking/board,
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
+ },
+/area/ghost_bar)
"Km" = (
/obj/machinery/kitchen_machine/microwave/upgraded,
/obj/structure/table,
@@ -10081,6 +10806,12 @@
/obj/structure/sign/poster/official/high_class_martini/directional/east,
/turf/simulated/floor/wood,
/area/centcom/evac)
+"Kt" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"Ku" = (
/obj/structure/table/reinforced,
/obj/item/reagent_containers/iv_bag/blood/random,
@@ -10230,6 +10961,20 @@
},
/turf/simulated/floor/wood,
/area/centcom/evac)
+"KP" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/economy/vending/wallmed/syndicate/directional/north,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
+"KQ" = (
+/obj/machinery/economy/vending/clothing/free,
+/turf/simulated/floor/plasteel{
+ icon_state = "dark"
+ },
+/area/ghost_bar)
"KR" = (
/obj/machinery/light/spot{
dir = 4
@@ -10451,6 +11196,12 @@
icon_state = "vault"
},
/area/tdome/tdomeadmin)
+"LE" = (
+/obj/structure/chair/sofa/left{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"LF" = (
/obj/structure/table,
/obj/structure/bedsheetbin{
@@ -10687,6 +11438,14 @@
icon_state = "vault"
},
/area/tdome/tdomeadmin)
+"Mq" = (
+/obj/structure/table/glass/reinforced/plastitanium,
+/obj/machinery/computer/security/telescreen,
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "darkred"
+ },
+/area/ghost_bar)
"Ms" = (
/obj/machinery/processor,
/obj/effect/turf_decal/stripes/end,
@@ -10971,6 +11730,11 @@
/obj/machinery/light/small,
/turf/simulated/floor/wood,
/area/ghost_bar)
+"Ni" = (
+/obj/machinery/computer/security/telescreen,
+/obj/structure/table/glass/reinforced/plastitanium,
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"Nj" = (
/obj/structure/curtain/black,
/turf/simulated/floor/wood,
@@ -11051,7 +11815,7 @@
/turf/simulated/floor/plasteel,
/area/centcom/evac)
"Nz" = (
-/obj/machinery/atmospherics/refill_station/oxygen,
+/obj/structure/filingcabinet/security,
/turf/simulated/floor/plasteel{
dir = 10;
icon_state = "vault"
@@ -11067,6 +11831,16 @@
icon_state = "green"
},
/area/centcom/evac)
+"NC" = (
+/obj/structure/mirror{
+ pixel_x = 32
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/sink/directional/east,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"ND" = (
/obj/structure/chair/comfy/shuttle{
dir = 4
@@ -11097,6 +11871,9 @@
icon_state = "neutral"
},
/area/shuttle/escape)
+"NJ" = (
+/turf/simulated/wall/indestructible/opsglass,
+/area/ghost_bar)
"NK" = (
/obj/machinery/computer/shuttle/admin{
dir = 8;
@@ -11126,6 +11903,12 @@
icon_state = "neutralcorner"
},
/area/shuttle/escape)
+"NN" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"NO" = (
/obj/machinery/door/airlock/hatch{
name = "Teleporter Access"
@@ -11362,11 +12145,22 @@
},
/turf/simulated/floor/plasteel/dark,
/area/centcom/specops)
-"OB" = (
-/obj/machinery/door/airlock/multi_tile/glass{
- name = "Badmin's Bar"
+"OC" = (
+/obj/structure/table/glass/reinforced/plastitanium,
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
+ },
+/obj/item/paper_bin/syndicate{
+ pixel_y = 5
+ },
+/obj/item/pen/multi/syndicate{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "darkred"
},
-/turf/simulated/floor/carpet/arcade,
/area/ghost_bar)
"OD" = (
/obj/machinery/atmospherics/unary/thermomachine/freezer/on,
@@ -11427,10 +12221,10 @@
/area/space/nearstation/centcom)
"OL" = (
/obj/structure/curtain/open/shower,
-/obj/machinery/shower/directional/south,
/obj/structure/window/basic{
dir = 1
},
+/obj/machinery/shower/directional/west,
/turf/simulated/floor/plasteel/freezer,
/area/wizard_station)
"OM" = (
@@ -11484,6 +12278,11 @@
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/administration)
+"OS" = (
+/turf/simulated/floor/plasteel{
+ icon_state = "bar"
+ },
+/area/ghost_bar)
"OT" = (
/turf/simulated/floor/holofloor{
dir = 4;
@@ -11579,6 +12378,10 @@
/obj/item/tank/jetpack/oxygen,
/turf/simulated/floor/plasteel,
/area/admin)
+"Ph" = (
+/obj/structure/coatrack,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"Pi" = (
/turf/simulated/floor/plasteel/stairs/medium{
dir = 1
@@ -11684,6 +12487,13 @@
icon_state = "green"
},
/area/centcom/evac)
+"Pz" = (
+/obj/structure/closet/crate/freezer/iv_storage,
+/obj/effect/turf_decal/delivery/blue/hollow,
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
+ },
+/area/ghost_bar)
"PA" = (
/obj/effect/landmark/shuttle_import,
/turf/space,
@@ -11706,6 +12516,31 @@
icon_state = "darkred"
},
/area/centcom/gamma)
+"PE" = (
+/turf/simulated/floor/plating/asteroid/snow,
+/area/space/centcomm)
+"PF" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/rack,
+/obj/item/storage/box/gloves{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/box/masks,
+/obj/item/storage/box/autoinjectors{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/item/storage/box/bodybags{
+ pixel_x = -6;
+ pixel_y = -6
+ },
+/obj/structure/window/reinforced,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"PG" = (
/obj/item/clipboard,
/obj/item/folder/red,
@@ -11746,6 +12581,17 @@
/obj/structure/shelf/engineering,
/turf/simulated/floor/plasteel/dark,
/area/centcom/specops)
+"PN" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/item/storage/backpack/duffel/syndie/med/surgery{
+ pixel_y = 8
+ },
+/obj/structure/table/tray,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"PO" = (
/obj/structure/flora/ausbushes/fernybush,
/turf/simulated/floor/grass,
@@ -11816,6 +12662,12 @@
/obj/item/kirbyplants/large,
/turf/simulated/floor/wood,
/area/centcom/evac)
+"PZ" = (
+/obj/machinery/economy/vending/bardrobe,
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
+ },
+/area/ghost_bar)
"Qa" = (
/obj/structure/statue/chickenstatue,
/turf/simulated/floor/wood,
@@ -11917,6 +12769,12 @@
/obj/structure/table/glass/reinforced/plastitanium,
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership/jail)
+"Qq" = (
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "vault"
+ },
+/area/ghost_bar)
"Qr" = (
/obj/item/stack/sheet/glass/fifty,
/obj/item/stack/sheet/glass/fifty,
@@ -12037,6 +12895,10 @@
},
/turf/simulated/floor/plasteel/dark,
/area/centcom/control)
+"QK" = (
+/obj/structure/chair/sofa,
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"QL" = (
/turf/simulated/floor/plasteel,
/area/shuttle/escape)
@@ -12084,6 +12946,16 @@
icon_state = "bot"
},
/area/shuttle/escape)
+"QS" = (
+/obj/structure/curtain/open/shower,
+/obj/structure/window/reinforced/tinted,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/shower/directional/west,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"QT" = (
/obj/structure/flora/ausbushes/ywflowers,
/turf/simulated/floor/holofloor/grass,
@@ -12099,6 +12971,11 @@
/obj/item/clothing/glasses/sunglasses_fake,
/turf/simulated/floor/beach/sand,
/area/holodeck/source_beach)
+"QW" = (
+/obj/item/storage/bag/dice,
+/obj/structure/table/wood,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"QX" = (
/obj/structure/table/wood,
/obj/item/folder/red,
@@ -12106,18 +12983,9 @@
/obj/item/flash,
/turf/simulated/floor/plasteel/dark,
/area/centcom/specops)
-"QZ" = (
-/obj/structure/toilet/directional/east,
-/obj/structure/window/reinforced/tinted{
- dir = 1
- },
-/obj/structure/window/reinforced/tinted,
-/obj/machinery/door/window{
- dir = 8;
- name = "Toilet";
- opacity = 1
- },
-/turf/simulated/floor/plasteel/freezer,
+"QY" = (
+/obj/machinery/economy/vending/cigarette/syndicate/free,
+/turf/simulated/floor/carpet/black,
/area/ghost_bar)
"Ra" = (
/turf/simulated/floor/plasteel/dark,
@@ -12129,6 +12997,11 @@
"Rc" = (
/turf/simulated/floor/mech_bay_recharge_floor,
/area/shuttle/escape)
+"Rd" = (
+/obj/structure/table/wood/fancy/royalblack,
+/obj/item/ashtray/glass,
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"Re" = (
/obj/machinery/computer/mech_bay_power_console,
/turf/simulated/floor/plasteel,
@@ -12304,6 +13177,15 @@
/obj/machinery/status_display,
/turf/simulated/wall/indestructible/riveted,
/area/centcom/control)
+"RF" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/closet/crate/freezer/iv_storage,
+/obj/effect/turf_decal/delivery/blue/hollow,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"RG" = (
/obj/item/flag/command,
/turf/simulated/floor/plasteel{
@@ -12316,6 +13198,15 @@
/obj/item/storage/fancy/donut_box,
/turf/simulated/floor/wood,
/area/centcom/control)
+"RJ" = (
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
+ },
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "vault"
+ },
+/area/ghost_bar)
"RK" = (
/turf/simulated/floor/carpet/arcade,
/area/ghost_bar)
@@ -12323,6 +13214,16 @@
/obj/machinery/pdapainter,
/turf/simulated/floor/wood,
/area/centcom/control)
+"RM" = (
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_x = 32
+ },
+/obj/machinery/economy/merch{
+ dir = 1;
+ desc = "The one-stop-shop for all your Nanotrasen swag. Probably stolen from some station to end up here."
+ },
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"RN" = (
/obj/structure/table/reinforced,
/obj/machinery/chem_dispenser/soda{
@@ -12342,6 +13243,10 @@
icon_state = "darkgreen"
},
/area/centcom/control)
+"RQ" = (
+/obj/machinery/light/floor,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"RS" = (
/obj/machinery/door/poddoor/preopen{
id_tag = "CCcustoms2";
@@ -12493,6 +13398,11 @@
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/specops)
+"Sr" = (
+/obj/structure/chair/sofa,
+/obj/structure/sign/poster/contraband/syndicate_pistol/directional/north,
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"Ss" = (
/turf/simulated/floor/holofloor{
dir = 4;
@@ -12503,6 +13413,10 @@
/obj/structure/filingcabinet/security,
/turf/simulated/floor/wood,
/area/centcom/control)
+"Sv" = (
+/obj/machinery/economy/vending/wallmed/syndicate/directional/south,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"Sx" = (
/obj/machinery/sleeper/upgraded{
dir = 4
@@ -12560,6 +13474,23 @@
},
/turf/simulated/floor/mineral/plastitanium/red,
/area/shuttle/administration)
+"SH" = (
+/obj/structure/curtain/open/shower,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/shower/directional/west,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
+"SI" = (
+/obj/effect/mapping_helpers/airlock/autoname,
+/obj/machinery/door/poddoor/preopen{
+ id_tag = "ghost_connect"
+ },
+/obj/machinery/door/airlock/centcom,
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"SJ" = (
/obj/item/kirbyplants/large,
/turf/simulated/floor/plasteel,
@@ -12594,6 +13525,15 @@
icon_state = "browncorner"
},
/area/shuttle/escape)
+"SR" = (
+/obj/structure/table/reinforced,
+/obj/machinery/reagentgrinder,
+/obj/item/reagent_containers/glass/beaker/large,
+/obj/item/kitchen/knife,
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
+ },
+/area/ghost_bar)
"SS" = (
/obj/effect/turf_decal{
dir = 8
@@ -12611,6 +13551,21 @@
"SV" = (
/turf/simulated/wall/indestructible/fakeglass,
/area/tdome/tdomeadmin)
+"SW" = (
+/obj/structure/chair/stool/bar{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "bar"
+ },
+/area/ghost_bar)
+"SX" = (
+/obj/structure/table/reinforced,
+/obj/machinery/cooking/grill,
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
+ },
+/area/ghost_bar)
"SY" = (
/obj/structure/table/holotable,
/obj/item/clothing/suit/armor/riot/knight/blue,
@@ -12627,6 +13582,15 @@
/obj/machinery/computer/scan_consolenew,
/turf/simulated/floor/mineral/titanium,
/area/shuttle/administration)
+"Tc" = (
+/obj/structure/chair/office/dark{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
+"Td" = (
+/turf/simulated/wall/indestructible/syndicate/no_diagonal,
+/area/ghost_bar)
"Te" = (
/turf/simulated/wall/indestructible/riveted,
/area/centcom/gamma)
@@ -12647,6 +13611,12 @@
},
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
+"Th" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"Tj" = (
/obj/structure/chair/stool{
dir = 4
@@ -12767,6 +13737,15 @@
icon_state = "cafeteria"
},
/area/tdome/tdomeobserve)
+"TJ" = (
+/obj/machinery/door/airlock/hatch/syndicate{
+ req_access = null
+ },
+/turf/simulated/floor/plasteel{
+ dir = 10;
+ icon_state = "darkredfull"
+ },
+/area/ghost_bar)
"TK" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -12793,6 +13772,12 @@
icon_state = "bar"
},
/area/tdome/tdomeobserve)
+"TO" = (
+/obj/machinery/computer/cryopod{
+ pixel_y = -32
+ },
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"TP" = (
/obj/structure/table/reinforced,
/obj/item/clipboard,
@@ -12962,6 +13947,13 @@
/obj/item/lighter,
/turf/simulated/floor/wood,
/area/centcom/control)
+"Up" = (
+/obj/item/caution/proximity_sign,
+/obj/item/caution/proximity_sign,
+/obj/item/caution/proximity_sign,
+/obj/structure/rack,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"Uq" = (
/obj/structure/mirror/magic{
pixel_x = 28
@@ -13035,6 +14027,11 @@
/obj/structure/sign/poster/contraband/syndicate_recruitment/directional/north,
/turf/simulated/floor/plating/asteroid/ancient,
/area/ghost_bar)
+"UD" = (
+/obj/effect/landmark/spawner/antag_extract_warp,
+/obj/effect/turf_decal/delivery/red/hollow,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"UE" = (
/obj/machinery/computer/operating,
/turf/simulated/floor/plasteel/freezer,
@@ -13047,6 +14044,10 @@
icon_state = "whiteblue"
},
/area/shuttle/escape)
+"UG" = (
+/obj/machinery/cryopod/offstation,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"UH" = (
/obj/structure/chair/comfy/black,
/turf/simulated/floor/carpet/green,
@@ -13069,6 +14070,16 @@
icon_state = "snow"
},
/area/holodeck/source_snowfield)
+"UN" = (
+/obj/item/soap/syndie,
+/obj/structure/rack,
+/obj/item/soap/syndie,
+/obj/item/soap/syndie,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/reagent_containers/spray/cleaner,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"UO" = (
/turf/simulated/wall/indestructible/opsglass/limited_smooth,
/area/syndicate_mothership)
@@ -13079,15 +14090,19 @@
icon_state = "dark"
},
/area/ghost_bar)
-"US" = (
-/obj/structure/extinguisher_cabinet{
- pixel_y = -32
+"UR" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 1
},
-/turf/simulated/floor/plasteel{
- dir = 10;
- icon_state = "vault"
+/obj/structure/window/reinforced/tinted,
+/obj/machinery/door/window{
+ dir = 8;
+ name = "Toilet";
+ opacity = 1
},
-/area/centcom/specops)
+/obj/structure/toilet/directional/east,
+/turf/simulated/floor/plasteel/freezer,
+/area/ghost_bar)
"UT" = (
/obj/machinery/economy/vending/cola/free,
/turf/simulated/floor/plasteel{
@@ -13113,6 +14128,11 @@
},
/turf/simulated/floor/plasteel/dark,
/area/centcom/evac)
+"UX" = (
+/obj/structure/table/glass/reinforced/plastitanium,
+/obj/machinery/computer/security/telescreen,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"UZ" = (
/turf/simulated/floor/plasteel{
icon_state = "darkred"
@@ -13150,16 +14170,6 @@
icon_state = "red"
},
/area/centcom/evac)
-"Vh" = (
-/obj/structure/table/reinforced,
-/obj/machinery/cooking/grill/upgraded,
-/obj/item/stack/sheet/wood{
- amount = 30
- },
-/turf/simulated/floor/plasteel{
- icon_state = "cafeteria"
- },
-/area/ghost_bar)
"Vi" = (
/obj/structure/table/wood,
/obj/item/taperecorder,
@@ -13250,6 +14260,20 @@
icon_state = "bar"
},
/area/tdome/tdomeobserve)
+"Vz" = (
+/obj/machinery/computer/arcade/orion_trail{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/simulated/floor/carpet/arcade,
+/area/ghost_bar)
+"VA" = (
+/obj/structure/table/glass/reinforced/plastitanium,
+/obj/structure/sign/poster/contraband/revolver/directional/south,
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"VC" = (
/obj/item/rpd/bluespace,
/obj/item/rpd/bluespace,
@@ -13367,11 +14391,22 @@
icon_state = "brown"
},
/area/shuttle/escape)
+"VV" = (
+/obj/structure/flora/grass/brown,
+/turf/simulated/floor/plating/asteroid/snow,
+/area/space/centcomm)
"VW" = (
-/obj/machinery/cooking/ice_cream_mixer/upgraded,
-/turf/simulated/floor/plasteel{
- icon_state = "cafeteria"
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
},
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/table/glass/reinforced/plastitanium,
+/obj/item/storage/firstaid/o2{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/regular,
+/turf/simulated/floor/plasteel/freezer,
/area/ghost_bar)
"VX" = (
/obj/item/bikehorn/rubberducky,
@@ -13707,6 +14742,14 @@
},
/turf/simulated/floor/plating,
/area/centcom/specops)
+"WR" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/light/floor,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"WS" = (
/obj/effect/spawner/window/reinforced,
/obj/structure/sign/directions/engineering{
@@ -13748,6 +14791,44 @@
},
/turf/simulated/floor/wood,
/area/centcom/control)
+"WV" = (
+/obj/structure/rack,
+/obj/item/tank/internals/plasmaman/belt/full,
+/obj/item/tank/internals/plasmaman/belt/full,
+/obj/item/tank/internals/plasmaman/belt/full,
+/obj/item/tank/internals/plasmaman/belt/full,
+/obj/item/tank/internals/plasmaman/belt/full,
+/obj/item/tank/internals/plasmaman/belt/full,
+/obj/item/tank/internals/plasmaman/belt/full,
+/obj/item/tank/internals/plasmaman/belt/full,
+/obj/item/tank/internals/plasmaman/belt/full,
+/obj/item/tank/internals/plasmaman/belt/full,
+/obj/item/clothing/under/plasmaman,
+/obj/item/clothing/under/plasmaman,
+/obj/item/clothing/under/plasmaman,
+/obj/item/clothing/under/plasmaman,
+/obj/item/clothing/under/plasmaman,
+/obj/item/clothing/under/plasmaman,
+/obj/item/clothing/under/plasmaman,
+/obj/item/clothing/under/plasmaman,
+/obj/item/clothing/under/plasmaman,
+/obj/item/clothing/under/plasmaman,
+/obj/item/clothing/under/plasmaman,
+/obj/item/clothing/head/helmet/space/plasmaman,
+/obj/item/clothing/head/helmet/space/plasmaman,
+/obj/item/clothing/head/helmet/space/plasmaman,
+/obj/item/clothing/head/helmet/space/plasmaman,
+/obj/item/clothing/head/helmet/space/plasmaman,
+/obj/item/clothing/head/helmet/space/plasmaman,
+/obj/item/clothing/head/helmet/space/plasmaman,
+/obj/item/clothing/head/helmet/space/plasmaman,
+/obj/item/clothing/head/helmet/space/plasmaman,
+/obj/item/clothing/head/helmet/space/plasmaman,
+/turf/simulated/floor/plasteel{
+ dir = 9;
+ icon_state = "vault"
+ },
+/area/ghost_bar)
"WW" = (
/obj/item/kirbyplants/large,
/turf/simulated/floor/plasteel{
@@ -13977,6 +15058,12 @@
"XJ" = (
/turf/simulated/floor/plasteel/dark,
/area/syndicate_mothership)
+"XK" = (
+/obj/machinery/door/airlock/hatch/syndicate{
+ req_access = null
+ },
+/turf/simulated/floor/wood,
+/area/ghost_bar)
"XL" = (
/obj/structure/table,
/obj/machinery/cell_charger,
@@ -14013,8 +15100,8 @@
/turf/simulated/floor/plating/airless,
/area/shuttle/specops)
"XR" = (
+/obj/machinery/processor,
/obj/structure/sign/poster/official/fruit_bowl/directional/north,
-/obj/machinery/cooking/oven/upgraded,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -14144,6 +15231,10 @@
/obj/item/pen/blue,
/turf/simulated/floor/wood,
/area/centcom/control)
+"Yn" = (
+/obj/machinery/economy/vending/hatdispenser/free,
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"Yo" = (
/obj/structure/chair/comfy/purp{
name = "wizard council throne"
@@ -14291,6 +15382,12 @@
/obj/structure/railing,
/turf/simulated/floor/plasteel,
/area/centcom/evac)
+"YP" = (
+/obj/structure/table/reinforced,
+/turf/simulated/floor/plasteel{
+ icon_state = "cafeteria"
+ },
+/area/ghost_bar)
"YQ" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -14366,6 +15463,10 @@
icon_state = "bot"
},
/area/shuttle/escape)
+"YZ" = (
+/obj/machinery/economy/vending/syndisnack,
+/turf/simulated/floor/carpet/black,
+/area/ghost_bar)
"Za" = (
/obj/structure/closet/crate/engineering,
/obj/item/storage/toolbox/electrical{
@@ -14414,6 +15515,12 @@
"Ze" = (
/turf/simulated/floor/mineral/titanium/blue,
/area/shuttle/transport)
+"Zh" = (
+/obj/machinery/light/floor,
+/turf/simulated/floor/plasteel{
+ icon_state = "bar"
+ },
+/area/ghost_bar)
"Zi" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/simulated/floor/plasteel{
@@ -14539,6 +15646,20 @@
icon_state = "bar"
},
/area/syndicate_mothership)
+"Zz" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/economy/vending/medical/syndicate_access,
+/obj/machinery/economy/vending/medical/syndicate_access{
+ req_access = list()
+ },
+/obj/machinery/economy/vending/medical/syndicate_access{
+ req_access = list()
+ },
+/turf/simulated/floor/plasteel/dark,
+/area/ghost_bar)
"ZA" = (
/obj/machinery/defibrillator_mount/loaded{
pixel_x = -30
@@ -14564,13 +15685,6 @@
icon_state = "darkred"
},
/area/centcom/specops)
-"ZE" = (
-/obj/machinery/atmospherics/refill_station/nitrogen,
-/turf/simulated/floor/plasteel{
- dir = 5;
- icon_state = "vault"
- },
-/area/centcom/specops)
"ZF" = (
/obj/effect/turf_decal/delivery,
/obj/machinery/door/poddoor/multi_tile/impassable/quad{
@@ -14606,15 +15720,6 @@
icon_state = "darkred"
},
/area/centcom/specops)
-"ZK" = (
-/obj/structure/table/wood,
-/obj/machinery/light/small{
- dir = 4;
- pixel_y = 8
- },
-/obj/item/deck/tarot,
-/turf/simulated/floor/wood,
-/area/ghost_bar)
"ZL" = (
/obj/structure/showcase,
/turf/simulated/floor/wood,
@@ -33872,7 +34977,7 @@ Ji
Ra
Xz
RD
-ZE
+Of
Ra
Ra
Ra
@@ -35163,7 +36268,7 @@ uX
uX
uX
cC
-US
+Xz
Zr
NZ
ic
@@ -60880,8 +61985,8 @@ aN
aN
aN
aN
-aN
-aN
+ps
+ps
aN
aN
aN
@@ -61127,6 +62232,9 @@ aN
aN
aN
aN
+OK
+OK
+OK
aN
aN
aN
@@ -61134,17 +62242,14 @@ aN
aN
aN
aN
+OK
+ps
+OK
+ps
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
aN
aN
aN
@@ -61382,6 +62487,27 @@ aN
aN
aN
aN
+OK
+OK
+ps
+ps
+ps
+OK
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+OK
+OK
+ps
+ps
+OK
+OK
+ps
+OK
aN
aN
aN
@@ -61393,29 +62519,8 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+ps
+ps
aN
aN
aN
@@ -61638,6 +62743,29 @@ aN
aN
aN
aN
+OK
+ps
+ps
+ps
+ps
+ps
+ps
+OK
+aN
+aN
+aN
+aN
+YI
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+OK
+ps
+OK
aN
aN
aN
@@ -61648,31 +62776,8 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+ya
+ps
aN
aN
aN
@@ -61894,31 +62999,31 @@ aN
aN
aN
aN
+OK
+OK
+ps
+ps
+ps
+ps
+ps
+ps
+OK
+OK
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
+ps
+ps
+ps
+OK
+OK
+ps
+OK
+ps
+ps
+OK
aN
aN
aN
@@ -62151,31 +63256,31 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
+OK
+ps
+ps
+ps
+ps
+ps
+ps
+OK
+OK
+OK
+OK
+OK
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+OK
aN
aN
aN
@@ -62409,42 +63514,42 @@ aN
aN
aN
aN
+OK
aN
aN
+tL
+ps
+ps
+ps
+Me
+Me
+Nr
+Nr
+Nr
+Nr
+Me
+Me
+Me
+Me
+Me
+ps
+ps
+ps
+ps
+ps
+OK
+OK
+OK
+OK
+OK
+OK
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+Mu
+OK
+OK
+OK
+OK
aN
aN
aN
@@ -62670,39 +63775,39 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+tL
+ps
+ps
+Me
+Kp
+Pf
+Pf
+Pf
+Pf
+iu
+OU
+Pu
+zQ
+Me
+Me
+Me
+Me
+Me
+ps
+OK
+OK
+ps
+ps
+ps
+ps
+OK
+OK
+ps
+ps
+ps
+ps
+OK
+OK
aN
aN
aN
@@ -62929,37 +64034,37 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+tL
+Me
+xD
+Pf
+UQ
+Ko
+Pf
+LF
+Me
+Pu
+qe
+Me
+KW
+HG
+HG
+Me
+ps
+ps
+ps
+ps
+ps
+ps
+Me
+Nr
+Nr
+Me
+Me
+ps
+ps
+ps
+OK
aN
aN
aN
@@ -63176,47 +64281,47 @@ aN
aN
aN
aN
+Db
+aN
+aN
+aN
+Db
aN
aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+tL
+Me
+HD
+Pf
+XD
+WT
+Pf
+bi
+Me
+CI
+Pu
+Me
+Pu
+Pu
+Pu
+Me
+ps
+ps
+ps
+ps
+ps
+Me
+Me
+JP
+Bh
+On
+Me
+ps
+ps
+ps
+OK
aN
aN
aN
@@ -63434,46 +64539,46 @@ aN
aN
aN
aN
+Im
+Im
+Im
aN
aN
aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+tL
+Me
+Hc
+Pf
+fG
+WK
+Pf
+Fr
+Me
+CI
+Pu
+Pu
+Pu
+Pu
+Pu
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+MM
+sx
+sx
+NX
+Me
+ps
+ps
+ps
+OK
aN
aN
aN
@@ -63690,46 +64795,46 @@ aN
aN
aN
aN
+Im
+Im
+EI
+Im
+Im
+tL
+Db
aN
+tL
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+tL
+Me
+yk
+Pf
+Pf
+Pf
+Pf
+yv
+Me
+NC
+xW
+UR
+bD
+pw
+Lq
+Me
+UB
+tC
+tC
+tC
+tC
+tC
+tC
+tC
+tC
+tC
+Me
+ps
+ps
+OK
aN
aN
aN
@@ -63947,45 +65052,45 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+Im
+Da
+Da
+Ka
+Im
+tL
+tL
+tL
+tL
+tL
+fq
+Me
+Nr
+Nr
+LA
+NH
+Nr
+Nr
+Me
+Me
+Me
+SB
+Me
+Me
+Me
+Me
+Me
+QM
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+NX
+Me
+ps
+OK
aN
aN
aN
@@ -64204,45 +65309,45 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+Im
+Rb
+Da
+Ka
+Im
+Nr
+Nr
+Nr
+Nr
+Nr
+Nr
+nn
+hp
+Jy
+Jy
+Jy
+Jy
+Jy
+Ck
+rk
+rU
+xV
+Xa
+EP
+Uh
+Fm
+Jm
+Jy
+EJ
+Ma
+Nr
+mS
+ZY
+AB
+Me
+NX
+Me
+ps
+OK
aN
aN
aN
@@ -64461,45 +65566,45 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+Im
+PW
+Da
+Da
+Na
+EQ
+Pf
+zh
+zh
+Pf
+zh
+rS
+HH
+Jy
+Jy
+Jy
+Jy
+Jy
+Jy
+Ro
+rU
+xV
+Jy
+Np
+Wi
+rG
+WF
+Jy
+pl
+pl
+Nr
+Ag
+Ag
+Ag
+Me
+tC
+Me
+ps
+ps
aN
aN
aN
@@ -64718,45 +65823,45 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+Im
+Mt
+Da
+Da
+Na
+EQ
+zh
+zh
+Pf
+zh
+Pf
+rS
+HH
+Jy
+cX
+cX
+cX
+Jy
+Me
+sO
+LA
+zk
+Jy
+ip
+qH
+qH
+Jy
+Jy
+Jy
+Jy
+RK
+RK
+RK
+RK
+Me
+tC
+Me
+Me
+ps
aN
aN
aN
@@ -64975,46 +66080,46 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+Im
+Da
+Da
+Da
+Im
+ew
+Nr
+Nr
+Nr
+Nr
+Nr
+Me
+bJ
+Jy
+qN
+ym
+Ah
+Nh
+Me
+BH
+Jy
+LM
+Jy
+Jy
+Jy
+Jy
+Jy
+Jy
+Jy
+Jy
+RK
+RK
+RK
+CA
+Me
+NX
+Me
+Me
+ps
+OK
aN
aN
aN
@@ -65232,47 +66337,47 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+Im
+MZ
+wM
+dR
+Im
+tL
+tL
+tL
+tL
+tL
+fq
+zn
+yO
+Jy
+Ml
+Ml
+Ml
+Jy
+Me
+Ga
+Jy
+Jy
+Jy
+Jy
+Jy
+Jy
+Jy
+ol
+ol
+Jy
+Nr
+RK
+Tj
+Tj
+Me
+NX
+In
+Me
+ps
+ps
+OK
aN
aN
aN
@@ -65489,47 +66594,47 @@ aN
aN
aN
aN
+Im
+Jd
+Jd
+Jd
+Im
+tL
+Db
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+tL
+Nr
+Jy
+Jy
+vd
+vd
+vd
+rf
+Me
+ip
+Jy
+Jy
+Jy
+ip
+Jy
+Jy
+Jy
+rG
+qm
+Jy
+Nr
+ED
+zL
+zL
+Me
+tC
+NX
+Me
+ps
+ps
+OK
aN
aN
aN
@@ -65747,46 +66852,46 @@ aN
aN
aN
aN
+cD
+cD
+cD
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
+OK
+tL
+Nr
+Jy
+Jy
+vd
+cX
+vd
+xY
+Me
+wh
+rd
+rd
+rd
+rd
+rd
+qH
+Jy
+RX
+RX
+ep
+qR
+Nr
+Nr
+Nr
+Me
+tC
+NX
+Me
+ps
+ps
+ps
aN
aN
aN
@@ -66003,47 +67108,47 @@ aN
aN
aN
aN
+Db
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+Db
+OK
+yK
+OK
+yK
+OK
+OK
+Nr
+Jy
+Jy
+UH
+ym
+JX
+yO
+Me
+Pp
+Bj
+Bj
+jG
+Bj
+yc
+WB
+Jy
+Jy
+Jy
+Hz
+DG
+qH
+cR
+qH
+Me
+tC
+NX
+Me
+ps
+ps
+ps
aN
aN
aN
@@ -66264,43 +67369,43 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
+OK
+OK
+Xs
+yK
+OK
+Me
+Li
+Jy
+vd
+Ml
+vd
+xy
+Me
+et
+Jy
+Jy
+Jy
+Jy
+Bj
+WB
+Jy
+ip
+Jy
+Hz
+rU
+Al
+Dw
+eA
+Me
+tC
+sU
+Me
+ps
+ps
+ps
aN
aN
aN
@@ -66520,44 +67625,44 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
+OK
+OK
+ye
+OK
+OK
+ps
+Me
+xt
+Jy
+vd
+vd
+vd
+yO
+Me
+Jy
+Jy
+Jy
+Jy
+Jy
+jG
+WB
+Jy
+Jy
+qH
+Qv
+Pq
+rU
+rU
+fP
+Me
+tC
+Me
+Me
+ps
+ps
+ps
aN
aN
aN
@@ -66776,45 +67881,45 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
+OK
+OK
+OK
+OK
+yK
+ps
+ps
+Me
+Nr
+Pn
+Pn
+Pn
+Pn
+Nr
+Me
+WA
+Jy
+zl
+RN
+sF
+Bj
+WB
+Jy
+Jy
+qH
+qH
+Pi
+rU
+rU
+rU
+Me
+NX
+Me
+ps
+ps
+ps
+OK
aN
aN
aN
@@ -67033,45 +68138,45 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+ps
+OK
+OK
+OK
+OK
+OK
+ps
+ps
+Me
+yO
+Jy
+Jy
+Jy
+Jy
+Jy
+Me
+mz
+JI
+Me
+Me
+Me
+Me
+Me
+tr
+Jy
+qH
+Nm
+cg
+rU
+rU
+rU
+HZ
+oC
+Me
+ps
+ps
+ps
+OK
aN
aN
aN
@@ -67290,45 +68395,45 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+ps
+ps
+ps
+OK
+OK
+ps
+ps
+ps
+Me
+bJ
+Jy
+io
+KU
+yM
+Dm
+Me
+Fb
+es
+Oj
+zj
+fF
+rq
+Me
+xi
+ip
+Jy
+Hz
+rU
+Al
+Dw
+eA
+Me
+Me
+Me
+ps
+ps
+OK
+OK
aN
aN
aN
@@ -67547,45 +68652,45 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
ps
ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+ps
+ps
+ps
+ps
+ps
+Me
+zz
+Jy
+io
+Zq
+wF
+Bc
+Me
+LG
+es
+es
+es
+es
+es
+Uk
+Jy
+Jy
+Jy
+Hz
+eU
+zE
+Gp
+qH
+Me
+ps
+ps
+ps
+ps
+OK
+OK
aN
aN
aN
@@ -67806,43 +68911,43 @@ aN
aN
OK
OK
-OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-OK
+ps
+ps
+ps
+ps
+Td
+ps
+ps
+Me
+Mx
+Jy
+ll
+lu
+Sh
+Bc
+Me
+XR
+wN
+Dk
+EK
+xU
+zP
+Me
+eP
+Jy
+Jy
+nZ
+Me
+Me
+Me
+Me
+Me
+ps
+ps
+ps
ps
OK
-ps
-aN
-aN
OK
-OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
aN
aN
aN
@@ -68059,26 +69164,48 @@ aN
aN
aN
aN
-OK
+aN
+aN
OK
ps
ps
-ps
-OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-OK
-OK
+Td
+Td
+Td
+Td
+Td
+Td
+Me
+Me
+SI
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Me
+Td
+Td
+Td
+Td
+Td
+Td
+Td
ps
ps
OK
OK
-ps
OK
aN
aN
@@ -68091,28 +69218,6 @@ aN
aN
aN
aN
-ps
-ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
aN
aN
aN
@@ -68315,11 +69420,48 @@ aN
aN
aN
aN
-OK
+aN
+aN
ps
ps
ps
ps
+Td
+mS
+Vz
+ZY
+ZY
+Td
+Td
+Td
+rD
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+RF
+RF
+PF
+CH
+qz
+Td
+iW
+ps
+ps
ps
ps
OK
@@ -68327,43 +69469,6 @@ aN
aN
aN
aN
-YI
-OK
-OK
-OK
-OK
-OK
-OK
-OK
-OK
-ps
-OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-ya
-ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
aN
aN
aN
@@ -68571,11 +69676,48 @@ aN
aN
aN
aN
-OK
+aN
+aN
+aN
OK
ps
ps
ps
+Td
+FO
+uf
+uf
+uf
+Td
+Mq
+vv
+vv
+vv
+vv
+ut
+Td
+SH
+QS
+Du
+Gl
+Gl
+Td
+Yn
+yd
+vW
+Im
+yY
+rU
+BS
+Td
+KP
+eT
+CW
+WR
+Hw
+Td
+iW
+iW
ps
ps
ps
@@ -68584,43 +69726,6 @@ OK
aN
aN
aN
-OK
-OK
-ps
-ps
-ps
-OK
-OK
-ps
-OK
-ps
-ps
-OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
aN
aN
aN
@@ -68828,53 +69933,53 @@ aN
aN
aN
aN
-OK
+aN
+aN
OK
OK
ps
-ps
-ps
+Td
+Td
+Td
+RK
+RK
+RK
+RK
+Td
+OC
+Tc
+rU
+RQ
+de
+yt
+Td
+gC
+gC
+gC
+gC
+gC
+ve
+rU
+rU
+rU
+Im
+WV
+RQ
+rU
+BK
+CW
+CW
+CW
+ju
+PN
+Td
+PE
+iW
+iW
ps
ps
ps
OK
-OK
-OK
-OK
-OK
-ps
-ps
-ps
-ps
-ps
-ps
-ps
-ps
-ps
-ps
-OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
aN
aN
aN
@@ -69086,52 +70191,52 @@ aN
aN
aN
aN
+aN
OK
-aN
-aN
-tL
ps
ps
ps
-Me
-Me
-Nr
-Nr
-Nr
-Nr
-Me
-Me
-Me
-Me
-Me
+Td
+ED
+RK
+RK
+RK
+yB
+Td
+yP
+rU
+rU
+rU
+rU
+kr
+Td
+sH
+ER
+gC
+ER
+gC
+Im
+tP
+RQ
+rU
+zc
+rU
+rU
+BS
+Td
+kH
+Ay
+VW
+Zz
+Td
+Td
+tu
+PE
+iW
+iW
ps
ps
ps
-ps
-ps
-OK
-OK
-OK
-OK
-OK
-OK
-aN
-aN
-Mu
-OK
-OK
-OK
-OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
aN
aN
aN
@@ -69344,51 +70449,51 @@ aN
aN
aN
aN
-aN
-aN
-aN
-tL
-ps
-ps
-Me
-Kp
-Pf
-Pf
-Pf
-Pf
-iu
-OU
-Pu
-zQ
-Me
-Me
-Me
-Me
-Me
-ps
-OK
-OK
ps
ps
ps
ps
-OK
-OK
+Td
+mL
+RK
+RK
+kj
+Iw
+Td
+is
+nf
+rU
+RQ
+rU
+yW
+Td
+gC
+gC
+gC
+xw
+aq
+Td
+aT
+rU
+rU
+Td
+Qq
+rU
+BS
+Td
+Td
+Td
+Td
+Td
+Td
+PE
+PE
+PE
+PE
+iW
+iW
ps
ps
-ps
-ps
-OK
-OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
aN
aN
aN
@@ -69601,51 +70706,51 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-tL
-Me
-xD
-Pf
-UQ
-Ko
-Pf
-LF
-Me
-Pu
-qe
-Me
-KW
-HE
-HE
-Me
-ps
-ps
-ps
-ps
-ps
-ps
-Me
-Nr
-Nr
-Me
-Me
-ps
-ps
-ps
OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+ps
+ps
+ps
+Td
+zL
+Bx
+RK
+Iw
+Td
+Td
+Td
+wJ
+si
+si
+si
+bL
+Td
+HE
+hz
+hz
+Td
+Td
+Td
+Td
+CN
+KQ
+Td
+RJ
+RQ
+BS
+Td
+la
+rU
+bj
+UD
+Td
+PE
+PE
+PE
+PE
+PE
+iW
+ps
+ps
aN
aN
aN
@@ -69853,56 +70958,56 @@ aN
aN
aN
aN
-Db
-aN
-aN
-aN
-Db
aN
aN
aN
aN
-aN
-tL
-Me
-HD
-Pf
-XD
-WT
-Pf
-bi
-Me
-CI
-Pu
-Me
-Pu
-Pu
-Pu
-Me
-ps
-ps
-ps
-ps
-ps
-Me
-Me
-JP
-Bh
-On
-Me
-ps
-ps
-ps
OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+ps
+ps
+Td
+Td
+Td
+Td
+Td
+EB
+Td
+Td
+FI
+Td
+Td
+Td
+TJ
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+GH
+eu
+Td
+Td
+Td
+Td
+Qq
+rU
+BS
+Td
+Ca
+rU
+bj
+UD
+Td
+PE
+PE
+lE
+tu
+PE
+iW
+ps
+ps
aN
aN
aN
@@ -70111,44 +71216,54 @@ aN
aN
aN
aN
-Im
-Im
-Im
aN
aN
aN
-aN
-aN
-aN
-tL
-Me
-Hc
-Pf
-fG
-WK
-Pf
-Fr
-Me
-CI
-Pu
-Pu
-Pu
-Pu
-Pu
-Me
-Me
-Me
-Me
-Me
-Me
-Me
-MM
-sx
-sx
-NX
-Me
+OK
ps
ps
+Td
+rU
+tS
+xm
+xm
+rU
+xm
+sI
+xm
+xm
+xm
+xm
+rU
+xm
+xm
+xm
+xm
+sI
+xm
+xm
+xm
+xm
+xm
+xm
+xm
+xm
+rU
+rU
+BS
+Td
+Ph
+RQ
+bj
+UD
+Td
+PE
+PE
+PE
+PE
+PE
+iW
+ps
ps
OK
aN
@@ -70163,16 +71278,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
SL
HN
HN
@@ -70367,43 +71472,54 @@ wk
aN
aN
aN
-Im
-Im
-EI
-Im
-Im
-tL
-Db
aN
-tL
aN
-tL
-Me
-yk
-Pf
-Pf
-Pf
-Pf
-yv
-Me
-yI
-zw
-QZ
-DT
-wI
-Lq
-Me
-UB
-tC
-tC
-tC
-tC
-tC
-tC
-tC
-tC
-tC
-Me
+aN
+aN
+OK
+ps
+ps
+Td
+rU
+Th
+RQ
+rU
+rU
+RQ
+rU
+rU
+RQ
+rU
+rU
+RQ
+rU
+rU
+RQ
+rU
+rU
+RQ
+rU
+rU
+RQ
+rU
+rU
+RQ
+rU
+rU
+RQ
+rU
+zc
+rU
+rU
+Sv
+Td
+Td
+PE
+PE
+VV
+PE
+PE
+iW
ps
ps
OK
@@ -70419,17 +71535,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
SL
HN
HF
@@ -70624,43 +71729,55 @@ wk
wk
aN
aN
-Im
-Da
-Da
-Ka
-Im
-tL
-tL
-tL
-tL
-tL
-fq
-Me
-Nr
-Nr
-LA
-NH
-Nr
-Nr
-Me
-Me
-Me
-SB
-Me
-Me
-Me
-Me
-Me
-QM
-Me
-Me
-Me
-Me
-Me
-Me
-Me
-NX
-Me
+aN
+aN
+aN
+ps
+ps
+ps
+ps
+Td
+rU
+py
+Qq
+rU
+rU
+Qq
+Qq
+Qq
+Qq
+Qq
+Qq
+rU
+Qq
+Qq
+Qq
+rU
+rU
+Qq
+Qq
+Qq
+rU
+rU
+Qq
+Qq
+Qq
+Qq
+Qq
+BS
+Td
+iA
+UX
+CL
+Td
+PE
+PE
+PE
+tu
+PE
+PE
+iW
+ps
ps
OK
aN
@@ -70675,18 +71792,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
SL
HN
HN
@@ -70881,43 +71986,55 @@ lH
aN
aN
aN
-Im
-Rb
-Da
-Ka
-Im
-Nr
-Nr
-Nr
-Nr
-Nr
-Nr
-nn
-hp
-Jy
-Jy
-Jy
-Jy
-Jy
-Ck
-rk
+aN
+aN
+aN
+aN
+ps
+ps
+ps
+Td
+Td
+Td
+Td
+XK
+XK
+Td
+Td
+Td
+Td
+Td
+Td
+XK
+Td
+Td
+Td
+OS
+OS
+Td
+Td
+Qq
rU
-xV
-Xa
-EP
-Uh
-Fm
-Jm
-Jy
-EJ
-Ma
-Nr
-mS
-ZY
-AB
-Me
-NX
-Me
+BS
+Td
+Td
+NJ
+NJ
+NJ
+Td
+Td
+NJ
+NJ
+NJ
+Td
+fH
+PE
+PE
+PE
+PE
+PE
+iW
+ps
ps
OK
aN
@@ -70932,18 +72049,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
SL
HN
HN
@@ -71138,57 +72243,57 @@ lH
aN
aN
aN
-Im
-PW
-Da
-Da
-Na
-EQ
-Pf
-zh
-zh
-Pf
-zh
-rS
-HH
+aN
+aN
+aN
+aN
+ps
+ps
+ps
+Td
+zH
+bn
Jy
Jy
Jy
Jy
+bn
+Jy
+JT
+Td
+lp
Jy
Jy
-Ro
+oc
+SW
+OS
+OS
+OS
+Td
+Qq
rU
-xV
-Jy
-Np
-Wi
-rG
-WF
-Jy
-pl
-pl
-Nr
-Ag
-Ag
-Ag
-Me
-tC
-Me
+BS
+Td
+PE
+PE
+PE
+PE
+tu
+PE
+PE
+PE
+PE
+PE
+PE
+PE
+PE
+lE
+PE
+PE
+iW
ps
-ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
aN
aN
aN
@@ -71395,57 +72500,57 @@ lH
aN
aN
aN
-Im
-Mt
-Da
-Da
-Na
-EQ
-zh
-zh
-Pf
-zh
-Pf
-rS
-HH
-Jy
-cX
-cX
-cX
-Jy
-Me
-sO
-LA
-zk
-Jy
-ip
-qH
-qH
-Jy
-Jy
-Jy
-Jy
-OB
-RK
-RK
-RK
-Me
-tC
-Me
-Me
+aN
+aN
+aN
+aN
ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+ps
+ps
+Td
+Kt
+Kt
+Kt
+Jy
+Jy
+Jy
+Jy
+Jy
+yM
+Td
+Jo
+Jy
+Jy
+jc
+SW
+Zh
+OS
+OS
+OS
+rU
+RQ
+BS
+NJ
+PE
+PE
+lE
+PE
+PE
+PE
+PE
+PE
+PE
+PE
+PE
+tu
+PE
+PE
+PE
+PE
+iW
+ps
+OK
+OK
aN
aN
aN
@@ -71652,57 +72757,57 @@ wk
wk
aN
aN
-Im
-Da
-Da
-Da
-Im
-ew
-Nr
-Nr
-Nr
-Nr
-Nr
-Me
-bJ
-Jy
-qN
-ym
-Ah
-Nh
-Me
-BH
-Jy
-LM
+aN
+aN
+aN
+aN
+ps
+ps
+ps
+Td
+xQ
+wF
+hg
Jy
Jy
+yO
+yO
Jy
+yO
+Td
+ef
+zr
Jy
-Jy
-Jy
-Jy
-Jy
-RK
-RK
-RK
-CA
-Me
-NX
-Me
-Me
+jc
+SW
+OS
+OS
+OS
+OS
+rU
+rU
+BS
+NJ
+VV
+PE
+PE
+fH
+PE
+PE
+PE
+PE
+PE
+PE
+tu
+PE
+PE
+VV
+PE
+PE
+iW
ps
OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
aN
aN
aN
@@ -71909,44 +73014,54 @@ wk
aN
aN
aN
-Im
-MZ
-wM
-dR
-Im
-tL
-tL
-tL
-tL
-tL
-fq
-zn
+aN
+aN
+aN
+aN
+ps
+ps
+Td
+Td
+Zq
+kK
+QW
+Jy
+Jy
+yO
yO
Jy
-Ml
-Ml
-Ml
-Jy
-Me
-Ga
+yO
+Td
+to
Jy
Jy
-Jy
-Jy
-Jy
-Jy
-Jy
-ol
-ol
-Jy
-Nr
-RK
-Tj
-Tj
-Me
-NX
-In
-Me
+jc
+SW
+OS
+OS
+OS
+OS
+rU
+rU
+BS
+NJ
+PE
+jw
+PE
+PE
+PE
+lE
+PE
+fH
+PE
+PE
+PE
+lE
+PE
+PE
+PE
+PE
+iW
ps
ps
OK
@@ -71962,16 +73077,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
SL
HN
LV
@@ -72166,46 +73271,55 @@ aN
aN
aN
aN
-Im
-Jd
-Jd
-Jd
-Im
-tL
-Db
aN
aN
aN
-tL
-Nr
-Jy
-Jy
-vd
-vd
-vd
-rf
-Me
-ip
-Jy
-Jy
-Jy
-ip
-Jy
-Jy
-Jy
-rG
-qm
-Jy
-Nr
-ED
-zL
-zL
-Me
-tC
-NX
-Me
+aN
ps
ps
+ps
+Td
+NN
+NN
+NN
+Jy
+Jy
+yO
+yO
+yJ
+yO
+Td
+mz
+Jy
+Jy
+EJ
+SW
+OS
+OS
+OS
+OS
+rU
+rU
+BS
+NJ
+PE
+fH
+PE
+PE
+PE
+PE
+PE
+PE
+VV
+PE
+PE
+PE
+PE
+PE
+lE
+iW
+iW
+ps
OK
aN
aN
@@ -72220,15 +73334,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
SL
HN
LV
@@ -72424,55 +73529,55 @@ aN
aN
aN
aN
-cD
-cD
-cD
aN
aN
aN
OK
+ps
+ps
+Td
+RM
+fQ
+Jy
+Jy
+Jy
+yO
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+OS
+OS
+OS
+OS
+OS
+rU
+RQ
+BS
+Td
+PE
+PE
+PE
+PE
+PE
+PE
+PE
+tu
+PE
+PE
+PE
+PE
+tu
+PE
+PE
+iW
+ps
+ps
OK
-OK
-tL
-Nr
-Jy
-Jy
-vd
-cX
-vd
-xY
-Me
-wh
-rd
-rd
-rd
-rd
-rd
-qH
-Jy
-RX
-RX
-ep
-qR
-Nr
-Nr
-Nr
-Me
-tC
-NX
-Me
-ps
-ps
-ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
aN
aN
aN
@@ -72680,55 +73785,55 @@ aN
aN
aN
aN
-Db
aN
aN
aN
-Db
+aN
OK
-yK
-OK
-yK
-OK
-OK
-Nr
+ps
+ps
+Td
+Td
+Td
+Td
+tr
Jy
-Jy
-UH
-ym
-JX
yO
-Me
-Pp
-Bj
-Bj
-jG
-Bj
-yc
-WB
-Jy
-Jy
-Jy
-Hz
-DG
-qH
-cR
-qH
-Me
-tC
-NX
-Me
+Td
+go
+es
+es
+es
+es
+li
+SW
+OS
+OS
+OS
+OS
+Im
+Qq
+rU
+BS
+Td
+Td
+NJ
+NJ
+NJ
+NJ
+NJ
+Td
+Td
+PE
+lE
+fH
+PE
+PE
+PE
+iW
+iW
ps
-ps
-ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
aN
aN
aN
@@ -72943,48 +74048,48 @@ aN
aN
OK
OK
-OK
-OK
-Xs
-yK
-OK
-Me
-Li
-Jy
-vd
-Ml
-vd
-xy
-Me
-et
+ps
+ps
+ps
+ps
+Td
Jy
Jy
-Jy
-Jy
-Bj
-WB
-Jy
-ip
-Jy
-Hz
+yO
+Td
+go
+es
+eV
+es
+es
+YP
+SW
+OS
+Zh
+OS
+gM
+Td
+Qq
rU
+BS
+Td
+QY
+Go
+RX
+RX
+RX
Al
-Dw
-eA
-Me
-tC
-sU
-Me
+Ni
+Td
+PE
+PE
+PE
+iW
+iW
+iW
+iW
ps
-ps
-ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
aN
aN
aN
@@ -73197,41 +74302,48 @@ aN
aN
aN
aN
-OK
-OK
-OK
-OK
-ye
+aN
+aN
OK
OK
ps
-Me
-xt
-Jy
-vd
-vd
-vd
-yO
-Me
-Jy
-Jy
-Jy
-Jy
-Jy
-jG
-WB
+ps
+ps
+Td
Jy
Jy
+CV
+Td
+Dk
+es
+zY
+YP
+es
+YP
+SW
+OS
+OS
+OS
+uI
+Td
+Qq
+rU
+BS
+Td
qH
-Qv
-Pq
-rU
-rU
-fP
-Me
-tC
-Me
-Me
+qH
+qH
+qH
+qH
+Al
+Ni
+Td
+iW
+iW
+iW
+iW
+ps
+ps
ps
ps
OK
@@ -73295,13 +74407,6 @@ aN
aN
aN
aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
"}
(229,1,1) = {"
af
@@ -73453,51 +74558,51 @@ aN
aN
aN
aN
+aN
+aN
+aN
OK
OK
-OK
-OK
-OK
-OK
-yK
ps
ps
-Me
-Nr
-Pn
-Pn
-Pn
-Pn
-Nr
-Me
-WA
-Jy
-zl
-RN
-sF
-Bj
-WB
-Jy
-Jy
+ps
+Td
+yO
+yO
+yO
+Td
+ss
+es
+SX
+YP
+es
+YP
+SW
+OS
+OS
+OS
+Fv
+Td
+Qq
+RQ
+rU
+zc
+rU
+RQ
+rU
+rU
+RQ
qH
-qH
-Pi
-rU
-rU
-rU
-Me
-NX
-Me
+VA
+Td
+Td
+Td
ps
ps
ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+ps
+ps
+OK
aN
aN
aN
@@ -73710,51 +74815,51 @@ aN
aN
aN
aN
-OK
-ps
-OK
-OK
-OK
+aN
+aN
+aN
+aN
OK
OK
ps
-ps
-Me
-yO
-Jy
-Jy
-Jy
-Jy
-Jy
-Me
-mz
-JI
-Me
-Me
-Me
-Me
-Me
-tr
-Jy
+Td
+Td
+Td
+Td
+Td
+Td
+YP
+es
+Kl
+YP
+es
+Td
+Td
+Td
+Td
+uG
+Td
+Td
+Qq
+rU
+BS
+Td
+bZ
+qH
+qH
qH
-Nm
-cg
rU
-rU
-rU
-HZ
-oC
-Me
+qH
+YZ
+Td
+bQ
+Td
+ps
ps
ps
OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
aN
aN
aN
@@ -73968,49 +75073,49 @@ aN
aN
aN
aN
-ps
-ps
-ps
+aN
+aN
+aN
OK
OK
ps
ps
ps
-Me
-bJ
-Jy
-io
-KU
-yM
-Dm
-Me
-Fb
+ps
+ps
+ps
+Td
+SR
es
-Oj
-zj
-fF
-rq
-Me
-xi
-ip
-Jy
-Hz
+YP
+YP
+es
+YP
+YP
+YP
+Pz
+es
+PZ
+Td
+Qq
rU
-Al
-Dw
-eA
-Me
-Me
-Me
-ps
+BS
+Td
+QK
+yy
+yy
+qH
+rU
+rU
+Td
+Td
+Td
+Td
+Td
+Td
ps
OK
-aN
-aN
-aN
-aN
-aN
-aN
+OK
aN
aN
aN
@@ -74226,47 +75331,47 @@ aN
aN
aN
aN
+aN
+aN
+aN
+OK
+OK
ps
ps
ps
ps
ps
-ps
-ps
-Me
-zz
-Jy
-io
-Zq
-wF
-Bc
-Me
-LG
+Td
+rq
+es
+eV
es
es
+eV
es
es
+eV
es
-Uk
-Jy
-ol
-ol
-Hz
-lj
-zE
-Gp
+wP
+Td
+Td
+zc
+Td
+Td
+ok
+xG
+yy
qH
-Me
+RQ
+rU
+Td
+EM
+EM
+EM
+EM
+Td
ps
-ps
-ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
aN
aN
aN
@@ -74484,47 +75589,47 @@ aN
aN
aN
aN
+aN
+aN
+aN
+OK
OK
OK
ps
ps
ps
-ps
-Me
-Mx
-Cn
-io
-ZK
-Sh
-Bc
-Me
-XR
+Td
+LG
es
-Dk
-zY
es
-zP
-Me
-Jy
-rG
-hU
-LM
-Me
-Me
-Me
-Me
-Me
+es
+es
+es
+es
+es
+es
+es
+hR
+Td
+pu
+RQ
+Up
+Td
+Sr
+Rd
+yy
+qH
+rU
+rU
+zc
+rU
+rU
+RQ
+TO
+Td
ps
ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
aN
aN
aN
@@ -74743,45 +75848,45 @@ aN
aN
aN
aN
+aN
+aN
OK
ps
ps
ps
-Me
-Me
-Me
-Me
-Me
-Me
-Me
-Me
-qk
+Td
+Td
+Td
+Oj
+zj
+fF
es
-Vh
-sH
-es
-Bn
-Me
-Jy
-RX
-RX
-Jy
-Me
+VR
+YP
+Td
+Td
+Td
+Td
+Td
+UN
+pX
+Gb
+Td
+rm
+kW
+kW
+LE
+rU
+hf
+Td
+UG
+UG
+UG
+UG
+Td
ps
ps
-ps
-ps
-ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
aN
aN
aN
@@ -75001,44 +76106,44 @@ aN
aN
aN
aN
+aN
+OK
OK
OK
ps
ps
ps
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
ps
ps
ps
-ps
-ps
-Me
-VW
-es
-es
-es
-es
-es
-Me
-gS
-xY
-Me
-Me
-Me
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
+Td
ps
ps
OK
-OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
aN
aN
aN
@@ -75259,43 +76364,43 @@ aN
aN
aN
aN
-aN
-OK
-ps
-ps
-ps
-ps
-ps
-ps
-ps
-Me
-VR
-es
-xU
-Jo
-wN
-hR
-Me
-Me
-Me
-Me
-ps
-ps
ps
OK
OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
+ps
+ps
+ps
+ps
+Td
+ps
+ps
+ps
+Td
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+Td
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
aN
aN
aN
@@ -75518,41 +76623,41 @@ aN
aN
aN
aN
+aN
+aN
OK
OK
ps
ps
ps
+ps
+ps
+OK
+ps
+ps
+ps
OK
ps
-Me
-Me
-Me
-Me
-Me
-Me
-Me
-Me
ps
ps
-Me
+ps
+ps
+ps
+ps
+Td
+ps
+ps
+ps
+ps
+ps
+ps
+ps
ps
ps
OK
-OK
ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+ps
+OK
aN
aN
aN
@@ -75777,9 +76882,22 @@ aN
aN
aN
aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+OK
+OK
+OK
+OK
+OK
+OK
+OK
OK
-ps
-ps
OK
OK
ps
@@ -75788,26 +76906,13 @@ ps
ps
ps
ps
-ps
-ps
-ps
-ps
-Me
-ps
OK
OK
-ps
-ps
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
+OK
+OK
+OK
aN
aN
aN
@@ -76035,8 +77140,18 @@ aN
aN
aN
aN
-OK
-OK
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
+aN
aN
aN
OK
@@ -76045,23 +77160,13 @@ OK
OK
OK
OK
-OK
-OK
-aN
-ps
ps
OK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+OK
+OK
+OK
+OK
+OK
aN
aN
aN
@@ -76308,12 +77413,12 @@ aN
aN
aN
aN
-ps
-aN
-aN
aN
aN
aN
+OK
+OK
+OK
aN
aN
aN
diff --git a/code/_globalvars/mapping_vars.dm b/code/_globalvars/mapping_vars.dm
index acc6042b5f0..281d279806d 100644
--- a/code/_globalvars/mapping_vars.dm
+++ b/code/_globalvars/mapping_vars.dm
@@ -22,6 +22,7 @@ GLOBAL_LIST_EMPTY(newplayer_start)
GLOBAL_LIST_EMPTY(latejoin)
GLOBAL_LIST_EMPTY(prisonwarp) //prisoners go to these
GLOBAL_LIST_EMPTY(syndieprisonwarp) //contractor targets go to these
+GLOBAL_LIST_EMPTY(antagextractwarp) // exfiltrating antags go here
GLOBAL_LIST_EMPTY(backroomswarp) //backrooms hallucinators go to these
GLOBAL_LIST_EMPTY(xeno_spawn)//Aliens spawn at these.
GLOBAL_LIST_EMPTY(ertdirector)
diff --git a/code/datums/outfits/outfit_ghostbar.dm b/code/datums/outfits/outfit_ghostbar.dm
new file mode 100644
index 00000000000..617564cb2e3
--- /dev/null
+++ b/code/datums/outfits/outfit_ghostbar.dm
@@ -0,0 +1,94 @@
+/datum/outfit/admin/ghostbar_antag
+ name = "Ghostly Antagonist"
+
+ l_ear = /obj/item/radio/headset/deadsay
+ l_pocket = /obj/item/stack/spacecash/c1000
+ id = /obj/item/card/id/syndicate
+ backpack_contents = list(
+ /obj/item/storage/box/engineer = 1,
+ /obj/item/flashlight = 1
+ )
+
+/datum/outfit/admin/ghostbar_antag/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+ . = ..()
+ if(visualsOnly)
+ return
+
+ var/obj/item/card/id/our_id = H.wear_id
+ if(!istype(our_id))
+ return
+ apply_to_card(our_id, H, list(ACCESS_MAINT_TUNNELS), name)
+ our_id.assignment = src.name
+ our_id.registered_name = H.real_name
+ our_id.sex = capitalize(H.gender)
+ our_id.age = H.age
+ our_id.name = "[our_id.registered_name]'s ID Card ([our_id.assignment])"
+ our_id.photo = get_id_photo(H)
+ our_id.owner_uid = H.UID()
+ our_id.owner_ckey = H.ckey
+ our_id.icon_state = "syndie"
+ H.job = src.name
+
+ H.mind.assigned_role = src.name
+ H.mind.special_role = src.name
+ H.mind.offstation_role = TRUE
+
+ H.sec_hud_set_ID()
+
+/datum/outfit/admin/ghostbar_antag/syndicate
+ name = "Syndicate Agent"
+
+ uniform = /obj/item/clothing/under/syndicate
+ suit = /obj/item/clothing/suit/jacket/bomber/syndicate
+ back = /obj/item/storage/backpack
+ gloves = /obj/item/clothing/gloves/combat
+ shoes = /obj/item/clothing/shoes/combat
+ backpack_contents = list(
+ /obj/item/storage/box/engineer = 1,
+ /obj/item/flashlight = 1,
+ /obj/item/food/syndidonkpocket = 1,
+ /obj/item/gun/projectile/automatic/toy/pistol = 1,
+ /obj/item/ammo_box/magazine/toy/pistol = 2
+ )
+
+/datum/outfit/admin/ghostbar_antag/vampire
+ name = "Vampire"
+
+ uniform = /obj/item/clothing/under/suit/black
+ suit = /obj/item/clothing/suit/draculacoat
+ neck = /obj/item/clothing/neck/cloak
+ back = /obj/item/storage/backpack
+ gloves = /obj/item/clothing/gloves/color/black
+ shoes = /obj/item/clothing/shoes/black
+ backpack_contents = list(
+ /obj/item/storage/box/engineer = 1,
+ /obj/item/reagent_containers/iv_bag/blood/o_plus = 3
+ )
+
+/datum/outfit/admin/ghostbar_antag/changeling
+ name = "Changeling"
+
+ uniform = /obj/item/clothing/under/chameleon
+ suit = /obj/item/clothing/suit/chameleon
+ neck = /obj/item/clothing/neck/chameleon
+ back = /obj/item/storage/backpack/chameleon
+ gloves = /obj/item/clothing/gloves/chameleon
+ shoes = /obj/item/clothing/shoes/chameleon
+ backpack_contents = list(
+ /obj/item/storage/box/engineer = 1,
+ /obj/item/toy/foamblade = 1
+ )
+
+/datum/outfit/admin/ghostbar_antag/mindflayer
+ name = "Mindflayer"
+
+ uniform = /obj/item/clothing/under/psysuit
+ suit = /obj/item/clothing/suit/blacktrenchcoat
+ neck = /obj/item/clothing/neck/cloak
+ back = /obj/item/storage/backpack
+ gloves = /obj/item/clothing/gloves/color/black
+ shoes = /obj/item/clothing/shoes/black
+ backpack_contents = list(
+ /obj/item/storage/box/engineer = 1,
+ /obj/item/toy/plushie/ipcplushie = 1
+ )
diff --git a/code/datums/uplink_items/uplink_traitor.dm b/code/datums/uplink_items/uplink_traitor.dm
index 55651388d52..e88a6423441 100644
--- a/code/datums/uplink_items/uplink_traitor.dm
+++ b/code/datums/uplink_items/uplink_traitor.dm
@@ -581,6 +581,14 @@
cost = 50
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
+/datum/uplink_item/device_tools/extraction_beacon
+ name = "Extraction Flare"
+ desc = "A special flare used to call in an extraction portal. The portal takes time to generate, and will only work in certain rooms that it is pre-calibrated for. The Syndicate withholds the right to deny a portal to agents with certain objectives."
+ reference = "EXTF"
+ item = /obj/item/wormhole_jaunter/extraction
+ limited_stock = 1
+ excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
+
/datum/uplink_item/device_tools/hyper_medipen
name = "Hyper-regenerative Medipen"
desc = "An autoinjector filled with a variety of medical chemicals. It rapidly heals conventional injuries and genetic damage, but loses potency just as quickly. May have side effects if multiple are used in quick succession."
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index 74d6e7e6c20..4d5bbdcc099 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -72,6 +72,9 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
/datum/objective/proc/found_target()
return target
+/datum/objective/proc/is_valid_exfiltration()
+ return TRUE
+
/**
* This is for objectives that need to register signals, so place them in here.
*/
@@ -215,6 +218,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
explanation_text = "Free Objective"
/datum/objective/assassinate/check_completion()
+ if(..())
+ return TRUE
if(target?.current)
if(target.current.stat == DEAD)
return TRUE
@@ -271,6 +276,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
return TARGET_INVALID_NOTHEAD
/datum/objective/mutiny/check_completion()
+ if(..())
+ return TRUE
if(target?.current)
if(target.current.stat == DEAD || !ishuman(target.current) || !target.current.ckey || !target.current.client)
return TRUE
@@ -334,6 +341,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
/datum/objective/debrain/check_completion()
if(!target) // If it's a free objective.
return TRUE
+ if(..())
+ return TRUE
if(!target.current || !isbrain(target.current))
return FALSE
for(var/datum/mind/M in get_owners())
@@ -358,6 +367,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
/datum/objective/protect/check_completion()
if(!target) //If it's a free objective.
return TRUE
+ if(..())
+ return TRUE
if(target.current)
if(target.current.stat == DEAD)
return FALSE
@@ -395,6 +406,9 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
return FALSE
return SSshuttle.emergency.is_hijacked()
+/datum/objective/hijack/is_valid_exfiltration()
+ return FALSE
+
/datum/objective/hijackclone
name = "Hijack (with clones)"
explanation_text = "Hijack the shuttle by ensuring only you (or your copies) escape."
@@ -453,7 +467,9 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
explanation_text = "Escape on the shuttle or an escape pod alive and free."
needs_target = FALSE
-/datum/objective/escape/check_completion()
+/datum/objective/escape/check_completion(exfilling = FALSE)
+ if(..())
+ return TRUE
var/list/owners = get_owners()
for(var/datum/mind/M in owners)
// These are mandatory conditions, they should come before the freebie conditions below.
@@ -464,6 +480,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
return TRUE
if(SSticker.mode.station_was_nuked) // If they escaped the blast somehow, let them win.
return TRUE
+ if(exfilling)
+ return TRUE
if(SSshuttle.emergency.mode < SHUTTLE_ENDGAME)
return FALSE
@@ -536,7 +554,9 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
// This objective should only be given to a single owner since only 1 person can have the ID card of the target.
// We're fine to use `owner` instead of `get_owners()`.
-/datum/objective/escape/escape_with_identity/check_completion()
+/datum/objective/escape/escape_with_identity/check_completion(exfilling = FALSE)
+ if(..())
+ return TRUE
if(!target_real_name)
return TRUE
if(!ishuman(owner.current))
@@ -554,6 +574,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
needs_target = FALSE
/datum/objective/survive/check_completion()
+ if(..())
+ return TRUE
for(var/datum/mind/M in get_owners())
if(QDELETED(M.current) || M.current.stat == DEAD || is_special_dead(M.current, check_silicon = FALSE))
return FALSE
@@ -576,6 +598,11 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
/datum/objective/steal/found_target()
return steal_target
+/datum/objective/steal/is_valid_exfiltration()
+ if(istype(steal_target, /datum/theft_objective/nukedisc) || istype(steal_target, /datum/theft_objective/plutonium_core))
+ return FALSE
+ return TRUE
+
/datum/objective/steal/proc/get_location()
return steal_target.location_override || "an unknown area"
@@ -651,6 +678,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
/datum/objective/steal/check_completion()
if(!steal_target)
return TRUE // Free Objective
+ if(..())
+ return TRUE
for(var/datum/mind/M in get_owners())
if(!M.current)
@@ -733,6 +762,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
explanation_text = "Acquire [target_amount] compatible genomes. The 'Extract DNA Sting' can be used to stealthily get genomes without killing somebody."
/datum/objective/absorb/check_completion()
+ if(..())
+ return TRUE
for(var/datum/mind/M in get_owners())
var/datum/antagonist/changeling/cling = M?.has_antag_datum(/datum/antagonist/changeling)
if(cling?.absorbed_dna && (cling.absorbed_count >= target_amount))
@@ -758,6 +789,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
explanation_text = "Free Objective"
/datum/objective/destroy/check_completion()
+ if(..())
+ return TRUE
if(target?.current)
if(target.current.stat == DEAD || is_away_level(target.current.z) || !target.current.ckey)
return TRUE
@@ -778,6 +811,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
wanted_items = typecacheof(wanted_items)
/datum/objective/steal_five_of_type/check_completion()
+ if(..())
+ return TRUE
var/stolen_count = 0
var/list/owners = get_owners()
var/list/all_items = list()
@@ -805,6 +840,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
..()
/datum/objective/steal_five_of_type/summon_magic/check_completion()
+ if(..())
+ return TRUE
var/stolen_count = 0
var/list/owners = get_owners()
var/list/all_items = list()
@@ -843,6 +880,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
explanation_text = "Accumulate at least [target_amount] total units of blood."
/datum/objective/blood/check_completion()
+ if(..())
+ return TRUE
for(var/datum/mind/M in get_owners())
var/datum/antagonist/vampire/V = M.has_antag_datum(/datum/antagonist/vampire)
if(V.bloodtotal >= target_amount)
@@ -870,6 +909,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
explanation_text = "Accumulate at least [target_amount] worth of swarms."
/datum/objective/swarms/check_completion()
+ if(..())
+ return TRUE
for(var/datum/mind/M in get_owners())
var/datum/antagonist/mindflayer/flayer = M.has_antag_datum(/datum/antagonist/mindflayer)
return flayer?.total_swarms_gathered >= target_amount
@@ -930,6 +971,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
needs_target = FALSE
/datum/objective/potentially_backstabbed/check_completion()
+ if(..())
+ return TRUE
for(var/datum/mind/M in get_owners())
var/datum/antagonist/traitor/T = M.has_antag_datum(/datum/antagonist/traitor)
for(var/datum/objective/our_objective in T.get_antag_objectives(FALSE))
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 1adfb2f78c5..8067481defc 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -198,6 +198,13 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp
spawner_list = GLOB.syndieprisonwarp
return ..()
+/obj/effect/landmark/spawner/antag_extract_warp
+ name = "antagextractwarp"
+
+/obj/effect/landmark/spawner/antag_extract_warp/Initialize(mapload)
+ spawner_list = GLOB.antagextractwarp
+ return ..()
+
/obj/effect/landmark/spawner/prisonwarp
name = "prisonwarp"
diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm
index faace9e77df..180bdd41bb1 100644
--- a/code/modules/antagonists/_common/antag_datum.dm
+++ b/code/modules/antagonists/_common/antag_datum.dm
@@ -61,6 +61,8 @@ GLOBAL_LIST_EMPTY(antagonists)
/// Do we have delayed objective giving?
var/delayed_objectives = FALSE
+ /// The title of the players "boss", used for exfil strings
+ var/boss_title = "Operations"
/datum/antagonist/New()
GLOB.antagonists += src
@@ -498,4 +500,24 @@ GLOBAL_LIST_EMPTY(antagonists)
/datum/antagonist/proc/custom_blurb()
return FALSE
+/datum/antagonist/proc/exfiltrate(mob/living/carbon/human/extractor, obj/item/radio/radio)
+ return
+
+/datum/antagonist/proc/prepare_exfiltration(mob/user, obj/item/wormhole_jaunter/extraction/extraction_type = null)
+ // No extraction for certian steals/hijack
+ var/objectives = user.mind.get_all_objectives()
+ for(var/datum/objective/goal in objectives)
+ if(!goal.is_valid_exfiltration())
+ to_chat(user, "The [boss_title] has deemed your objectives too delicate for an early extraction.")
+ return
+
+ if(world.time < 60 MINUTES) // 60 minutes of no exfil
+ to_chat(user, "The [boss_title] is still preparing an exfiltration portal. Please wait another [round((36000 - world.time) / 600)] minutes before trying again.")
+ return
+ var/mob/living/L = user
+ if(!istype(L))
+ return
+ var/obj/item/wormhole_jaunter/extraction/extractor = new extraction_type()
+ L.put_in_active_hand(extractor)
+
#undef SUCCESSFUL_DETACH
diff --git a/code/modules/antagonists/_common/antag_exfiltration.dm b/code/modules/antagonists/_common/antag_exfiltration.dm
new file mode 100644
index 00000000000..815494ba935
--- /dev/null
+++ b/code/modules/antagonists/_common/antag_exfiltration.dm
@@ -0,0 +1,613 @@
+// Traitor flare
+/obj/item/wormhole_jaunter/extraction
+ name = "extraction flare"
+ icon = 'icons/obj/lighting.dmi'
+ desc = "A single-use extraction flare that will let you escape the station. One way trip."
+ icon_state = "flare-contractor"
+ item_state = "flare"
+ /// What areas can be extracted from?
+ var/list/extractable_areas = list()
+ /// Is there a roundstart delay?
+ var/delayed_extraction = TRUE
+ /// How long does the extraction take?
+ var/extraction_time = 90 SECONDS
+ /// Type of setup once a flare is lit
+ var/setup_type = /obj/effect/temp_visual/exfiltration
+ /// Type of portal spawned
+ var/portal_type = /obj/effect/portal/advanced/exfiltration
+
+/obj/item/wormhole_jaunter/extraction/Initialize(mapload)
+ . = ..()
+ var/list/possible_areas = list(
+ // Rooms
+ /area/station/hallway/primary/aft,
+ /area/station/engineering/atmos,
+ /area/station/public/arcade,
+ /area/station/maintenance/assembly_line,
+ /area/station/public/storage/tools/auxiliary,
+ /area/station/command/office/blueshield,
+ /area/station/supply/storage,
+ /area/station/service/chapel,
+ /area/station/service/chapel/office,
+ /area/station/service/clown,
+ /area/station/legal/courtroom,
+ /area/station/public/toilet,
+ /area/station/engineering/control,
+ /area/station/engineering/controlroom,
+ /area/station/hallway/secondary/exit,
+ /area/holodeck/alphadeck,
+ /area/station/service/hydroponics,
+ /area/station/service/library,
+ /area/station/service/mime,
+ /area/station/supply/miningdock,
+ /area/station/medical/morgue,
+ /area/station/public/storage/office,
+ /area/station/public/pet_store,
+ /area/station/public/storage/tools,
+ /area/station/public/mrchangs,
+ /area/station/science/research,
+ /area/station/security/checkpoint,
+ /area/station/engineering/tech_storage,
+ /area/station/command/teleporter,
+ /area/station/science/storage,
+ /area/station/science/misc_lab,
+ /area/station/science/xenobiology,
+ /area/station/turret_protected/aisat/interior,
+ /area/station/aisat/atmos,
+ /area/station/aisat/hall,
+ /area/station/aisat/service,
+ /area/station/service/bar,
+ /area/station/supply/office,
+ /area/station/medical/chemistry,
+ /area/station/command/office/ce,
+ /area/station/command/office/cmo,
+ /area/station/medical/cloning,
+ /area/station/medical/cryo,
+ /area/station/public/dorms,
+ /area/station/engineering/equipmentstorage,
+ /area/station/engineering/break_room,
+ /area/station/ai_monitored/storage/eva,
+ /area/station/supply/expedition,
+ /area/station/science/genetics,
+ /area/station/engineering/gravitygenerator,
+ /area/station/command/office/hop,
+ /area/station/command/meeting_room,
+ /area/station/service/kitchen,
+ /area/station/science/robotics/chargebay,
+ /area/station/medical/medbay,
+ /area/station/medical/medbay2,
+ /area/station/medical/medbay3,
+ /area/station/medical/reception,
+ /area/station/medical/storage,
+ /area/station/medical/sleeper,
+ /area/station/command/server,
+ /area/station/command/office/ntrep,
+ /area/station/medical/paramedic,
+ /area/station/hallway/primary/port,
+ /area/station/supply/qm,
+ /area/station/command/office/rd,
+ /area/station/science/rnd,
+ /area/station/science/robotics,
+ /area/station/medical/surgery/primary,
+ /area/station/medical/surgery/secondary,
+ /area/station/telecomms/chamber,
+ /area/station/engineering/secure_storage
+ )
+ while(length(extractable_areas) < 3)
+ var/area/selected_area = pick_n_take(possible_areas)
+ for(var/area/potential in SSmapping.existing_station_areas)
+ if(potential.type != selected_area)
+ continue
+ extractable_areas += potential
+ break
+
+/obj/item/wormhole_jaunter/extraction/examine(mob/user)
+ . = ..()
+ if(isAntag(user))
+ . += "The target extraction locations are:"
+ for(var/area/A in extractable_areas)
+ . += " - [A.name]"
+
+/obj/item/wormhole_jaunter/extraction/activate(mob/user)
+ if(!turf_check(user))
+ return
+
+ // Delay extractions
+ if(world.time < 60 MINUTES && delayed_extraction) // 60 minutes of no exfil
+ to_chat(user, "The exfiltration teleporter is calibrating. Please wait another [round((36000 - world.time) / 600)] minutes before trying again.")
+ return
+
+ // Objective checks
+ var/denied = FALSE
+ var/is_target = FALSE
+ var/has_target_objective = FALSE
+ var/objectives = user.mind.get_all_objectives()
+
+ // Check if you're the target of any other antags. If you are, using the beacon will find it jammed and turned to ash.
+ for(var/datum/objective/O in GLOB.all_objectives)
+ if(O.target != user.mind || istype(O, /datum/objective/protect))
+ continue
+ denied = TRUE
+ is_target = TRUE
+ break
+
+ // No extraction for NAD, Plutonium core theft, or Hijack
+ for(var/datum/objective/goal in objectives)
+ if(!goal.is_valid_exfiltration())
+ denied = TRUE
+
+ if(istype(goal, /datum/objective/potentially_backstabbed))
+ has_target_objective = TRUE
+
+ if(denied && is_target)
+ to_chat(user, "Someone or something has jammed your extraction beacon, forcing it to disintegrate early!")
+ if(!has_target_objective)
+ user.mind.add_mind_objective(/datum/objective/potentially_backstabbed, "Someone or something has jammed your extraction! Survive!")
+ var/list/messages = user.mind.prepare_announce_objectives(FALSE)
+ to_chat(user, chat_box_red(messages.Join("
")))
+ new /obj/effect/decal/cleanable/ash(get_turf(src))
+ qdel(src)
+ return
+ else if(denied)
+ to_chat(user, "Your objectives are too delicate for an early extraction.")
+ new /obj/effect/decal/cleanable/ash(get_turf(src))
+ qdel(src)
+ return
+
+ var/obj/effect/temp_visual/exfiltration/F = new setup_type(get_turf(src))
+ show_activation_message(user)
+ user.drop_item()
+ forceMove(F)
+ log_and_message_admins("[user] activated an exfiltration flare.")
+ var/obj/item/radio/radio = new
+ radio.listening = FALSE
+ radio.follow_target = src
+ radio.config(list("Security" = 0))
+ radio.autosay("Unknown portal beacon detected at [get_area(src.loc)].", "Automated Announcement", "Security")
+ qdel(radio)
+ addtimer(CALLBACK(src, PROC_REF(create_portal), user), extraction_time)
+
+/obj/item/wormhole_jaunter/extraction/turf_check(mob/user)
+ var/turf/device_turf = get_turf(user)
+ var/area/our_area = get_area(device_turf)
+ var/invalid_area = TRUE
+ for(var/area/A in extractable_areas)
+ if(istype(our_area, A))
+ invalid_area = FALSE
+ break
+
+ if(!device_turf || invalid_area)
+ to_chat(user, "You're having difficulties getting the [name] to work.")
+ return FALSE
+ return TRUE
+
+/obj/item/wormhole_jaunter/extraction/proc/create_portal(mob/user)
+ new /obj/effect/decal/cleanable/ash(get_turf(src))
+ var/obj/effect/portal/advanced/exfiltration/P = new portal_type(get_turf(src), pick(GLOB.antagextractwarp), src, 30 SECONDS, user)
+ P.antag_mind = user.mind
+ qdel(src)
+
+/obj/item/wormhole_jaunter/extraction/emag_act(mob/user)
+ to_chat(user, "Emagging [src] has no effect.")
+
+/obj/item/wormhole_jaunter/extraction/chasm_react(mob/user)
+ return // This is not an instant getaway portal like the jaunter
+
+/obj/item/wormhole_jaunter/extraction/proc/show_activation_message(mob/user)
+ user.visible_message("[user] pulls out a black and gold flare and lights it.",
+ "You light an extraction flare, initiating the extraction process.")
+
+/obj/item/wormhole_jaunter/extraction/vampire
+ name = "blood chalice"
+ icon = 'icons/obj/items.dmi'
+ desc = "An unholy construct that will create a single-use portal that will let you escape the station. One way trip."
+ icon_state = "blood-chalice"
+ setup_type = /obj/effect/temp_visual/exfiltration/vampire
+
+/obj/item/wormhole_jaunter/extraction/vampire/show_activation_message(mob/user)
+ user.visible_message("[user] sets a blood-filled chalice on the ground. It begins to bubble ominously...",
+ "You set a blood-filled chalice on the ground. It begins to bubble ominously...")
+
+/obj/item/wormhole_jaunter/extraction/changeling
+ name = "writhing mass"
+ icon = 'icons/obj/items.dmi'
+ desc = "A mass of writhing flesh that will create a single-use portal that will let you escape the station. One way trip."
+ icon_state = "changeling_organ"
+ setup_type = /obj/effect/temp_visual/exfiltration/changeling
+
+/obj/item/wormhole_jaunter/extraction/changeling/show_activation_message(mob/user)
+ user.visible_message("[user] sets a grotesque fleshy mass on the floor.",
+ "You set a pulsing piece of yourself on the floor.")
+
+/obj/item/wormhole_jaunter/extraction/mindflayer
+ name = "nanite telepad"
+ desc = "A swarm of mindflayer nanites in the shape of a telepad that will create a single-use portal that will let you escape the station. One way trip."
+ icon_state = "flayer_telepad_base"
+ setup_type = /obj/effect/temp_visual/exfiltration/mindflayer
+
+/obj/item/wormhole_jaunter/extraction/changeling/show_activation_message(mob/user)
+ user.visible_message("[user] sets a strange telepad on the floor. It begins to unfold.",
+ "You push a button on [src], and watch as it begins to unfold.")
+
+/obj/item/wormhole_jaunter/extraction/admin
+ name = "advanced extraction flare"
+ desc = "An advanced single-use extraction flare that will let you escape the station quickly. One way trip."
+ delayed_extraction = FALSE
+ extraction_time = 5 SECONDS
+ setup_type = /obj/effect/temp_visual/exfiltration/admin
+
+// MARK: Traitor Flare
+/obj/effect/temp_visual/exfiltration
+ name = "extraction flare"
+ layer = BELOW_MOB_LAYER
+ icon = 'icons/obj/lighting.dmi'
+ icon_state = "flare-contractor-on"
+ duration = 90.1 SECONDS
+ /// Sound that plays when activated
+ var/activation_sound = 'sound/goonstation/misc/matchstick_light.ogg'
+ /// Light emitted when activated
+ var/emitted_color = "#FFD165"
+ /// Does this one emit light by default?
+ var/start_lit = TRUE
+
+/obj/effect/temp_visual/exfiltration/Initialize(mapload)
+ . = ..()
+ playsound(loc, activation_sound, 50, TRUE)
+ if(start_lit)
+ set_light(8, l_color = emitted_color)
+
+// MARK: Vampire Chalice
+/obj/effect/temp_visual/exfiltration/vampire
+ name = "bloody portal"
+ icon_state = "vampire-portal"
+ activation_sound = 'sound/magic/strings.ogg'
+ emitted_color = "#710C04"
+
+// MARK: Changeling Mass
+/obj/effect/temp_visual/exfiltration/changeling
+ name = "writhing mass"
+ icon_state = "changeling-organ"
+ activation_sound = 'sound/effects/squelch1.ogg'
+ emitted_color = "#E79592"
+
+// MARK: Mindflayer telepad
+/obj/effect/temp_visual/exfiltration/mindflayer
+ name = "mindflayer telepad"
+ desc = "A swarm of mindflayer nanites in the shape of a telepad that will create a single-use portal."
+ icon_state = "flayer_telepad_deploy"
+ activation_sound = 'sound/mecha/skyfall_power_up.ogg'
+ start_lit = FALSE
+
+/obj/effect/temp_visual/exfiltration/mindflayer/Initialize(mapload)
+ . = ..()
+ addtimer(CALLBACK(src, PROC_REF(blink)), 10 SECONDS)
+
+/obj/effect/temp_visual/exfiltration/mindflayer/proc/blink()
+ icon_state = "flayer_telepad_blink"
+ do_sparks(4, 0, src)
+ addtimer(CALLBACK(src, PROC_REF(no_blink)), 5 SECONDS)
+
+/obj/effect/temp_visual/exfiltration/mindflayer/proc/no_blink()
+ icon_state = "flayer_telepad_base"
+ do_sparks(4, 0, src)
+ set_light(3, 0.5, LIGHT_COLOR_DARKGREEN)
+ new /obj/effect/flayer_telepad_binary_effect(get_turf(src))
+
+/obj/effect/flayer_telepad_binary_effect
+ icon = 'icons/obj/lighting.dmi'
+ icon_state = "qpad-charge"
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+
+/obj/effect/flayer_telepad_binary_effect/Initialize(mapload)
+ . = ..()
+ appearance_flags |= KEEP_TOGETHER
+ var/icon/our_icon = icon('icons/obj/lighting.dmi', "qpad-charge")
+ var/icon/alpha_mask
+ alpha_mask = new('icons/effects/effects.dmi', "scanline") // Scanline effect.
+ our_icon.AddAlphaMask(alpha_mask) // Finally, let's mix in a distortion effect.
+ icon = our_icon
+ color = list(0.2,0.45,0,0, 0,1,0,0, 0,0,0.2,0, 0,0,0,1, 0,0,0,0)
+ var/mutable_appearance/theme_icon = mutable_appearance('icons/misc/pic_in_pic.dmi', "room_background", appearance_flags = appearance_flags | RESET_TRANSFORM)
+ theme_icon.blend_mode = BLEND_INSET_OVERLAY
+ overlays += theme_icon
+ addtimer(CALLBACK(src, PROC_REF(progress_step)), 1 SECONDS)
+
+/obj/effect/flayer_telepad_binary_effect/proc/progress_step()
+ new /obj/effect/flayer_telepad_binary_effect_secondary(get_turf(src))
+ qdel(src)
+
+/obj/effect/flayer_telepad_binary_effect_secondary
+ icon = 'icons/obj/lighting.dmi'
+ icon_state = "qpad-charge2"
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+
+/obj/effect/flayer_telepad_binary_effect_secondary/Initialize(mapload)
+ . = ..()
+ appearance_flags |= KEEP_TOGETHER
+ var/icon/our_icon = icon('icons/obj/lighting.dmi', "qpad-charge2")
+ var/icon/alpha_mask
+ alpha_mask = new('icons/effects/effects.dmi', "scanline") // Scanline effect.
+ our_icon.AddAlphaMask(alpha_mask) // Finally, let's mix in a distortion effect.
+ icon = our_icon
+ color = list(0.2,0.45,0,0, 0,1,0,0, 0,0,0.2,0, 0,0,0,1, 0,0,0,0)
+ var/mutable_appearance/theme_icon = mutable_appearance('icons/misc/pic_in_pic.dmi', "room_background", appearance_flags = appearance_flags | RESET_TRANSFORM)
+ theme_icon.blend_mode = BLEND_INSET_OVERLAY
+ overlays += theme_icon
+ addtimer(CALLBACK(src, PROC_REF(sparky)), 4 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(progress_step)), 24 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(complete_portal)), 74 SECONDS)
+
+/obj/effect/flayer_telepad_binary_effect_secondary/proc/sparky()
+ new /obj/effect/flayer_binary_portal(get_turf(src))
+ do_sparks(4, 0, src)
+
+/obj/effect/flayer_telepad_binary_effect_secondary/proc/progress_step()
+ new /obj/effect/flayer_telepad_binary_effect_tertiary(get_turf(src))
+
+/obj/effect/flayer_telepad_binary_effect_secondary/proc/complete_portal()
+ qdel(src)
+
+/obj/effect/flayer_binary_portal
+ icon_state = "bluespace"
+ icon = 'icons/obj/projectiles.dmi'
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ pixel_y = 24
+
+/obj/effect/flayer_binary_portal/Initialize(mapload)
+ . = ..()
+ // transform *= 0.25
+ appearance_flags |= KEEP_TOGETHER | PIXEL_SCALE
+ var/icon/our_icon = icon('icons/obj/projectiles.dmi', "bluespace")
+ var/icon/alpha_mask
+ alpha_mask = new('icons/effects/effects.dmi', "scanline") // Scanline effect.
+ our_icon.AddAlphaMask(alpha_mask) // Finally, let's mix in a distortion effect.
+ icon = our_icon
+ color = list(0.2,0.45,0,0, 0,1,0,0, 0,0,0.2,0, 0,0,0,1, 0,0,0,0)
+ var/mutable_appearance/theme_icon = mutable_appearance('icons/misc/pic_in_pic.dmi', "room_background", appearance_flags = appearance_flags | RESET_TRANSFORM)
+ theme_icon.blend_mode = BLEND_INSET_OVERLAY
+ overlays += theme_icon
+ addtimer(CALLBACK(src, PROC_REF(wormhole)), 25 SECONDS)
+ animate(src, transform = matrix().Scale(0.25), time = 0.1 SECONDS)
+ animate(transform = matrix().Scale(1, 2), time = 24 SECONDS)
+ animate(transform = matrix().Scale(0.5), time = 0.9 SECONDS)
+
+/obj/effect/flayer_binary_portal/proc/wormhole()
+ new /obj/effect/flayer_binary_portal_secondary(get_turf(src))
+ do_sparks(4, 0, src)
+ qdel(src)
+
+/obj/effect/flayer_binary_portal_secondary
+ icon_state = "kinesis"
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ pixel_y = 24
+
+/obj/effect/flayer_binary_portal_secondary/Initialize(mapload)
+ . = ..()
+ set_light(5, 2, LIGHT_COLOR_DARKGREEN)
+ var/obj/effect/warp_effect/bsg/warp = new /obj/effect/warp_effect/bsg(get_turf(src))
+ warp.pixel_y = 24
+ appearance_flags |= KEEP_TOGETHER | PIXEL_SCALE
+ var/icon/our_icon = icon('icons/effects/effects.dmi', "kinesis")
+ var/icon/alpha_mask
+ alpha_mask = new('icons/effects/effects.dmi', "scanline") // Scanline effect.
+ our_icon.AddAlphaMask(alpha_mask) // Finally, let's mix in a distortion effect.
+ icon = our_icon
+ color = list(0.2,0.45,0,0, 0,1,0,0, 0,0,0.2,0, 0,0,0,1, 0,0,0,0)
+ var/mutable_appearance/theme_icon = mutable_appearance('icons/misc/pic_in_pic.dmi', "room_background", appearance_flags = appearance_flags | RESET_TRANSFORM)
+ theme_icon.blend_mode = BLEND_INSET_OVERLAY
+ overlays += theme_icon
+ addtimer(CALLBACK(src, PROC_REF(complete_portal)), 45 SECONDS)
+ animate(src, transform = matrix().Scale(0.3), time = 0.1 SECONDS)
+ animate(transform = matrix().Scale(0.3, 0.6), time = 5 SECONDS)
+ animate(transform = matrix().Scale(0.6, 1.2), time = 15 SECONDS)
+
+/obj/effect/flayer_binary_portal_secondary/proc/complete_portal()
+ animate(src, transform = matrix().Scale(0.1), time = 0.1 SECONDS)
+ do_sparks(4, 0, src)
+ qdel(src)
+
+/obj/effect/flayer_telepad_binary_effect_tertiary
+ icon = 'icons/obj/lighting.dmi'
+ icon_state = "qpad-beam"
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+
+/obj/effect/flayer_telepad_binary_effect_tertiary/Initialize(mapload)
+ . = ..()
+ appearance_flags |= KEEP_TOGETHER
+ var/icon/our_icon = icon('icons/obj/lighting.dmi', "qpad-beam")
+ var/icon/alpha_mask
+ alpha_mask = new('icons/effects/effects.dmi', "scanline") // Scanline effect.
+ our_icon.AddAlphaMask(alpha_mask) // Finally, let's mix in a distortion effect.
+ icon = our_icon
+ color = list(0.2,0.45,0,0, 0,1,0,0, 0,0,0.2,0, 0,0,0,1, 0,0,0,0)
+ var/mutable_appearance/theme_icon = mutable_appearance('icons/misc/pic_in_pic.dmi', "room_background", appearance_flags = appearance_flags | RESET_TRANSFORM)
+ theme_icon.blend_mode = BLEND_INSET_OVERLAY
+ overlays += theme_icon
+ addtimer(CALLBACK(src, PROC_REF(complete_portal)), 50 SECONDS)
+
+/obj/effect/flayer_telepad_binary_effect_tertiary/proc/complete_portal()
+ qdel(src)
+
+// MARK: Debug/Admin
+/obj/effect/temp_visual/exfiltration/admin
+ duration = 5.1 SECONDS
+
+// MARK: Extraction Portal
+/obj/effect/portal/advanced/exfiltration
+ name = "exfiltration portal"
+ icon_state = "portal-syndicate"
+ one_use = TRUE
+ /// The mind of the exfiltrating antag.
+ var/datum/mind/antag_mind = null
+ /// Radio for handling extraction taunts
+ var/obj/item/radio/radio
+ /// Did we succeed?
+ var/exfil_success = FALSE
+
+/obj/effect/portal/advanced/exfiltration/Initialize(mapload)
+ . = ..()
+ radio = new(src)
+ radio.listening = FALSE
+ radio.follow_target = src
+ radio.config(list("Security" = 0))
+
+/obj/effect/portal/advanced/exfiltration/Destroy()
+ if(exfil_success)
+ return ..()
+ if(antag_mind)
+ log_and_message_admins("[antag_mind.original_mob_name] failed to exfiltrate.")
+ SSblackbox.record_feedback("tally", "exfiltration", 1, "exfiltration_failure")
+ return ..()
+
+/obj/effect/portal/advanced/exfiltration/can_teleport(atom/movable/A)
+ var/mob/living/M = A
+ if(!istype(M))
+ return FALSE
+ return ..()
+
+/obj/effect/portal/advanced/exfiltration/attempt_teleport(atom/movable/victim, turf/destination, variance = 0, force_teleport = TRUE)
+ if(teleports_this_cycle >= MAX_ALLOWED_TELEPORTS_PER_PROCESS)
+ return
+ var/use_effects = world.time >= effect_cooldown
+ var/effect = null // Will result in the default effect being used
+ if(!use_effects)
+ effect = NONE // No effect
+
+ // Filter out non-antags
+ var/mob/living/user = victim
+ if(!istype(user))
+ return FALSE
+ var/datum/mind/user_mind = user.mind
+ if(user_mind != antag_mind)
+ to_chat(user, "You jump through the portal! Right before you see the other side, you feel an immense, sharp pain in your head!")
+ var/list/L = get_destinations()
+ if(!length(L))
+ to_chat(user, "[src] found no beacons in the sector to target.")
+ return
+ var/random_destination = pick(L)
+ if(!do_teleport(victim, random_destination, 2, force_teleport, effect, effect, bypass_area_flag = ignore_tele_proof_area_setting))
+ invalid_teleport()
+ return FALSE
+ fail_extraction(user)
+ effect_cooldown = world.time + 0.5 SECONDS
+ teleports_this_cycle++
+ return FALSE
+
+ // For the antag
+ if(!do_teleport(victim, destination, variance, force_teleport, effect, effect, bypass_area_flag = ignore_tele_proof_area_setting))
+ invalid_teleport()
+ return FALSE
+ pass_extraction(user)
+ return TRUE
+
+/obj/effect/portal/advanced/exfiltration/proc/get_destinations()
+ var/list/destinations = list()
+
+ for(var/obj/item/beacon/B in GLOB.beacons)
+ var/turf/T = get_turf(B)
+ if(is_station_level(T.z))
+ destinations += B
+
+ return destinations
+
+/obj/effect/portal/advanced/exfiltration/proc/fail_extraction(mob/living/schmuck)
+ to_chat(schmuck, "You feel immense pain!")
+ log_and_message_admins("[schmuck] went through an exfiltration portal they didn't control.")
+ schmuck.Paralyse(30 SECONDS)
+ schmuck.EyeBlind(35 SECONDS)
+ schmuck.EyeBlurry(35 SECONDS)
+ schmuck.AdjustConfused(35 SECONDS)
+ // Same effects as if they got contracted
+ var/obj/item/organ/external/injury_target
+ if(prob(20))
+ injury_target = schmuck.get_organ(pick(BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_FOOT, BODY_ZONE_PRECISE_L_FOOT))
+ if(!injury_target)
+ return
+ schmuck.adjustBruteLoss(40)
+ schmuck.adjustBrainLoss(25)
+ injury_target.droplimb()
+ to_chat(schmuck, "You were interrogated by your captors before being sent back! Oh god, something's missing!")
+ return
+ // Species specific punishments first
+ if(ismachineperson(schmuck))
+ schmuck.emp_act(EMP_HEAVY)
+ schmuck.adjustBrainLoss(30)
+ to_chat(schmuck, "You were interrogated by your captors before being sent back! You feel like some of your components are loose!")
+ return
+ schmuck.adjustBruteLoss(40)
+ schmuck.adjustBrainLoss(25)
+ if(isslimeperson(schmuck))
+ injury_target = schmuck.get_organ(pick(BODY_ZONE_PRECISE_R_HAND, BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_FOOT, BODY_ZONE_PRECISE_L_FOOT))
+ if(!injury_target)
+ return
+ injury_target.cause_internal_bleeding()
+ injury_target = schmuck.get_organ(BODY_ZONE_CHEST)
+ injury_target.cause_internal_bleeding()
+ to_chat(schmuck, "You were interrogated by your captors before being sent back! You feel like your inner membrane has been punctured!")
+ return
+ if(prob(25))
+ injury_target = schmuck.get_organ(BODY_ZONE_CHEST)
+ injury_target.fracture()
+ else
+ injury_target = schmuck.get_organ(pick(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_R_LEG))
+ if(!injury_target)
+ return
+ injury_target.fracture()
+ injury_target.cause_internal_bleeding()
+
+/obj/effect/portal/advanced/exfiltration/proc/pass_extraction(mob/living/M)
+ // Freeze objectives
+ for(var/datum/objective/objective in antag_mind.get_all_objectives(include_team = FALSE))
+ if(istype(objective, /datum/objective/escape))
+ var/datum/objective/escape/escape_alive = objective
+ escape_alive.completed = escape_alive.check_completion(exfilling = TRUE)
+ continue
+ objective.completed = objective.check_completion()
+ // Handle syndicate barification
+ log_and_message_admins("[M] extracted using an exfiltration portal.")
+ exfil_success = TRUE
+ SSblackbox.record_feedback("tally", "exfiltration", 1, "exfiltration_success")
+ prepare_ghosting(M)
+
+/obj/effect/portal/advanced/exfiltration/proc/prepare_ghosting(mob/living/carbon/human/extractor)
+ if(!istype(extractor))
+ return
+ // Remove all clothing and bio chips
+ for(var/obj/item/I in extractor)
+ qdel(I)
+
+ // Remove cybernetic implants
+ for(var/obj/item/organ/internal/cyberimp/I in extractor.internal_organs)
+ // Greys get to keep their implant
+ if(isgrey(extractor) && istype(I, /obj/item/organ/internal/cyberimp/brain/speech_translator))
+ continue
+ // IPCs keep their implant
+ if(ismachineperson(extractor) && istype(I, /obj/item/organ/internal/cyberimp/arm/power_cord))
+ continue
+ // Try removing it
+ I = I.remove(extractor)
+
+ // Remove martial arts
+ for(var/datum/martial_art/MA in extractor.mind.known_martial_arts)
+ MA.remove(extractor)
+
+ // Equip outfits and remove spells
+ var/datum/mind/extractor_mind = extractor.mind
+ for(var/datum/antagonist/antag in extractor_mind.antag_datums)
+ antag.exfiltrate(extractor, radio)
+
+ // Apply traits
+ ADD_TRAIT(extractor, TRAIT_PACIFISM, GHOST_ROLE)
+ ADD_TRAIT(extractor, TRAIT_RESPAWNABLE, GHOST_ROLE)
+ var/obj/item/bio_chip/dust/I = new
+ I.implant(extractor, null)
+
+ if(extractor.mind)
+ if(extractor.mind.initial_account)
+ GLOB.station_money_database.delete_user_account(extractor.mind.initial_account.account_number, "NAS Trurl Financial Services", FALSE)
+ if(extractor.mind && extractor.mind.assigned_role)
+ // Handle job slot
+ var/job = extractor.mind.assigned_role
+
+ SSjobs.FreeRole(job)
+
diff --git a/code/modules/antagonists/changeling/datum_changeling.dm b/code/modules/antagonists/changeling/datum_changeling.dm
index 4bb5a165943..1ee3e39a9dd 100644
--- a/code/modules/antagonists/changeling/datum_changeling.dm
+++ b/code/modules/antagonists/changeling/datum_changeling.dm
@@ -50,6 +50,7 @@ RESTRICT_TYPE(/datum/antagonist/changeling)
var/regenerating = FALSE
blurb_text_color = COLOR_PURPLE
blurb_text_outline_width = 1
+ boss_title = "Greater Hivemind"
/datum/antagonist/changeling/New()
..()
@@ -186,6 +187,14 @@ RESTRICT_TYPE(/datum/antagonist/changeling)
chem_charges = clamp(0, chem_charges + chem_recharge_rate - chem_recharge_slowdown, chem_storage)
update_chem_charges_ui(H)
+/datum/antagonist/changeling/exfiltrate(mob/living/carbon/human/extractor, obj/item/radio/radio)
+ remove_changeling_powers(FALSE)
+ var/datum/action/changeling/power = new /datum/action/changeling/transform
+ power.Grant(extractor)
+ extractor.equipOutfit(/datum/outfit/admin/ghostbar_antag/changeling)
+ radio.autosay("--ZZZT!- Welcome home, [extractor.real_name]. -ZZT!-", "Changeling Hive", "Security")
+ SSblackbox.record_feedback("tally", "successful_extraction", 1, "Changeling")
+
/datum/antagonist/changeling/proc/update_chem_charges_ui(mob/living/carbon/human/H = owner.current)
if(H.hud_used?.lingchemdisplay)
H.hud_used.lingchemdisplay.invisibility = 0
diff --git a/code/modules/antagonists/changeling/powers/exfilling.dm b/code/modules/antagonists/changeling/powers/exfilling.dm
new file mode 100644
index 00000000000..0961f370f9e
--- /dev/null
+++ b/code/modules/antagonists/changeling/powers/exfilling.dm
@@ -0,0 +1,15 @@
+/datum/action/changeling/exfiltration
+ name = "Generate Extraction Mass"
+ desc = "We separate a specialized organ that will generate an extraction portal. Costs 30 chemicals."
+ helptext = "Creates a fleshy mass that can be used in certain areas to create a portal to leave the station early."
+ button_icon = 'icons/obj/items.dmi'
+ button_icon_state = "changeling-organ"
+ chemical_cost = 30
+ req_human = TRUE
+ power_type = CHANGELING_INNATE_POWER
+
+// Create extraction mass
+/datum/action/changeling/exfiltration/sting_action(mob/living/user)
+ cling.prepare_exfiltration(user, /obj/item/wormhole_jaunter/extraction/changeling)
+ cling.remove_specific_power(/datum/action/changeling/exfiltration)
+ return TRUE
diff --git a/code/modules/antagonists/mind_flayer/flayer_datum.dm b/code/modules/antagonists/mind_flayer/flayer_datum.dm
index 4f01fecb32f..bb15ef379fa 100644
--- a/code/modules/antagonists/mind_flayer/flayer_datum.dm
+++ b/code/modules/antagonists/mind_flayer/flayer_datum.dm
@@ -27,6 +27,7 @@
var/can_pick_capstone = TRUE
/// Have we notified that our victim does not give swarms from draining
var/has_notified = FALSE
+ boss_title = "Master Mindflayer"
/datum/antagonist/mindflayer/New()
. = ..()
@@ -60,6 +61,13 @@
add_antag_objective(/datum/objective/swarms)
forge_basic_objectives()
+/datum/antagonist/mindflayer/exfiltrate(mob/living/carbon/human/extractor, obj/item/radio/radio)
+ remove_all_abilities()
+ remove_all_passives()
+ extractor.equipOutfit(/datum/outfit/admin/ghostbar_antag/mindflayer)
+ radio.autosay("--ZZZT!- Excellent job, [extractor.real_name]. Proceed to -^%&!-ZZT!-", "Master Flayer", "Security")
+ SSblackbox.record_feedback("tally", "successful_extraction", 1, "Mindflayer")
+
/datum/antagonist/mindflayer/proc/get_swarms()
return usable_swarms
diff --git a/code/modules/antagonists/mind_flayer/powers/flayer_stealth_powers.dm b/code/modules/antagonists/mind_flayer/powers/flayer_stealth_powers.dm
index add1ff5f552..d1927f51bca 100644
--- a/code/modules/antagonists/mind_flayer/powers/flayer_stealth_powers.dm
+++ b/code/modules/antagonists/mind_flayer/powers/flayer_stealth_powers.dm
@@ -221,3 +221,19 @@
borg.make_mindflayer_robot(user)
return TRUE
+
+/datum/spell/flayer/self/extraction
+ name = "Nanite Portal Generator"
+ desc = "Allows us to use our nanites to create an extraction portal."
+ action_icon = 'icons/obj/lighting.dmi'
+ action_icon_state = "flayer_telepad_base"
+ power_type = FLAYER_PURCHASABLE_POWER
+ base_cooldown = 2 SECONDS
+ var/used = FALSE
+
+/datum/spell/flayer/self/extraction/cast(list/targets, mob/user)
+ if(used)
+ to_chat(user, "You have already attempted to create a portal generator!")
+ return
+ flayer.prepare_exfiltration(user, /obj/item/wormhole_jaunter/extraction/mindflayer)
+ used = TRUE
diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm
index 99e8cfdb16b..1275444cc19 100644
--- a/code/modules/antagonists/traitor/datum_traitor.dm
+++ b/code/modules/antagonists/traitor/datum_traitor.dm
@@ -17,6 +17,7 @@ RESTRICT_TYPE(/datum/antagonist/traitor)
var/give_uplink = TRUE
blurb_r = 200
blurb_a = 0.75
+ boss_title = "Syndicate Operations"
/// Have we / are we sending a backstab message at this time. If we are, do not send another.
var/sending_backstab = FALSE
@@ -116,6 +117,20 @@ RESTRICT_TYPE(/datum/antagonist/traitor)
else
forge_human_objectives()
+/datum/antagonist/traitor/exfiltrate(mob/living/carbon/human/extractor, obj/item/radio/radio)
+ extractor.equipOutfit(/datum/outfit/admin/ghostbar_antag/syndicate)
+ // Remove mindslaves
+ var/list/mindslaves = SSticker.mode.implanted
+ for(var/datum/mind/possible_slave in mindslaves)
+ for(var/datum/antagonist/slavetag in possible_slave.antag_datums)
+ if(!istype(slavetag, /datum/antagonist/mindslave))
+ continue
+ var/datum/antagonist/mindslave/slave = slavetag
+ if(slave.master == extractor.mind)
+ possible_slave.remove_antag_datum(/datum/antagonist/mindslave/implant)
+
+ radio.autosay("--ZZZT!- Good work, $@gent [extractor.real_name]. Return to -^%&!-ZZT!-", "Syndicate Operations", "Security")
+ SSblackbox.record_feedback("tally", "successful_extraction", 1, "Traitor")
/**
* Create and assign a full set of randomized human traitor objectives.
*/
diff --git a/code/modules/antagonists/vampire/vamp_datum.dm b/code/modules/antagonists/vampire/vamp_datum.dm
index fb622af08c5..e82586da3b3 100644
--- a/code/modules/antagonists/vampire/vamp_datum.dm
+++ b/code/modules/antagonists/vampire/vamp_datum.dm
@@ -24,6 +24,7 @@ RESTRICT_TYPE(/datum/antagonist/vampire)
/datum/spell/vampire/glare = 0,
/datum/vampire_passive/vision = 100,
/datum/spell/vampire/self/specialize = 150,
+ /datum/spell/vampire/self/exfiltrate = 150,
/datum/vampire_passive/regen = 200,
/datum/vampire_passive/vision/advanced = 500)
@@ -34,6 +35,7 @@ RESTRICT_TYPE(/datum/antagonist/vampire)
blurb_g = 221
blurb_b = 138
blurb_a = 1
+ boss_title = "Master Vampire"
/datum/antagonist/vampire/Destroy(force, ...)
draining = null
@@ -95,6 +97,23 @@ RESTRICT_TYPE(/datum/antagonist/vampire)
REMOVE_TRAITS_IN(owner.current, "vampire")
UnregisterSignal(owner, COMSIG_ATOM_HOLY_ATTACK)
+/datum/antagonist/vampire/exfiltrate(mob/living/carbon/human/extractor, obj/item/radio/radio)
+ remove_all_powers()
+ // Remove thralls
+ if(istype(subclass, SUBCLASS_DANTALION))
+ var/list/thralls = SSticker.mode.vampire_enthralled
+ for(var/datum/mind/possible_thrall in thralls)
+ for(var/datum/antagonist/slavetag in possible_thrall.antag_datums)
+ if(!istype(slavetag, /datum/antagonist/mindslave))
+ continue
+ var/datum/antagonist/mindslave/slave = slavetag
+ if(slave.master == extractor.mind)
+ possible_thrall.remove_antag_datum(/datum/antagonist/mindslave/thrall)
+
+ extractor.equipOutfit(/datum/outfit/admin/ghostbar_antag/vampire)
+ radio.autosay("--ZZZT!- Wonderfully done, [extractor.real_name]. Welcome to -^%&!-ZZT!-", "Ancient Vampire", "Security")
+ SSblackbox.record_feedback("tally", "successful_extraction", 1, "Vampire")
+
#define BLOOD_GAINED_MODIFIER 0.5
/datum/antagonist/vampire/proc/handle_bloodsucking(mob/living/carbon/human/H, suck_rate = 5 SECONDS)
diff --git a/code/modules/antagonists/vampire/vampire_powers/vampire_powers.dm b/code/modules/antagonists/vampire/vampire_powers/vampire_powers.dm
index ba7530a63e8..0852be171d5 100644
--- a/code/modules/antagonists/vampire/vampire_powers/vampire_powers.dm
+++ b/code/modules/antagonists/vampire/vampire_powers/vampire_powers.dm
@@ -108,6 +108,22 @@
return TRUE
+/datum/spell/vampire/self/exfiltrate
+ name = "Conjure Blood Chalice"
+ desc = "Congeal blood into a chalice that will generate a portal away from the station."
+ gain_desc = "You can now decide to leave the station."
+ base_cooldown = 2 SECONDS
+ action_icon = 'icons/obj/items.dmi'
+ action_icon_state = "blood-chalice"
+ var/used = FALSE
+
+/datum/spell/vampire/self/exfiltrate/cast(mob/user)
+ if(used)
+ to_chat(user, "You have already attempted to create a blood chalice!")
+ return
+ var/datum/antagonist/vampire/vamp = user.mind.has_antag_datum(/datum/antagonist/vampire)
+ vamp.prepare_exfiltration(user, /obj/item/wormhole_jaunter/extraction/vampire)
+ used = TRUE
/datum/spell/vampire/self/specialize
name = "Choose Specialization"
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 020e33d39fc..8e70528a470 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi
index 41bfe3ae6e3..e76bc79e775 100644
Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ
diff --git a/paradise.dme b/paradise.dme
index 3e10ac344e4..f768390df1b 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -701,6 +701,7 @@
#include "code\datums\outfits\outfit.dm"
#include "code\datums\outfits\outfit_admin.dm"
#include "code\datums\outfits\outfit_debug.dm"
+#include "code\datums\outfits\outfit_ghostbar.dm"
#include "code\datums\outfits\plasmamen_outfits.dm"
#include "code\datums\outfits\vv_outfit.dm"
#include "code\datums\proximity\advanced_proximity_monitor.dm"
@@ -1663,6 +1664,7 @@
#include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm"
#include "code\modules\admin\verbs\SDQL2\useful_procs.dm"
#include "code\modules\antagonists\_common\antag_datum.dm"
+#include "code\modules\antagonists\_common\antag_exfiltration.dm"
#include "code\modules\antagonists\_common\antag_helpers.dm"
#include "code\modules\antagonists\_common\antag_hud.dm"
#include "code\modules\antagonists\_common\antag_spawner.dm"
@@ -1685,6 +1687,7 @@
#include "code\modules\antagonists\changeling\powers\digitalcamo.dm"
#include "code\modules\antagonists\changeling\powers\environmental_adaption.dm"
#include "code\modules\antagonists\changeling\powers\epinephrine.dm"
+#include "code\modules\antagonists\changeling\powers\exfilling.dm"
#include "code\modules\antagonists\changeling\powers\fakedeath.dm"
#include "code\modules\antagonists\changeling\powers\fleshmend.dm"
#include "code\modules\antagonists\changeling\powers\hivemind.dm"