diff --git a/_maps/icebox.json b/_maps/icebox.json index 2e1be3eaad38..22376fda369b 100644 --- a/_maps/icebox.json +++ b/_maps/icebox.json @@ -17,7 +17,7 @@ ], "traits": [ { - "Up": 1, + "Up": true, "Mining": true, "Linkage": null, "Gravity": true, @@ -27,8 +27,8 @@ "No Parallax": true }, { - "Down": -1, - "Up": 1, + "Down": true, + "Up": true, "Mining": true, "Linkage": null, "Gravity": true, @@ -38,7 +38,7 @@ "No Parallax": true }, { - "Down": -1, + "Down": true, "Mining": true, "Linkage": null, "Gravity": true, diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 3b9beee06e03..05e321c81c21 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -3655,15 +3655,11 @@ /area/station/science/robotics/lab) "aPD" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/mining{ - name = "Mining Dock" - }, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/iron, /area/station/cargo/miningoffice) "aPO" = ( @@ -5194,14 +5190,10 @@ /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/hos) "bkr" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, /obj/machinery/conveyor{ id = "cargodisposals" }, -/obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/cargo/sorting) "bkD" = ( @@ -8189,6 +8181,14 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron/cafeteria, /area/station/service/cafeteria) +"bSR" = ( +/obj/machinery/door/airlock/mining{ + name = "Mining Dock" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "bSU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/stripes/line, @@ -10092,6 +10092,10 @@ /obj/effect/turf_decal/siding/dark_red, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) +"cpH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "cpI" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -10536,10 +10540,20 @@ /turf/open/floor/iron, /area/station/engineering/supermatter/room) "cwK" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, /area/station/maintenance/starboard/fore) "cwV" = ( /obj/effect/landmark/start/hangover, @@ -10659,13 +10673,10 @@ /turf/open/floor/iron, /area/station/medical/treatment_center) "cyc" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple/half/contrasted, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/obj/machinery/netpod, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/bitrunning/den) "cyq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -11378,9 +11389,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/grimy, /area/station/tcommsat/computer) -"cGV" = ( -/turf/closed/wall, -/area/station/cargo/miningoffice) "cHb" = ( /obj/machinery/door/firedoor/heavy, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -14359,11 +14367,16 @@ /turf/open/floor/iron/dark, /area/station/science/xenobiology) "dux" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/shaft_miner, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, +/obj/structure/table, +/obj/effect/turf_decal/tile/brown/half{ + dir = 4 + }, +/obj/item/clipboard, +/obj/item/toy/figure/miner, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/half{ + dir = 1 + }, /area/station/cargo/miningoffice) "duA" = ( /turf/closed/wall/r_wall, @@ -14945,6 +14958,16 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"dBM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "dBO" = ( /obj/structure/cable, /turf/open/floor/circuit, @@ -16018,14 +16041,9 @@ /turf/open/floor/plating, /area/station/engineering/supermatter/room) "dPC" = ( -/obj/structure/table, -/obj/machinery/microwave{ - desc = "Cooks and boils stuff, somehow."; - pixel_x = -3; - pixel_y = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/miner, +/obj/effect/turf_decal/delivery, +/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron, /area/station/cargo/miningoffice) "dPD" = ( @@ -16545,6 +16563,9 @@ dir = 4 }, /obj/structure/cable, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, /turf/open/floor/iron, /area/station/cargo/miningoffice) "dXB" = ( @@ -17631,13 +17652,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/gateway) -"elO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/maintenance/starboard/fore) "elP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/yellow/fourcorners, @@ -19199,11 +19213,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"eFU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "eFZ" = ( /obj/structure/table/wood, /obj/item/storage/dice, @@ -20742,7 +20751,12 @@ /turf/open/floor/iron/dark, /area/station/engineering/storage_shared) "eYt" = ( -/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/computer/order_console/mining, +/obj/item/radio/intercom/directional/west, +/obj/machinery/firealarm/directional/west{ + pixel_y = -9 + }, /turf/open/floor/iron, /area/station/cargo/miningoffice) "eYy" = ( @@ -20935,13 +20949,6 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/iron/smooth, /area/station/maintenance/department/science/xenobiology) -"fbu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "fbF" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/neutral, @@ -22525,11 +22532,13 @@ /turf/open/floor/iron/grimy, /area/station/service/library) "ftS" = ( -/obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 }, /obj/structure/cable, +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 4 + }, /turf/open/floor/iron, /area/station/cargo/miningoffice) "ftU" = ( @@ -23032,12 +23041,14 @@ /turf/open/floor/iron, /area/station/engineering/storage) "fAj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, +/turf/open/floor/iron/herringbone, /area/station/cargo/miningoffice) "fAn" = ( /obj/machinery/holopad, @@ -25122,8 +25133,13 @@ /turf/open/floor/iron, /area/station/hallway/secondary/entry) "gco" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron, /area/station/cargo/miningoffice) "gcr" = ( @@ -26650,8 +26666,11 @@ /turf/open/floor/iron, /area/station/commons/storage/primary) "guj" = ( -/obj/effect/landmark/start/shaft_miner, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, /turf/open/floor/iron, /area/station/cargo/miningoffice) "guo" = ( @@ -29899,9 +29918,10 @@ /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay) "hkn" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/turf_decal/delivery, -/obj/machinery/airalarm/directional/south, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/miningoffice) "hkt" = ( @@ -31031,11 +31051,8 @@ /area/station/maintenance/department/science/xenobiology) "hzs" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/turf/closed/wall, +/area/station/bitrunning/den) "hzA" = ( /obj/item/kirbyplants/random, /obj/machinery/power/apc/auto_name/directional/north, @@ -32653,20 +32670,14 @@ /turf/open/floor/plating, /area/station/engineering/supermatter/room) "hXd" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/toolbox/emergency{ - pixel_x = -3; - pixel_y = 3 +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 4 }, -/obj/item/storage/toolbox/emergency, -/obj/item/shovel, -/obj/item/shovel, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/obj/machinery/light/directional/south, +/obj/effect/landmark/bitrunning/station_reward_spawn, +/turf/open/floor/iron/dark/smooth_large, +/area/station/bitrunning/den) "hXf" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -33767,10 +33778,11 @@ /turf/open/floor/plating, /area/station/medical/virology) "iio" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown/half/contrasted{ +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/loading_area{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/miningoffice) "iiy" = ( @@ -34566,6 +34578,19 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"itp" = ( +/obj/effect/turf_decal/tile/brown/half{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/computer/order_console/bitrunning, +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/iron/half{ + dir = 1 + }, +/area/station/cargo/miningoffice) "itF" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 6 @@ -35010,14 +35035,12 @@ }, /area/station/service/kitchen) "izj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/turf/open/floor/iron, +/turf/open/floor/iron/herringbone, /area/station/cargo/miningoffice) "izo" = ( /obj/structure/table/wood, @@ -36708,12 +36731,9 @@ /turf/open/floor/iron, /area/station/engineering/lobby) "iXd" = ( -/obj/effect/landmark/start/shaft_miner, /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/station/cargo/miningoffice) "iXj" = ( /obj/effect/landmark/start/hangover, @@ -37526,7 +37546,9 @@ /turf/open/floor/plating, /area/station/engineering/atmos/mix) "jfO" = ( -/obj/structure/table, +/obj/structure/closet/wardrobe/miner, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/backpack/satchel/explorer, /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/cargo/miningoffice) @@ -39371,10 +39393,8 @@ /turf/open/floor/iron, /area/station/science/lobby) "jBM" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 4 - }, /turf/open/floor/iron, /area/station/cargo/miningoffice) "jBR" = ( @@ -39462,10 +39482,10 @@ /turf/open/floor/wood, /area/station/service/library/abandoned) "jCu" = ( -/obj/machinery/computer/order_console/mining, +/obj/structure/closet/secure_closet/miner, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, /obj/machinery/light/directional/north, -/obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/cargo/miningoffice) "jCv" = ( @@ -40118,13 +40138,17 @@ /turf/open/floor/iron/white, /area/station/medical/medbay) "jKY" = ( -/obj/structure/cable, -/obj/effect/turf_decal/bot, -/obj/structure/table, -/obj/item/storage/medkit/regular, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil/streak, +/obj/machinery/camera/directional/south, +/obj/effect/landmark/bitrunning/station_reward_spawn, +/turf/open/floor/iron/dark/smooth_large, +/area/station/bitrunning/den) "jKZ" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ @@ -40701,8 +40725,16 @@ /turf/open/floor/iron/white, /area/station/medical/medbay) "jRc" = ( -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "jRg" = ( @@ -44226,10 +44258,13 @@ /turf/closed/wall, /area/station/hallway/secondary/entry) "kKx" = ( -/obj/effect/turf_decal/loading_area{ +/obj/effect/turf_decal/tile/brown/half{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/half{ dir = 1 }, -/turf/open/floor/iron, /area/station/cargo/miningoffice) "kKz" = ( /obj/machinery/turretid{ @@ -44927,11 +44962,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/engineering/main) -"kTs" = ( -/obj/structure/closet/secure_closet/miner, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "kTy" = ( /obj/structure/chair/office{ dir = 8 @@ -46282,10 +46312,12 @@ /turf/open/floor/iron, /area/station/maintenance/solars/starboard/fore) "ljQ" = ( -/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/loading_area{ dir = 1 }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/miningoffice) "ljS" = ( @@ -46384,8 +46416,11 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/herringbone, /area/station/cargo/miningoffice) "llz" = ( /obj/effect/decal/cleanable/oil, @@ -49789,6 +49824,9 @@ /obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/fore) +"mdR" = ( +/turf/closed/wall, +/area/station/bitrunning/den) "mef" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /obj/machinery/meter, @@ -50320,13 +50358,14 @@ /turf/closed/wall/r_wall, /area/station/ai_monitored/command/storage/eva) "mlF" = ( -/obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/purple/half/contrasted{ dir = 8 }, /obj/structure/sign/poster/official/random/directional/west, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/obj/machinery/computer/quantum_console, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark/smooth_corner, +/area/station/bitrunning/den) "mlT" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -50982,11 +51021,9 @@ /turf/open/floor/iron, /area/station/engineering/storage) "mtL" = ( -/obj/structure/closet/secure_closet/miner, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, +/obj/effect/spawner/structure/window/reinforced, /obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron, +/turf/open/floor/plating, /area/station/cargo/miningoffice) "mtO" = ( /obj/effect/turf_decal/tile/yellow{ @@ -51710,9 +51747,12 @@ /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "mDm" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/obj/machinery/quantum_server, +/obj/effect/turf_decal/bot/left, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 4 + }, +/area/station/bitrunning/den) "mDo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/brown{ @@ -52491,6 +52531,8 @@ dir = 4 }, /obj/machinery/firealarm/directional/east, +/obj/machinery/firealarm/directional/east, +/obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "mKO" = ( @@ -54120,8 +54162,14 @@ /turf/open/floor/plating, /area/station/maintenance/department/chapel) "nhj" = ( -/obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/table, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_x = -3; + pixel_y = 5 + }, +/obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron, /area/station/cargo/miningoffice) "nhm" = ( @@ -55571,6 +55619,18 @@ }, /turf/open/space/basic, /area/space) +"nzO" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/obj/effect/landmark/start/shaft_miner, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "nzR" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -55946,11 +56006,11 @@ /turf/open/floor/iron, /area/station/maintenance/port) "nEE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/obj/machinery/netpod, +/obj/structure/sign/poster/random/directional/north, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/bitrunning/den) "nEJ" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/yellow/line, @@ -58467,12 +58527,23 @@ /turf/open/floor/iron, /area/station/security/prison/garden) "okN" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/start/bitrunner, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "okV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/plumbed{ @@ -59265,11 +59336,10 @@ /turf/open/floor/iron, /area/station/maintenance/port) "owZ" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/purple/half/contrasted, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/table, +/obj/item/storage/medkit/regular, +/obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/cargo/miningoffice) "oxb" = ( @@ -59560,15 +59630,27 @@ /turf/open/floor/iron, /area/station/engineering/main) "oAV" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "oAW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63172,7 +63254,19 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "pxS" = ( -/turf/open/floor/iron, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/half{ + dir = 1 + }, /area/station/cargo/miningoffice) "pxT" = ( /obj/effect/spawner/random/structure/crate, @@ -65204,15 +65298,16 @@ /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/pumproom) "pUs" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/obj/machinery/door/airlock/mining/glass{ + name = "Bitrunning Den" }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "pUw" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -66471,20 +66566,16 @@ /turf/open/floor/iron/dark, /area/station/command/bridge) "qko" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/clipboard, -/obj/item/toy/figure/miner, -/obj/machinery/light/directional/north, -/obj/machinery/light_switch/directional/west{ - pixel_x = -42 +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/brown/half{ + dir = 8 }, -/obj/effect/turf_decal/bot, -/obj/machinery/firealarm/directional/west, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ +/obj/machinery/light/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/iron/half{ dir = 1 }, -/turf/open/floor/iron, /area/station/cargo/miningoffice) "qkA" = ( /obj/effect/turf_decal/tile/red{ @@ -66674,9 +66765,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) @@ -67094,13 +67187,21 @@ /turf/open/floor/iron, /area/station/science/xenobiology) "qsF" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "qsN" = ( /obj/structure/chair{ dir = 4 @@ -67796,11 +67897,12 @@ /obj/structure/closet/wardrobe/miner, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/directional/south, -/obj/item/storage/backpack/satchel/explorer, /obj/effect/turf_decal/bot, /obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/obj/machinery/netpod, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/bitrunning/den) "qBY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -69938,6 +70040,16 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/maintenance/port) +"rer" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/herringbone, +/area/station/cargo/miningoffice) "rev" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -70060,9 +70172,7 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "rgC" = ( -/obj/structure/cable, /obj/structure/table/reinforced, -/obj/effect/decal/cleanable/dirt, /obj/item/folder/yellow, /obj/item/gps/mining, /obj/effect/turf_decal/tile/brown/anticorner/contrasted, @@ -70685,15 +70795,11 @@ /obj/structure/cable, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/mining{ - name = "Mining Dock" - }, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/iron, /area/station/cargo/miningoffice) "rmI" = ( @@ -71677,6 +71783,9 @@ /area/station/cargo/storage) "rAl" = ( /obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /obj/machinery/conveyor{ id = "cargodisposals" }, @@ -71887,6 +71996,13 @@ dir = 8 }, /area/station/engineering/lobby) +"rCK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/cargo/sorting) "rCM" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 4 @@ -75146,11 +75262,7 @@ /area/station/medical/pharmacy) "stf" = ( /obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/purple/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, +/turf/open/floor/iron/herringbone, /area/station/cargo/miningoffice) "stx" = ( /obj/structure/chair/pew/left, @@ -75856,6 +75968,11 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"sCr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "sCx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -75914,6 +76031,7 @@ }, /obj/effect/mapping_helpers/airlock/access/any/supply/mining, /obj/effect/mapping_helpers/airlock/access/any/supply/shipping, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, /turf/open/floor/iron, /area/station/cargo/sorting) "sCY" = ( @@ -76665,8 +76783,6 @@ /turf/open/floor/iron, /area/station/science/robotics/mechbay) "sLg" = ( -/obj/machinery/rnd/bepis, -/obj/effect/turf_decal/box/white, /turf/open/floor/iron, /area/station/cargo/storage) "sLx" = ( @@ -78090,10 +78206,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/station/engineering/supermatter/room) -"tcB" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "tcG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -78796,14 +78908,11 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/aft) "toy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, +/turf/open/floor/iron/herringbone, /area/station/cargo/miningoffice) "toB" = ( /obj/machinery/light/directional/west, @@ -80880,26 +80989,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/server) -"tNn" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/requests_console/directional/south{ - department = "Mining"; - name = "Mining Requests Console" - }, -/obj/machinery/requests_console/directional/south{ - department = "Mining"; - name = "Mining Requests Console" - }, -/obj/machinery/camera/directional/south{ - c_tag = "Cargo - Mining Dock"; - name = "cargo camera" - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "tNq" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -81344,6 +81433,13 @@ "tSj" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/miningoffice) "tSo" = ( @@ -83452,7 +83548,8 @@ }, /area/station/medical/morgue) "usJ" = ( -/obj/effect/turf_decal/tile/purple/half/contrasted{ +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/loading_area{ dir = 1 }, /turf/open/floor/iron, @@ -85014,12 +85111,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ - dir = 9 + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, /area/station/maintenance/starboard/fore) "uNE" = ( /obj/machinery/atmospherics/components/unary/passive_vent{ @@ -85074,12 +85171,12 @@ /turf/open/floor/iron/white, /area/station/science/ordnance/office) "uOk" = ( -/obj/structure/cable, /obj/structure/chair/office{ dir = 4 }, +/obj/effect/turf_decal/tile/brown/half/contrasted, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/purple/half/contrasted, +/obj/effect/landmark/start/shaft_miner, /turf/open/floor/iron, /area/station/cargo/miningoffice) "uOl" = ( @@ -88513,11 +88610,24 @@ /turf/open/floor/iron, /area/station/cargo/sorting) "vDj" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -8; + pixel_y = 17 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/purple/half/contrasted, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/obj/machinery/holopad, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "vDm" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -88866,15 +88976,22 @@ /turf/open/floor/plating, /area/station/maintenance/department/security) "vId" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "vIq" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction{ @@ -89211,13 +89328,20 @@ /turf/open/floor/iron, /area/station/security/checkpoint/engineering) "vNV" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half{ + dir = 8 + }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/half{ dir = 1 }, -/turf/open/floor/iron, /area/station/cargo/miningoffice) "vOh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -90754,6 +90878,7 @@ }, /obj/effect/mapping_helpers/airlock/access/any/supply/shipping, /obj/effect/mapping_helpers/airlock/access/any/supply/mining, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, /turf/open/floor/iron, /area/station/cargo/sorting) "whc" = ( @@ -92237,14 +92362,26 @@ /turf/open/floor/iron, /area/station/maintenance/port/aft) "wwk" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/effect/decal/cleanable/dirt, /obj/machinery/light/directional/south, /obj/effect/turf_decal/delivery, /obj/structure/sign/poster/official/random/directional/south, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/toolbox/emergency, +/obj/item/shovel, +/obj/item/shovel, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/effect/turf_decal/bot, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/light_switch/directional/west{ + pixel_x = -38 + }, +/obj/machinery/airalarm/directional/south, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/miningoffice) "wwr" = ( @@ -93743,6 +93880,15 @@ }, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) +"wRm" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/shaft_miner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "wRp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -97428,14 +97574,9 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) "xMZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/bitrunning/den) "xNe" = ( /obj/structure/lattice, /obj/structure/grille/broken, @@ -98033,9 +98174,13 @@ /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) "xVv" = ( -/obj/effect/turf_decal/tile/purple/half/contrasted{ +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, /turf/open/floor/iron, /area/station/cargo/miningoffice) "xVI" = ( @@ -143123,12 +143268,12 @@ ohH xhW xhW nPo -kGo -nPo -xhW -xhW -xhW -xhW +rCK +mdR +mdR +mdR +mdR +mdR uBd mKN vPp @@ -143385,7 +143530,7 @@ xMZ mlF qsF jKY -tpZ +mdR lDY tpZ kOj @@ -143637,12 +143782,12 @@ uzM aPD stf llj -mDm -fbu +rer +xMZ mDm vDj hXd -tpZ +mdR qmT tpZ aaa @@ -143899,7 +144044,7 @@ pUs okN oAV vId -qyX +mdR uND tpZ aaa @@ -144149,15 +144294,15 @@ fya cSK pok rWo -llJ +itp kKx dux -tcB +mdR nEE cyc qBS -tpZ -eFU +mdR +uND tpZ aad lhY @@ -144407,13 +144552,13 @@ krp krp aJE mtL -kKx +bSR iXd -eYt +mdR hzs -tNn -cGV -tpZ +mdR +mdR +mdR jRc tpZ aaa @@ -144663,7 +144808,7 @@ jmp cQo gkP krp -kTs +llJ ljQ guj eYt @@ -144671,7 +144816,7 @@ nhj owZ wwk tpZ -elO +uND tpZ aaa lhY @@ -144922,12 +145067,12 @@ iIj aJE jCu iio -mDm -eYt +nzO +dBM tSj gco hkn -tpZ +qyX cwK tpZ aaa @@ -145179,9 +145324,9 @@ eGC aJE dPC usJ -nhj -mDm -mDm +wRm +sCr +cpH uOk pPp tpZ diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 202a5feb524f..8e2776eef326 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -2078,6 +2078,10 @@ }, /turf/open/floor/plating, /area/station/engineering/transit_tube) +"aKb" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/bitrunning/den) "aKf" = ( /obj/machinery/light_switch/directional/south, /obj/structure/chair/comfy/brown{ @@ -2760,6 +2764,7 @@ /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 4 }, +/obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark, /area/station/cargo/miningdock) "aVH" = ( @@ -4179,12 +4184,6 @@ }, /turf/open/floor/iron/dark, /area/mine/storage) -"bsx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "bsG" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research/glass{ @@ -10963,6 +10962,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"dsp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "dsA" = ( /obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/components/tank/air{ @@ -11022,6 +11034,13 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, /turf/open/floor/iron, /area/station/engineering/engine_smes) +"dtn" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron, +/area/station/cargo/miningdock) "dtr" = ( /obj/machinery/computer/records/medical, /obj/effect/turf_decal/tile/green/anticorner/contrasted, @@ -11798,6 +11817,11 @@ /obj/effect/decal/cleanable/food/egg_smudge, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"dGi" = ( +/obj/machinery/netpod, +/obj/machinery/camera/directional/south, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/bitrunning/den) "dGK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12252,6 +12276,9 @@ /obj/item/pickaxe{ pixel_x = 5 }, +/obj/item/shovel{ + pixel_x = -5 + }, /turf/open/floor/iron, /area/station/cargo/miningdock) "dPy" = ( @@ -12549,12 +12576,10 @@ /turf/open/floor/iron/freezer, /area/mine/laborcamp) "dUK" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Mining Dock" - }, -/obj/machinery/computer/security/mining, -/turf/open/floor/iron, -/area/station/cargo/miningdock) +/obj/machinery/netpod, +/obj/machinery/light/small/directional/south, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/bitrunning/den) "dUL" = ( /obj/machinery/door/poddoor/preopen{ id = "maint1" @@ -13262,6 +13287,9 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/commons/locker) +"ehu" = ( +/turf/closed/wall, +/area/station/bitrunning/den) "ehy" = ( /obj/machinery/keycard_auth/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -13604,6 +13632,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"emT" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/computer/order_console/bitrunning{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "ena" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -14158,10 +14193,9 @@ /turf/open/floor/iron, /area/station/maintenance/department/medical/central) "ewq" = ( -/obj/machinery/light_switch/directional/north, /obj/machinery/light/directional/north, /turf/open/floor/iron, -/area/station/cargo/miningdock) +/area/station/cargo/storage) "ewz" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/north, @@ -16226,6 +16260,7 @@ /area/mine/laborcamp) "feB" = ( /obj/machinery/airalarm/directional/east, +/obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/cargo/miningdock) "feJ" = ( @@ -16618,13 +16653,14 @@ /turf/open/floor/iron/white, /area/station/medical/treatment_center) "flq" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/quantum_server, +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/cargo/miningdock) +/area/station/bitrunning/den) "flx" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=HOP"; @@ -17814,6 +17850,12 @@ /obj/effect/turf_decal/trimline/red/filled/line, /turf/open/floor/iron/dark/side, /area/station/security/prison) +"fHn" = ( +/obj/machinery/firealarm/directional/north, +/obj/structure/chair, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron, +/area/station/cargo/storage) "fHo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/dark_green{ @@ -18226,12 +18268,6 @@ dir = 1 }, /area/station/engineering/engine_smes) -"fNx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "fNA" = ( /turf/open/openspace, /area/station/medical/medbay/central) @@ -20242,6 +20278,21 @@ "gwK" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/engineering) +"gxb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "gxn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, @@ -20392,12 +20443,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"gzN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "gzV" = ( /obj/structure/mineral_door/paperframe{ name = "Meditation Room" @@ -26935,6 +26980,20 @@ }, /turf/open/floor/plating/icemoon, /area/station/science/ordnance/bomb) +"iKe" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/landmark/start/bitrunner, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "iKl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -31903,6 +31962,14 @@ }, /turf/open/floor/iron/smooth, /area/station/security/holding_cell) +"kpn" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/turf_decal/box/corners, +/obj/effect/landmark/bitrunning/station_reward_spawn, +/turf/open/floor/iron/dark/smooth_large, +/area/station/bitrunning/den) "kpp" = ( /obj/structure/table/wood, /obj/item/storage/box/matches, @@ -33667,10 +33734,11 @@ /turf/open/floor/plating, /area/station/maintenance/fore) "kQL" = ( -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, +/obj/structure/chair, +/obj/effect/landmark/start/shaft_miner, /turf/open/floor/iron, -/area/station/cargo/miningdock) +/area/station/cargo/storage) "kQM" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 5 @@ -40144,13 +40212,12 @@ }, /area/mine/eva) "naO" = ( -/obj/structure/rack, -/obj/item/shovel{ - pixel_x = -5 - }, /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 8 }, +/obj/machinery/computer/security/mining{ + dir = 1 + }, /turf/open/floor/iron, /area/station/cargo/miningdock) "naP" = ( @@ -40528,6 +40595,11 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"nfV" = ( +/obj/machinery/netpod, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/bitrunning/den) "ngj" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 9 @@ -42797,9 +42869,9 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/iron, -/area/station/cargo/miningdock) +/area/station/cargo/storage) "nME" = ( /obj/item/clothing/head/utility/hardhat, /turf/open/floor/plating/snowed/icemoon, @@ -44578,6 +44650,10 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"oou" = ( +/obj/structure/chair, +/turf/open/floor/iron, +/area/station/cargo/storage) "ooL" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 4 @@ -46567,11 +46643,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"oVf" = ( -/obj/effect/landmark/start/shaft_miner, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "oVy" = ( /obj/machinery/door/airlock/security{ name = "Permabrig Lab" @@ -47139,6 +47210,13 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"pfc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron, +/area/station/cargo/miningdock) "pfe" = ( /turf/closed/wall, /area/station/hallway/primary/fore) @@ -47560,6 +47638,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/security/holding_cell) +"pmQ" = ( +/obj/machinery/light_switch/directional/west, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/bitrunning/station_reward_spawn, +/turf/open/floor/iron/dark/smooth_large, +/area/station/bitrunning/den) "pna" = ( /obj/machinery/door/poddoor/preopen{ id = "Engineering"; @@ -51057,14 +51148,6 @@ /obj/machinery/light/directional/north, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"qtT" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Mining Dock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "qum" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -51966,6 +52049,13 @@ /area/mine/eva/lower) "qJJ" = ( /obj/machinery/firealarm/directional/east, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/folder/yellow, +/obj/item/pen, /turf/open/floor/iron, /area/station/cargo/miningdock) "qJT" = ( @@ -51994,6 +52084,17 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/plating, /area/station/security/prison/safe) +"qKk" = ( +/obj/machinery/door/airlock/mining/glass{ + id_tag = "innercargo"; + name = "Bitrunning Den" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/turf/open/floor/iron, +/area/station/bitrunning/den) "qKq" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -55796,6 +55897,10 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"rVt" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/cargo/miningdock) "rVy" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron/dark/textured, @@ -59989,13 +60094,6 @@ /obj/item/key/janitor, /turf/open/floor/iron, /area/station/service/janitor) -"tqC" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "tqQ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -60481,7 +60579,11 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/event_spawn, +/obj/machinery/door/airlock/mining{ + name = "Mining Dock" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/cargo/miningdock) "tyK" = ( @@ -60974,11 +61076,11 @@ /area/station/science/lab) "tFP" = ( /obj/structure/closet/crate, -/obj/machinery/light/small/directional/east, /obj/item/radio/intercom/directional/east, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/cargo/miningdock) "tFV" = ( @@ -61377,6 +61479,13 @@ /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/requests_console/directional/west{ + department = "Mining"; + name = "Mining Requests Console" + }, /turf/open/floor/iron, /area/station/cargo/miningdock) "tMe" = ( @@ -63729,6 +63838,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos) +"uAS" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/landmark/start/bitrunner, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "uBi" = ( /turf/closed/wall, /area/station/ai_monitored/turret_protected/ai) @@ -64919,6 +65035,11 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"uXn" = ( +/obj/structure/cable, +/obj/machinery/computer/quantum_console, +/turf/open/floor/iron/dark/smooth_corner, +/area/station/bitrunning/den) "uXr" = ( /obj/machinery/camera/directional/east{ c_tag = "Chapel East" @@ -65347,10 +65468,7 @@ /turf/open/floor/iron/grimy, /area/station/security/prison/work) "veh" = ( -/obj/machinery/rnd/bepis, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, +/obj/machinery/vending/wardrobe/cargo_wardrobe, /turf/open/floor/iron, /area/station/cargo/storage) "vek" = ( @@ -65506,8 +65624,10 @@ /area/station/medical/medbay/aft) "vgC" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, -/area/station/cargo/miningdock) +/area/station/cargo/storage) "vgD" = ( /obj/structure/rack, /obj/item/stack/sheet/iron/fifty, @@ -67991,13 +68111,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/command/bridge) -"vWV" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/effect/landmark/start/shaft_miner, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "vWW" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, @@ -68224,10 +68337,11 @@ }, /obj/structure/table, /obj/item/hand_labeler, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/item/folder/yellow, +/obj/machinery/requests_console/directional/north{ + department = "Cargo Bay"; + name = "Cargo Bay Requests Console" + }, /turf/open/floor/iron, /area/station/cargo/storage) "waL" = ( @@ -70635,17 +70749,17 @@ }, /area/station/science/research) "wMq" = ( -/obj/structure/table, -/obj/item/folder/yellow, -/obj/item/pen, -/obj/machinery/light/directional/west, -/obj/machinery/requests_console/directional/west{ - department = "Mining"; - name = "Mining Requests Console"; - supplies_requestable = 1 +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/cargo/miningdock) +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/machinery/holopad, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "wMt" = ( /turf/closed/wall, /area/station/hallway/primary/central/fore) @@ -71743,12 +71857,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/storage) -"xdz" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "xdA" = ( /obj/effect/turf_decal/siding/white{ dir = 4 @@ -225859,7 +225967,7 @@ pdf lAr tKI veh -gzN +ajw ajw vlN mmi @@ -226116,7 +226224,7 @@ sIM lAr tKI waE -xdz +ajw kXs vlN mmi @@ -227156,7 +227264,7 @@ irD irD pzX gdN -ajw +emT maT bln qjQ @@ -227413,11 +227521,11 @@ iaF ajw ajw vVN -kXr -kXr -bln -qjQ -qjQ +ehu +ehu +aKb +ehu +ehu ojk bVJ dSO @@ -227670,11 +227778,11 @@ qqJ gjP ajw ajw -maT -bln -bln -bln -qjQ +aKb +pmQ +kpn +uAS +ehu tFP hxE xtr @@ -227925,13 +228033,13 @@ kXr kXr kXr kXr -ajw -ajw -kXr -bln -bln -qjQ -qjQ +fHn +eMa +qKk +dsp +gxb +dGi +ehu qjQ rVe qjQ @@ -228181,14 +228289,14 @@ xNu vra lZQ wXR -qjQ -aOd -qtT -aOd -qjQ -qjQ -qjQ -tqC +kXr +oou +eMa +ehu +uXn +iKe +nfV +ehu tLX jBf naO @@ -228438,15 +228546,15 @@ kXA oDt kRU oQa -qjQ +kXr kQL vgC -hoD +ehu flq wMq dUK -hoD -hoD +ehu +rVt hxE dPn aOd @@ -228695,14 +228803,14 @@ cXl uxl oRy aHC -qjQ +kXr ewq -oVf -hoD -hoD -vWV -fNx -hoD +vgC +ehu +aKb +aKb +ehu +ehu iVA hxE aCh @@ -228953,13 +229061,13 @@ cHb psW psW nMB -hxE -hxE +vgC +vgC tyH hxE hxE -hxE -hxE +pfc +dtn hxE hxE wBV @@ -229209,13 +229317,13 @@ ljl kXA rLu nRq +maT +ajw +eMa aOd -hoD -bsx -hoD qJJ hxE -hoD +iVA hoD hoD vdo @@ -229469,8 +229577,8 @@ uuP tue nZh lNG -nZh tue +qjQ hxE feB lis diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 3b5e17859caa..d19cbd5e49e6 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -23091,7 +23091,6 @@ /area/station/medical/virology) "hGC" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/rnd/bepis, /obj/effect/turf_decal/box/white, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 20b55db673a0..5d3a454518ed 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -449,6 +449,14 @@ }, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) +"aiW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "aja" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3427,12 +3435,18 @@ /turf/open/floor/iron/white, /area/station/medical/abandoned) "bje" = ( -/obj/structure/closet/emcloset, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/effect/turf_decal/box/corners{ + dir = 8 }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil/streak, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/landmark/bitrunning/station_reward_spawn, +/turf/open/floor/iron/dark/smooth_large, +/area/station/bitrunning/den) "bjB" = ( /obj/structure/sign/directions/security{ dir = 1; @@ -3813,6 +3827,23 @@ }, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/qm) +"boz" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured_half, +/area/station/bitrunning/den) "boD" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -4548,6 +4579,16 @@ "bDq" = ( /turf/closed/wall/r_wall, /area/station/engineering/transit_tube) +"bDK" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/station/cargo/storage) "bDN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -4656,14 +4697,15 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) "bGM" = ( -/obj/machinery/door/airlock/mining{ - name = "Mining Office" - }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, /turf/open/floor/iron, /area/station/cargo/miningoffice) "bGV" = ( @@ -4941,6 +4983,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"bMW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bMY" = ( /turf/closed/wall, /area/station/medical/office) @@ -7118,13 +7168,14 @@ /turf/open/floor/plating, /area/station/security/brig) "cGL" = ( +/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 1 +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 }, -/obj/effect/mapping_helpers/mail_sorting/supply/disposals, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "cGS" = ( /obj/machinery/airalarm/directional/west, /obj/machinery/camera/directional/west{ @@ -9170,10 +9221,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/engineering/atmos) -"dwA" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "dwJ" = ( /obj/structure/lattice, /obj/effect/spawner/random/structure/grille, @@ -10900,12 +10947,14 @@ /turf/open/floor/plating, /area/station/cargo/sorting) "edP" = ( -/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ dir = 8 }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "edQ" = ( @@ -12324,10 +12373,21 @@ /turf/closed/wall/r_wall, /area/station/command/heads_quarters/captain/private) "eEb" = ( +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 8 + }, /obj/structure/cable, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/mining{ + name = "Bitrunning Den" + }, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/turf/open/floor/iron/dark/textured_half, +/area/station/bitrunning/den) "eEf" = ( /obj/machinery/camera/directional/north{ c_tag = "Bar - Backroom" @@ -14583,13 +14643,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) -"fBl" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "fBt" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -15228,7 +15281,8 @@ name = "Mining Dock Maintenance" }, /obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining, /turf/open/floor/plating, /area/station/maintenance/port/fore) "fNI" = ( @@ -17034,12 +17088,6 @@ "guX" = ( /turf/closed/wall, /area/station/commons/storage/primary) -"guZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "gva" = ( /obj/effect/turf_decal/delivery, /turf/open/floor/iron, @@ -18114,12 +18162,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /turf/open/space/basic, /area/space/nearstation) -"gQv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "gQw" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line, @@ -18416,15 +18458,10 @@ /turf/open/floor/wood, /area/station/commons/lounge) "gVb" = ( -/obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/oil/slippery, -/obj/effect/decal/cleanable/blood/gibs/down, -/mob/living/simple_animal/bot/mulebot{ - name = "Leaping Rabbit" - }, -/turf/open/floor/plating, +/turf/closed/wall, /area/station/maintenance/port/fore) "gVj" = ( /obj/effect/turf_decal/tile/blue, @@ -22178,6 +22215,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"inp" = ( +/obj/effect/spawner/random/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "inw" = ( /obj/machinery/disposal/bin{ desc = "A pneumatic waste disposal unit. This one leads into space!"; @@ -29418,13 +29464,35 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"kHM" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/textured_half, +/area/station/bitrunning/den) "kHU" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ dir = 4 }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light_switch/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/bitrunning/station_reward_spawn, +/turf/open/floor/iron/dark/smooth_large, +/area/station/bitrunning/den) "kIG" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance/two, @@ -29598,6 +29666,13 @@ /obj/structure/window/spawner/directional/east, /turf/open/floor/plating, /area/station/service/chapel/funeral) +"kLY" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/computer/order_console/bitrunning, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "kLZ" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -31427,6 +31502,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/security/evidence) +"lqG" = ( +/obj/machinery/netpod, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/bitrunning/den) "lqL" = ( /obj/effect/turf_decal/siding{ dir = 1 @@ -32907,6 +32986,9 @@ "lUe" = ( /obj/structure/reagent_dispensers/fueltank, /obj/structure/sign/poster/contraband/random/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "lUj" = ( @@ -34299,6 +34381,12 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/research) +"muJ" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "mvg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34532,6 +34620,9 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "mzu" = ( @@ -34609,9 +34700,8 @@ /turf/open/floor/iron/dark, /area/station/medical/morgue) "mAy" = ( -/obj/machinery/computer/order_console/mining, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 8 +/obj/effect/turf_decal/tile/brown{ + dir = 4 }, /turf/open/floor/iron, /area/station/cargo/miningoffice) @@ -38194,6 +38284,9 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/item/storage/toolbox/emergency, /obj/effect/spawner/random/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "nMF" = ( @@ -40445,6 +40538,10 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"oBV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/bitrunning/den) "oCb" = ( /obj/structure/chair, /obj/item/radio/intercom/chapel/directional/west, @@ -43518,6 +43615,21 @@ /obj/machinery/research/anomaly_refinery, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"pII" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/textured_half, +/area/station/bitrunning/den) "pJf" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -43898,6 +44010,9 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron, /area/station/security/prison/safe) +"pPV" = ( +/turf/closed/wall, +/area/station/bitrunning/den) "pQj" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -46565,6 +46680,21 @@ }, /turf/open/floor/iron, /area/station/security/prison) +"qNS" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/bitrunner, +/obj/machinery/holopad, +/turf/open/floor/iron/dark/textured_half, +/area/station/bitrunning/den) "qNV" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47356,6 +47486,16 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"rcs" = ( +/obj/machinery/quantum_server, +/obj/effect/turf_decal/bot/left, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 6 + }, +/obj/machinery/light/directional/north, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "rcF" = ( /obj/structure/table/wood, /obj/item/storage/crayons, @@ -49214,6 +49354,16 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) +"rKh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "rKB" = ( /obj/machinery/airalarm/directional/east, /turf/open/floor/engine, @@ -49443,10 +49593,14 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "rNV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/machinery/door/airlock/maintenance{ + name = "Mining Dock Maintenance" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining, /turf/open/floor/plating, /area/station/maintenance/port/fore) "rOz" = ( @@ -49691,10 +49845,14 @@ /turf/open/floor/plating, /area/station/service/chapel) "rSa" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/decal/cleanable/blood/gibs/down, +/mob/living/simple_animal/bot/mulebot{ + name = "Leaping Rabbit" }, -/obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/port/fore) "rSb" = ( @@ -54201,12 +54359,10 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/central) "ttG" = ( -/obj/item/clothing/gloves/color/rainbow, -/obj/item/clothing/shoes/sneakers/rainbow, -/obj/item/clothing/under/color/rainbow, -/obj/item/clothing/head/soft/rainbow, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/netpod, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/bitrunning/den) "ttM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57285,13 +57441,6 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"uyj" = ( -/obj/machinery/rnd/bepis, -/obj/effect/turf_decal/stripes/end{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "uyr" = ( /obj/item/radio/intercom/directional/east, /obj/effect/turf_decal/tile/neutral{ @@ -57685,6 +57834,12 @@ /obj/machinery/photocopier, /turf/open/floor/iron, /area/station/engineering/break_room) +"uFF" = ( +/obj/machinery/netpod, +/obj/machinery/light/directional/west, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/bitrunning/den) "uFK" = ( /obj/structure/table, /obj/item/clothing/under/rank/prisoner/skirt{ @@ -59752,7 +59907,7 @@ "vpU" = ( /obj/effect/spawner/random/structure/crate, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 5 }, /turf/open/floor/plating, /area/station/maintenance/port/fore) @@ -62801,6 +62956,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/grass, /area/station/service/hydroponics) +"wvC" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/computer/order_console/mining, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "wvP" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/iv_drip, @@ -64026,6 +64188,15 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"wST" = ( +/obj/machinery/computer/quantum_console, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/camera/directional/north{ + c_tag = "Mining Dock" + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "wTp" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/brigdoor{ @@ -64603,7 +64774,8 @@ }, /obj/structure/cable, /obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining, /turf/open/floor/iron, /area/station/cargo/miningoffice) "xej" = ( @@ -65175,15 +65347,15 @@ /turf/open/floor/iron/dark, /area/station/science/genetics) "xoc" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Mining Dock Maintenance" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "xoj" = ( /obj/structure/table/reinforced, /obj/machinery/microwave{ @@ -84115,10 +84287,10 @@ nmg vEV ovy jXu -aaa -aaa -aaa -pnI +pPV +pPV +pPV +hKg bUm kRe qfi @@ -84372,9 +84544,9 @@ jXu kXA ufv jXu -aaa -aaa -aaa +wST +kHM +uFF hKg hKg fQW @@ -84629,10 +84801,10 @@ jXu jXu hWS jXu -jXu -jXu -jXu -jXu +rcs +qNS +lqG +oBV qvY kRe dCp @@ -84651,8 +84823,8 @@ hxo hxo hxo cbz -uyj pyv +bDK jLb tTa kQP @@ -84885,11 +85057,11 @@ lBm dHa ugJ edP -dwA -bje jXu +bje +pII ttG -jXu +oBV pPh aFd nVG @@ -85142,11 +85314,11 @@ vfv cTQ xte mzs -sHu -kHU -jXu -jXu jXu +kHU +boz +pPV +pPV jpG kRe nVG @@ -85398,11 +85570,11 @@ gYE uEC wgw twr -uuD -xgB -fBl -eEb +bSm jXu +oBV +eEb +pPV ouc dSG cLj @@ -85655,12 +85827,12 @@ pQu vEH jXu lUe -uuD +bMW rNV cGL -guZ xoc -xyz +xoc +rKh xyz fgT btt @@ -85912,11 +86084,11 @@ tWJ aQE jXu nME -iUE -gQv -jXu -jXu +inp jXu +kLY +muJ +wvC mAy cLj kRe @@ -86169,8 +86341,8 @@ jXu jXu jXu jXu -uuD -gQv +bSm +jXu jXu gVb jXu @@ -86426,7 +86598,7 @@ dOS xxp twr sxn -uuD +aiW vpU twr rSa diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index 20d097488bdd..0217356bd591 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -604,16 +604,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/command/heads_quarters/hop) -"ahC" = ( -/obj/machinery/exoscanner, -/obj/effect/turf_decal/stripes{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/corner, -/area/station/cargo/drone_bay) "ahG" = ( /obj/machinery/modular_computer/console/preset/research{ dir = 4 @@ -1067,9 +1057,6 @@ /turf/open/floor/iron/dark, /area/station/security/warden) "ann" = ( -/obj/structure/railing{ - dir = 1 - }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5736,12 +5723,12 @@ /turf/open/floor/iron/white/smooth_large, /area/station/science/robotics/lab) "brL" = ( -/obj/effect/turf_decal/stripes{ - dir = 6 +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/stairs{ + dir = 1 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/floor1/starboard/fore) +/area/station/bitrunning/den) "brN" = ( /obj/effect/spawner/structure/window/hollow/reinforced/directional, /obj/structure/disposalpipe/segment, @@ -5776,10 +5763,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/medical/abandoned) -"bsq" = ( -/obj/effect/turf_decal/stripes, -/turf/open/floor/plating, -/area/station/maintenance/floor1/starboard/fore) "bsu" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -6578,13 +6561,9 @@ }, /area/station/hallway/floor3/aft) "bAh" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor, +/obj/effect/spawner/random/structure/table_or_rack, +/obj/effect/spawner/random/trash/soap, +/turf/open/floor/plating, /area/station/maintenance/floor1/starboard/fore) "bAj" = ( /obj/machinery/conveyor{ @@ -6699,6 +6678,17 @@ /obj/machinery/computer/order_console/mining, /turf/open/floor/iron, /area/station/cargo/miningdock) +"bBW" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "bCh" = ( /obj/structure/table/reinforced, /obj/item/mmi{ @@ -8400,6 +8390,19 @@ dir = 4 }, /area/station/hallway/floor2/aft) +"caN" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/obj/machinery/light/directional/south, +/obj/effect/decal/cleanable/oil/streak, +/obj/effect/landmark/bitrunning/station_reward_spawn, +/turf/open/floor/iron/dark/smooth_large, +/area/station/bitrunning/den) "caQ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -9827,9 +9830,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/radio/intercom/directional/south, -/obj/structure/railing/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/cargo/miningdock) "csY" = ( @@ -10330,13 +10330,20 @@ /turf/open/floor/iron/dark/side, /area/station/hallway/floor3/aft) "cBT" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 }, -/obj/machinery/firealarm/directional/east, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/pod/light, -/area/station/maintenance/floor1/starboard/fore) +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/structure/railing{ + layer = 3.1 + }, +/obj/effect/decal/cleanable/robot_debris, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "cBU" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/bush/sunny/style_random, @@ -10429,11 +10436,11 @@ /turf/open/floor/iron, /area/station/service/hydroponics) "cDe" = ( -/obj/effect/turf_decal/stripes{ - dir = 1 +/obj/machinery/computer/quantum_console{ + dir = 4 }, -/turf/open/floor/plating, -/area/station/maintenance/floor1/starboard/fore) +/turf/open/floor/iron/dark/smooth_corner, +/area/station/bitrunning/den) "cDj" = ( /obj/effect/turf_decal/delivery, /obj/structure/sign/departments/cargo/directional/north, @@ -11654,6 +11661,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"cUk" = ( +/obj/structure/rack, +/obj/item/stack/sheet/leather, +/turf/open/floor/plating, +/area/station/maintenance/floor1/starboard/fore) "cUm" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/power/apc/auto_name/directional/east, @@ -16903,7 +16915,6 @@ "eoo" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, /obj/structure/railing/corner{ dir = 4 }, @@ -16913,6 +16924,10 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) "eov" = ( @@ -17101,17 +17116,19 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/floor1/starboard) "erV" = ( -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/trimline/brown/line{ dir = 1 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/effect/turf_decal/stripes{ + dir = 1 }, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/floor1/starboard/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/trimline/brown/line, +/turf/open/floor/iron/dark/smooth_half, +/area/station/bitrunning/den) "erY" = ( /obj/machinery/vending/wardrobe/bar_wardrobe, /turf/open/floor/wood, @@ -17250,12 +17267,6 @@ }, /turf/open/floor/pod/dark, /area/station/maintenance/floor3/starboard) -"eul" = ( -/obj/effect/turf_decal/stripes{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/floor1/starboard/fore) "eur" = ( /obj/effect/mapping_helpers/airlock/access/any/supply/mining, /obj/machinery/door/airlock/glass_large{ @@ -20812,6 +20823,20 @@ /obj/machinery/light/warm/directional/north, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) +"fxr" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/shieldgen, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "fxC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -21162,12 +21187,13 @@ /turf/open/floor/pod/light, /area/station/maintenance/floor2/port) "fCw" = ( -/obj/effect/turf_decal/stripes{ - dir = 4 +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 }, -/obj/structure/disposalpipe/trunk/multiz, -/turf/open/floor/plating, -/area/station/maintenance/floor1/starboard/fore) +/obj/machinery/holopad, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "fCx" = ( /obj/structure/rack, /turf/open/floor/pod/dark, @@ -24178,7 +24204,9 @@ dir = 4 }, /obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) "gsp" = ( @@ -25094,6 +25122,7 @@ /area/station/maintenance/floor2/starboard/aft) "gFU" = ( /obj/machinery/computer/exodrone_control_console, +/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/dark, /area/station/cargo/drone_bay) "gGu" = ( @@ -28473,7 +28502,7 @@ "hBR" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/light/broken/directional/north, -/obj/item/radio/intercom/directional/north, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/cargo/warehouse) "hBT" = ( @@ -30160,10 +30189,15 @@ /turf/open/floor/iron/dark, /area/station/commons/dorms/room4) "iaJ" = ( -/obj/structure/rack, -/obj/effect/spawner/random/maintenance/two, -/turf/open/floor/pod/light, -/area/station/maintenance/floor1/starboard/fore) +/obj/machinery/netpod, +/obj/effect/decal/cleanable/vomit/old{ + pixel_x = -12; + pixel_y = -13 + }, +/obj/item/radio/intercom/directional/north, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/bitrunning/den) "iaM" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 6 @@ -32133,13 +32167,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/catwalk_floor, /area/station/maintenance/floor3/starboard/fore) -"iDJ" = ( -/obj/effect/turf_decal/stripes{ - dir = 10 - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/floor1/starboard/fore) "iDP" = ( /obj/structure/cable/multilayer/multiz, /turf/open/floor/plating, @@ -34475,9 +34502,6 @@ /turf/open/floor/iron/white, /area/station/science/cytology) "jmm" = ( -/obj/structure/railing/corner{ - dir = 8 - }, /turf/open/floor/iron/textured, /area/station/cargo/storage) "jmr" = ( @@ -35672,19 +35696,6 @@ }, /turf/open/floor/carpet/royalblack, /area/station/service/kitchen/diner) -"jAr" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/stripes{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "jAF" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -37387,6 +37398,9 @@ /area/station/medical/medbay/central) "jWJ" = ( /obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, /turf/open/floor/iron, /area/station/cargo/storage) "jWR" = ( @@ -41890,11 +41904,14 @@ }, /area/station/hallway/floor2/fore) "lgs" = ( -/obj/effect/turf_decal/stripes{ - dir = 5 +/obj/structure/sign/poster/random/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 }, -/turf/open/floor/plating, -/area/station/maintenance/floor1/starboard/fore) +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "lgt" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, @@ -45173,6 +45190,12 @@ /area/station/maintenance/floor3/starboard) "lWl" = ( /obj/machinery/light/directional/west, +/obj/machinery/computer/order_console/bitrunning{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, /turf/open/floor/iron, /area/station/cargo/storage) "lWm" = ( @@ -46154,6 +46177,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/lobby) +"mhU" = ( +/obj/machinery/netpod, +/obj/structure/railing{ + layer = 3.1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/bitrunning/den) "mhY" = ( /obj/machinery/door/firedoor/border_only{ dir = 1 @@ -47673,15 +47703,6 @@ }, /turf/open/floor/iron, /area/station/hallway/floor1/aft) -"mCp" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/textured, -/area/station/cargo/storage) "mCt" = ( /obj/structure/cable, /turf/open/floor/plating/airless, @@ -50525,21 +50546,27 @@ /turf/open/floor/iron/dark, /area/station/hallway/floor3/aft) "nkT" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 }, -/obj/machinery/door/airlock/hatch{ - name = "Maintenance Access" +/obj/effect/turf_decal/stripes{ + dir = 1 }, -/obj/effect/mapping_helpers/airlock/access/any/supply/general, -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/pod/dark, -/area/station/maintenance/floor1/starboard/fore) +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 8 + }, +/area/station/bitrunning/den) "nkY" = ( /obj/machinery/light/directional/west, /obj/structure/chair/sofa/corp/left{ @@ -51578,6 +51605,24 @@ }, /turf/open/floor/pod/dark, /area/station/maintenance/floor3/starboard/fore) +"nxs" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = 7 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron/dark/smooth_half, +/area/station/bitrunning/den) "nxy" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -55414,14 +55459,21 @@ /turf/open/floor/iron/dark/side, /area/station/security/checkpoint) "owk" = ( -/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/trimline/brown/line, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 5 }, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/floor1/starboard/fore) +/turf/open/floor/iron/dark/smooth_half, +/area/station/bitrunning/den) "owo" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -56934,6 +56986,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/security/warden) +"oRZ" = ( +/obj/machinery/netpod, +/obj/machinery/airalarm/directional/east, +/obj/machinery/airalarm/directional/east, +/obj/machinery/airalarm/directional/east, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/bitrunning/den) "oSb" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 @@ -58562,6 +58622,8 @@ }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) "prn" = ( @@ -59383,7 +59445,6 @@ /area/station/medical/virology) "pCW" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/rnd/bepis, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/cargo/warehouse) @@ -64066,6 +64127,7 @@ dir = 4 }, /obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) "qOs" = ( @@ -66145,6 +66207,8 @@ dir = 10 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/storage) "rqC" = ( @@ -67161,7 +67225,7 @@ /area/station/medical/abandoned) "rGF" = ( /obj/effect/turf_decal/bot, -/obj/structure/sign/poster/random/directional/north, +/obj/machinery/light/broken/directional/north, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) "rGH" = ( @@ -68050,6 +68114,10 @@ }, /turf/open/floor/iron, /area/station/maintenance/floor1/starboard/fore) +"rTq" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/bitrunning/den) "rTt" = ( /obj/machinery/space_heater, /turf/open/floor/pod/light, @@ -69368,6 +69436,7 @@ /obj/effect/turf_decal/stripes{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/cargo/storage) "srq" = ( @@ -70855,11 +70924,16 @@ /turf/open/floor/plating, /area/station/maintenance/floor2/starboard) "sLq" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 }, -/turf/open/floor/pod/light, -/area/station/maintenance/floor1/starboard/fore) +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/trunk/multiz, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "sLA" = ( /obj/effect/turf_decal/tile/red/opposingcorners{ dir = 1 @@ -72230,6 +72304,22 @@ /obj/effect/spawner/random/contraband/landmine, /turf/open/floor/pod/dark, /area/station/service/kitchen/abandoned) +"tel" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/obj/machinery/door/airlock/mining/glass{ + name = "Bitrunning Den" + }, +/turf/open/floor/pod/dark, +/area/station/bitrunning/den) "teq" = ( /turf/closed/wall/r_wall, /area/station/maintenance/floor1/starboard/aft) @@ -75262,9 +75352,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/railing/corner{ - dir = 4 - }, /turf/open/floor/iron, /area/station/cargo/miningdock) "tXR" = ( @@ -77909,6 +77996,15 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/carpet/royalblue, /area/station/commons/dorms/room4) +"uLN" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/bitrunning/station_reward_spawn, +/turf/open/floor/iron/dark/smooth_large, +/area/station/bitrunning/den) "uLO" = ( /obj/structure/showcase/cyborg/old{ dir = 4; @@ -81617,6 +81713,9 @@ }, /turf/open/floor/iron/dark, /area/station/command/gateway) +"vII" = ( +/turf/closed/wall, +/area/station/bitrunning/den) "vIO" = ( /obj/effect/decal/cleanable/glitter, /turf/open/floor/carpet/neon/simple/pink/nodots, @@ -83376,12 +83475,6 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/pod/dark, /area/station/maintenance/floor2/starboard) -"whN" = ( -/obj/effect/turf_decal/stripes{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/maintenance/floor1/starboard/fore) "whR" = ( /turf/closed/wall, /area/station/service/bar) @@ -85547,10 +85640,6 @@ /obj/effect/landmark/carpspawn, /turf/open/space/openspace, /area/space) -"wIr" = ( -/obj/structure/railing/corner, -/turf/open/floor/iron/textured_large, -/area/station/cargo/storage) "wIw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -87274,7 +87363,6 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/floor1/port/aft) "xeu" = ( -/obj/structure/railing, /turf/open/floor/iron/stairs{ dir = 8 }, @@ -89818,11 +89906,9 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/floor2/starboard/fore) "xOd" = ( -/obj/machinery/modular_computer/console/preset/civilian, -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/cargo/drone_bay) +/turf/closed/wall, +/area/station/bitrunning/den) "xOe" = ( /obj/machinery/light/cold/no_nightlight/directional/north, /turf/open/floor/engine, @@ -90493,6 +90579,13 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"xYW" = ( +/obj/machinery/quantum_server, +/obj/effect/turf_decal/bot/left, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 4 + }, +/area/station/bitrunning/den) "xYY" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 @@ -113870,13 +113963,13 @@ owI owI owI owI -oic -oic -whN -eul -iDJ +vII +vII +vII +vII +vII bAh -oic +cUk oic oic oic @@ -114127,14 +114220,14 @@ owI owI owI owI -oic -oic +vII +vII cDe -oic -bsq -bAh -uNF -oic +xYW +vII +vII +vII +vII gUS nOj dzo @@ -114384,14 +114477,14 @@ owI owI owI owI -oic -oic +vII +vII lgs fCw brL erV -uNF -oic +caN +vII rGF yiZ yiZ @@ -114641,14 +114734,14 @@ owI owI owI owI -oic -oic -sLq +vII +vII +bBW sLq cBT owk -uNF -oic +uLN +rTq hBR qWJ qWJ @@ -114898,14 +114991,14 @@ owI owI owI owI -oic -oic +vII +vII iaJ -oic -oic +oRZ +mhU nkT -oic -oic +nxs +rTq rYA eEB lUY @@ -115155,15 +115248,15 @@ owI owI owI owI -oic -oic -oic -oic +vII +vII +vII +vII xOd -xxQ -ahC -aQK -fve +tel +vII +vII +fxr fve aSL iCn @@ -116447,7 +116540,7 @@ xsL sqK rqB prm -jAr +gso gso qOr eoo @@ -120563,7 +120656,7 @@ tJG irS hMu hKN -wIr +tHL hLP hLP hLP @@ -121078,7 +121171,7 @@ jdT tGE mar jmm -mCp +ujC dpH has kLn diff --git a/_maps/map_files/Oshan/oshan.dmm b/_maps/map_files/Oshan/oshan.dmm index 99bb93b3be96..1b18be14c7d6 100644 --- a/_maps/map_files/Oshan/oshan.dmm +++ b/_maps/map_files/Oshan/oshan.dmm @@ -41,24 +41,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/office) -"aaK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/medical/virology) -"abb" = ( -/obj/structure/table, -/obj/machinery/camera/directional/north{ - c_tag = "Medbay Paramedic Dispatch"; - name = "medical camera"; - network = list("ss13","medical") - }, -/obj/machinery/fax{ - fax_name = "Medical"; - name = "Medical Fax Machine" - }, -/turf/open/floor/iron/dark, -/area/station/medical/storage) "abe" = ( /obj/structure/table/reinforced, /obj/item/stock_parts/cell/high{ @@ -84,25 +66,20 @@ color = "#D381C9" }, /area/station/science/robotics) +"abg" = ( +/obj/machinery/computer/records/medical{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/obj/machinery/newscaster/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/medical/storage) "abD" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/disposal) -"abG" = ( -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/cargo/storage) "abL" = ( /obj/structure/cable, /obj/structure/chair{ @@ -141,9 +118,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/medical/surgery/aft) -"acG" = ( -/turf/open/floor/iron/dark/textured, -/area/station/science/cytology) "acI" = ( /obj/machinery/firealarm/directional/south, /turf/open/floor/wood, @@ -351,6 +325,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/science/genetics) +"agm" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/medical{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "ags" = ( /obj/structure/disposalpipe/segment, /obj/structure/sign/warning/radiation/rad_area/directional/west, @@ -359,12 +344,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"agA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/carpet/neon/simple/cyan/nodots, -/area/station/medical/virology) "agP" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, @@ -413,11 +392,42 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) +"ahL" = ( +/obj/effect/landmark/start/virologist, +/obj/structure/chair/sofa/left{ + dir = 8 + }, +/turf/open/floor/carpet/neon/simple/cyan/nodots, +/area/station/medical/virology) "ahN" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/hop) +"ahZ" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Pod Four"; + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8; + id_tag = "engine_outdoors" + }, +/turf/open/floor/engine, +/area/station/engineering/main) "aih" = ( /obj/machinery/computer/security/telescreen/entertainment/directional/east, /obj/structure/chair/comfy, @@ -493,12 +503,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"ake" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "akj" = ( /obj/machinery/door/airlock/command{ name = "E.V.A. Storage" @@ -509,13 +513,6 @@ /obj/effect/landmark/navigate_destination, /turf/open/floor/mineral/titanium, /area/station/ai_monitored/command/storage/eva) -"akn" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Escape-4"; - location = "Escape-3" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/exit/departure_lounge) "akv" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -531,6 +528,11 @@ /obj/effect/turf_decal/tile/brown/fourcorners, /turf/open/floor/iron/dark, /area/station/cargo/sorting) +"akV" = ( +/obj/machinery/camera/autoname/directional/north, +/obj/structure/tank_holder/extinguisher, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "alb" = ( /obj/machinery/light/small/directional/south, /obj/effect/turf_decal/trimline/blue/filled/line, @@ -573,22 +575,6 @@ /obj/machinery/duct/industrial/waste, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"amR" = ( -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/ticket_machine/directional/north{ - id = "ticket_machine_cargo" - }, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/brown/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 1 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "anc" = ( /obj/structure/dresser, /obj/machinery/light/dim/directional/north, @@ -640,22 +626,6 @@ /obj/machinery/suit_storage_unit/cmo, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) -"apr" = ( -/obj/machinery/duct/industrial/waste, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 6 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-21"; - location = "Hall-20" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/aft) "apz" = ( /obj/effect/spawner/random/trash, /turf/open/floor/plating, @@ -747,6 +717,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet/red, /area/station/security/office) +"asu" = ( +/obj/structure/cable, +/obj/machinery/computer/records/security{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/security/office) "asA" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, @@ -767,6 +744,13 @@ /obj/effect/turf_decal/trimline/green/line, /turf/open/floor/iron/dark/textured, /area/station/service/hydroponics) +"atn" = ( +/obj/machinery/light/neon_lining{ + dir = 4; + icon_state = "pink2_1" + }, +/turf/open/ballpit, +/area/station/security/checkpoint/customs) "atC" = ( /obj/machinery/door/poddoor/preopen{ id = "xenobio6"; @@ -780,10 +764,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"atG" = ( -/obj/structure/lattice, -/turf/open/floor/plating/ocean, -/area/station/science/xenobiology) "atI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -823,12 +803,6 @@ "aus" = ( /turf/closed/wall/r_wall, /area/station/security/courtroom) -"auL" = ( -/obj/structure/chair/sofa/right{ - dir = 8 - }, -/turf/open/floor/carpet/neon/simple/cyan/nodots, -/area/station/medical/virology) "auP" = ( /obj/effect/turf_decal/trimline/blue/line{ dir = 6 @@ -858,6 +832,7 @@ /area/station/engineering/atmos) "avq" = ( /obj/machinery/camera/directional/east, +/obj/machinery/light_switch/directional/south, /turf/open/floor/wood, /area/station/cargo/miningoffice) "avv" = ( @@ -870,6 +845,14 @@ /obj/machinery/vending/wallmed/directional/west, /turf/open/floor/iron/white/textured, /area/station/medical/treatment_center) +"avO" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) "avX" = ( /obj/structure/cable, /turf/open/floor/iron/dark/textured, @@ -903,12 +886,6 @@ dir = 8 }, /area/station/service/hydroponics) -"axu" = ( -/obj/machinery/light/neon_lining{ - icon_state = "pink2_1" - }, -/turf/open/ballpit, -/area/station/security/checkpoint/customs) "axQ" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/disposalpipe/segment{ @@ -981,13 +958,6 @@ /obj/machinery/light/directional/west, /turf/open/floor/wood, /area/station/command/heads_quarters/rd) -"aAJ" = ( -/obj/machinery/duct/industrial/waste, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "aAK" = ( /obj/machinery/door/firedoor, /obj/structure/table/reinforced, @@ -1015,11 +985,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"aBn" = ( -/obj/structure/fans/tiny/forcefield, -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) "aBy" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/ce) @@ -1069,16 +1034,15 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/commons/storage/primary) +"aDi" = ( +/obj/machinery/light/directional/east, +/obj/structure/tank_holder/extinguisher, +/turf/open/floor/wood, +/area/station/commons/fitness/recreation/entertainment) "aDn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"aDo" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/ce) "aDB" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/no_smoking, @@ -1126,12 +1090,26 @@ /obj/structure/cable, /turf/closed/wall/r_wall, /area/station/engineering/main) -"aFE" = ( -/obj/structure/closet/secure_closet/miner, -/obj/machinery/camera/autoname/directional/north, -/obj/effect/turf_decal/tile/brown/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +"aFI" = ( +/obj/machinery/door/window/right/directional/south{ + dir = 4; + name = "Surgical Supplies"; + req_access = list("surgery") + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/table/reinforced, +/obj/item/stack/sticky_tape/surgical, +/obj/item/stack/medical/bone_gel, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/item/clothing/gloves/latex/nitrile, +/obj/item/clothing/gloves/latex/nitrile, +/obj/item/clothing/gloves/latex/nitrile, +/obj/item/book/manual/wiki/surgery, +/turf/open/floor/iron/white, +/area/station/medical/surgery/theatre) "aFP" = ( /obj/machinery/camera/directional/east{ c_tag = "Atmospherics Tank - N2" @@ -1402,17 +1380,6 @@ "aNi" = ( /turf/open/floor/engine, /area/station/engineering/main) -"aNn" = ( -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/light/neon_lining{ - icon_state = "pink2_1" - }, -/obj/machinery/light/neon_lining{ - dir = 8; - icon_state = "pink2_1" - }, -/turf/open/ballpit, -/area/station/security/checkpoint/customs) "aOa" = ( /obj/structure/extinguisher_cabinet/directional/east, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -1453,14 +1420,6 @@ color = "#999999" }, /area/station/science/robotics) -"aOZ" = ( -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/trimline/brown/line, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "aPd" = ( /obj/machinery/computer/rdconsole{ dir = 1 @@ -1877,10 +1836,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"aXp" = ( -/obj/structure/cable, -/turf/open/floor/circuit, -/area/station/tcommsat/server) "aXt" = ( /obj/machinery/camera/directional/north{ c_tag = "Chief Engineer's Office" @@ -1950,6 +1905,15 @@ /obj/structure/sign/departments/engineering, /turf/closed/wall/r_wall, /area/station/engineering/break_room) +"aZF" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "Privacy Shutter" + }, +/obj/structure/cable/industrial, +/turf/open/floor/plating, +/area/station/command/heads_quarters/ce) "aZL" = ( /obj/machinery/light/directional/north, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -2172,17 +2136,6 @@ "bfx" = ( /turf/closed/wall/r_wall, /area/station/medical/virology) -"bfB" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/effect/landmark/start/virologist, -/turf/open/floor/iron/dark, -/area/station/medical/virology) "bfN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2190,22 +2143,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/port/central) -"bgu" = ( -/obj/structure/rack, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/item/shield/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/shield/riot, -/obj/item/shield/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/turf/open/floor/iron/smooth, -/area/station/ai_monitored/security/armory) "bgy" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/cable, @@ -2218,6 +2155,7 @@ /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 }, +/obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/cargo/miningoffice) "bgQ" = ( @@ -2233,10 +2171,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/courtroom) -"bht" = ( -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/carpet/neon/simple/cyan/nodots, -/area/station/medical/virology) "bhD" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/machinery/camera/directional/west, @@ -2282,12 +2216,22 @@ /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/vaporwave, /area/station/service/library) -"biq" = ( -/obj/structure/cable, +"bjl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/purple/filled/warning, +/obj/effect/turf_decal/trimline/purple/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/mid_joiner, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-5"; + location = "Hall-4" + }, +/turf/open/floor/iron/dark/textured_edge, +/area/station/hallway/primary/central) "bjp" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 4 @@ -2352,19 +2296,6 @@ }, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den/gaming) -"bkC" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/line, -/obj/machinery/light/directional/north, -/obj/structure/table/glass, -/obj/item/storage/backpack/duffelbag/med/surgery, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "bkF" = ( /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/noslip{ @@ -2395,13 +2326,6 @@ /obj/machinery/vending/wallmed/directional/south, /turf/open/floor/iron/white/textured, /area/station/medical/surgery/aft) -"blk" = ( -/obj/machinery/rnd/bepis, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "blt" = ( /obj/structure/cable, /obj/machinery/light/small/directional/east{ @@ -2418,12 +2342,6 @@ /obj/machinery/door/firedoor/border_only, /turf/open/floor/wood, /area/station/command/heads_quarters/hop) -"blP" = ( -/obj/machinery/door/poddoor/shutters{ - id = "cargodoor" - }, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "blR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2444,6 +2362,12 @@ /obj/effect/mapping_helpers/airlock/access/all/service/bar, /turf/open/floor/carpet/neon/simple/green/nodots, /area/station/service/bar) +"bmb" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) "bmd" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/machinery/chem_dispenser{ @@ -2470,15 +2394,6 @@ }, /turf/open/floor/plating, /area/station/security/warden) -"bmq" = ( -/obj/effect/turf_decal/trimline/brown/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "bmG" = ( /obj/machinery/duct/industrial/waste, /obj/effect/turf_decal/trimline/red/line, @@ -2535,16 +2450,6 @@ /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) -"bnU" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Mining Base" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "bou" = ( /obj/structure/closet/secure_closet/atmospherics, /obj/machinery/camera/directional/west, @@ -2624,15 +2529,6 @@ /obj/effect/turf_decal/trimline/brown, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) -"bpK" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "Test Chamber Blast Door" - }, -/obj/structure/cable, -/turf/open/floor/engine, -/area/station/science/xenobiology) "bpX" = ( /obj/machinery/door/airlock/public/glass{ name = "Central Access" @@ -2664,6 +2560,12 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) +"bqJ" = ( +/obj/machinery/duct/industrial/waste, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external/glass, +/turf/open/floor/iron, +/area/station/cargo/warehouse/upper) "bqT" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -2684,19 +2586,6 @@ /obj/structure/disposalpipe/junction/yjunction, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) -"bsc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/ticket_machine/directional/north{ - id = "ticket_machine_med" - }, -/obj/effect/turf_decal/trimline/blue/line, -/mob/living/simple_animal/bot/medbot/autopatrol, -/turf/open/floor/iron/dark/textured, -/area/station/medical/medbay/lobby) "bsd" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -2731,26 +2620,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos) -"bsW" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "AI Chamber" - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "AI Chamber entrance shutters"; - name = "AI Chamber Lockdown Shutter" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/flasher/directional/west{ - id = "AI"; - name = "Meatbag Pacifier" - }, -/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, -/obj/structure/cable/layer3, -/obj/structure/fans/tiny/forcefield, -/obj/effect/base_turf_modifier/pit, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai) "btf" = ( /obj/effect/landmark/start/geneticist, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -2764,7 +2633,7 @@ dir = 1 }, /turf/open/floor/iron, -/area/station/cargo/miningoffice) +/area/station/bitrunning/den) "btu" = ( /obj/effect/turf_decal/siding/blue, /turf/open/floor/wood/large, @@ -2778,33 +2647,6 @@ }, /turf/open/floor/wood, /area/station/service/cafeteria) -"btG" = ( -/obj/structure/rack, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/box/syringes, -/turf/open/floor/iron/white, -/area/station/medical/virology) -"btR" = ( -/obj/machinery/door/airlock/medical/glass{ - id_tag = "MedbayFoyer"; - name = "Medbay Clinic" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/general, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning, -/turf/open/floor/iron/white/textured, -/area/station/medical/medbay/central) "bul" = ( /obj/machinery/suit_storage_unit/mining, /obj/machinery/light/directional/north, @@ -2854,22 +2696,6 @@ /obj/effect/spawner/random/vending/colavend, /turf/open/floor/iron/dark/textured, /area/station/engineering/break_room) -"bvF" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/white/filled/line{ - color = "#009dc4"; - dir = 5 - }, -/obj/effect/turf_decal/trimline/white/corner{ - color = "#009dc4"; - dir = 8 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-14"; - location = "Hall-13" - }, -/turf/open/floor/iron/dark/textured, -/area/station/commons/dorms) "bvJ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2883,13 +2709,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) -"bwi" = ( -/obj/machinery/light_switch/directional/north{ - pixel_y = -21; - pixel_x = -21 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "bwn" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/yellow/filled/warning{ @@ -2987,22 +2806,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/medical/surgery/theatre) -"byv" = ( -/obj/machinery/conveyor/auto{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/door/window/left/directional/west{ - dir = 2; - name = "Crate Security Door"; - req_access = list("shipping") - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "byC" = ( /obj/structure/window/spawner/directional/south, /obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ @@ -3062,26 +2865,6 @@ /obj/effect/landmark/start/captain, /turf/open/floor/carpet/purple, /area/station/command/heads_quarters/captain/private) -"bAM" = ( -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/light_switch/directional/north, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/roller{ - pixel_y = 6 - }, -/obj/item/roller{ - pixel_y = 6 - }, -/obj/item/roller{ - pixel_y = 6 - }, -/obj/structure/window/spawner/directional/south, -/obj/structure/window/spawner/directional/east, -/turf/open/floor/iron/white/textured, -/area/station/medical/storage) "bAN" = ( /obj/structure/closet/crate/coffin, /obj/machinery/camera/autoname/directional/north, @@ -3090,6 +2873,12 @@ "bAP" = ( /turf/closed/wall/r_wall, /area/station/command/teleporter) +"bAT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured, +/area/station/science/cytology) "bAX" = ( /obj/machinery/turretid{ icon_state = "control_stun"; @@ -3178,6 +2967,10 @@ }, /turf/open/floor/mineral/titanium/blue, /area/station/ai_monitored/command/storage/eva) +"bCi" = ( +/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "bCl" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/trimline/white/filled/end{ @@ -3241,6 +3034,18 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/white, /area/station/science/lab) +"bDj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/item/food/spaghetti/security, +/obj/item/food/spaghetti/security, +/obj/item/food/spaghetti/security, +/obj/item/food/spaghetti/security, +/turf/open/floor/iron/smooth, +/area/station/ai_monitored/security/armory) "bDs" = ( /obj/machinery/light/small/directional/north, /obj/machinery/camera/directional/west, @@ -3254,6 +3059,7 @@ /area/station/commons/fitness/recreation) "bDv" = ( /obj/effect/landmark/start/scientist, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/xenobiology) "bDw" = ( @@ -3297,12 +3103,6 @@ /obj/machinery/air_sensor/carbon_tank, /turf/open/floor/engine/co2, /area/station/engineering/atmos) -"bEl" = ( -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "bEp" = ( /obj/machinery/duct/industrial/waste, /obj/structure/cable, @@ -3322,12 +3122,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/entry) -"bEQ" = ( -/obj/effect/landmark/start/cargo_technician, -/obj/machinery/light/floor/has_bulb, -/obj/effect/turf_decal/trimline/brown, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "bER" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/warning, /obj/effect/turf_decal/trimline/dark_blue/warning{ @@ -3351,13 +3145,6 @@ /obj/structure/flora/ocean/longseaweed, /turf/open/floor/holofloor/beach/water, /area/station/maintenance/starboard/aft) -"bFI" = ( -/obj/effect/turf_decal/trimline/brown/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/line, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "bFK" = ( /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, @@ -3404,21 +3191,27 @@ "bGX" = ( /turf/open/floor/carpet/blue, /area/station/commons/fitness/recreation/entertainment) -"bHd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/purple/filled/warning{ - dir = 6 +"bHk" = ( +/obj/machinery/keycard_auth/directional/south{ + pixel_x = -6 }, -/obj/effect/turf_decal/trimline/purple/corner{ - dir = 1 +/obj/machinery/button/door/directional/south{ + id = "qmprivacy"; + name = "Privacy Shutters Control"; + req_access = list("qm"); + pixel_y = -26; + pixel_x = 8 }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-4"; - location = "Hall-3" +/obj/machinery/light/neon_lining{ + dir = 4; + icon_state = "pink2_1" }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) +/obj/machinery/light/neon_lining{ + icon_state = "pink2_1" + }, +/obj/machinery/ore_silo, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "bHq" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -3431,6 +3224,13 @@ /obj/structure/plasticflaps, /turf/open/floor/iron, /area/station/cargo/storage) +"bHw" = ( +/obj/machinery/light/floor/has_bulb, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "bHy" = ( /obj/machinery/door/airlock/public/glass{ name = "Central Access" @@ -3577,6 +3377,12 @@ }, /turf/open/floor/iron/dark/textured, /area/mine/storage/public) +"bKh" = ( +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/medical/storage) "bKz" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -3634,6 +3440,10 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/security/armory) +"bMd" = ( +/obj/machinery/monkey_recycler, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "bMn" = ( /obj/machinery/duct/industrial/waste, /obj/structure/disposalpipe/segment, @@ -3673,6 +3483,10 @@ /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"bMY" = ( +/obj/item/food/grown/banana, +/turf/open/misc/grass/jungle, +/area/station/maintenance/port/central) "bNb" = ( /obj/effect/turf_decal/trimline/brown/warning{ dir = 8 @@ -3718,6 +3532,19 @@ }, /turf/open/floor/iron/textured, /area/station/science/robotics/lab) +"bOO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/line, +/obj/structure/closet/crate/freezer/surplus_limbs, +/turf/open/floor/iron/white/textured, +/area/station/medical/surgery/theatre) "bOR" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/corner{ @@ -3773,6 +3600,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/central) +"bPM" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/break_room) "bPZ" = ( /obj/item/radio/intercom/directional/north, /obj/machinery/light/small/directional/west, @@ -3928,6 +3763,11 @@ /obj/structure/cable, /turf/open/floor/iron/white/textured, /area/station/medical/surgery/aft) +"bUk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/xenobiology) "bUr" = ( /obj/machinery/seed_extractor, /turf/open/floor/grass, @@ -3980,6 +3820,16 @@ /obj/effect/landmark/start/bartender, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/service) +"bWB" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/stasis{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/surgery/theatre) "bWP" = ( /obj/effect/turf_decal/stripes{ dir = 8 @@ -4010,11 +3860,29 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine/n2, /area/station/engineering/atmos) +"bXl" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/hydroponics/upper) "bXn" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable, /turf/open/floor/plating, /area/station/service/electronic_marketing_den) +"bXE" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "bYt" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -4045,16 +3913,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/science/server) -"bZc" = ( -/obj/machinery/light/neon_lining{ - icon_state = "pink2_1" - }, -/obj/machinery/light/neon_lining{ - dir = 4; - icon_state = "pink2_1" - }, -/turf/open/ballpit, -/area/station/security/checkpoint/customs) "bZk" = ( /obj/structure/railing{ dir = 4 @@ -4064,12 +3922,6 @@ }, /turf/open/floor/pod/dark, /area/station/security/warden) -"bZJ" = ( -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) "bZS" = ( /obj/effect/turf_decal/delivery, /turf/open/floor/iron, @@ -4226,13 +4078,6 @@ /obj/structure/cable, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) -"cei" = ( -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning, -/turf/closed/wall/r_wall, -/area/station/medical/treatment_center) "cem" = ( /obj/effect/spawner/random/trash, /turf/open/floor/plating, @@ -4277,22 +4122,6 @@ /obj/structure/cable, /turf/open/floor/carpet/neon/simple/green/nodots, /area/station/service/bar) -"cfi" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) -"cfu" = ( -/obj/machinery/duct/industrial/waste, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 6 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "cfz" = ( /obj/structure/lattice, /obj/structure/disposalpipe/segment{ @@ -4301,11 +4130,6 @@ }, /turf/open/floor/plating/ocean, /area/ocean) -"cfE" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable, -/turf/open/floor/circuit, -/area/station/tcommsat/server) "cfI" = ( /obj/machinery/door/airlock/public/glass{ name = "Fitness" @@ -4480,12 +4304,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/hop) -"clo" = ( -/obj/machinery/light/floor/has_bulb, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/brown, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "clw" = ( /obj/structure/disposalpipe/segment, /obj/effect/spawner/random/maintenance, @@ -4507,15 +4325,23 @@ /obj/machinery/light/directional/north, /turf/open/floor/wood, /area/station/service/hydroponics/upper) -"clZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/window/preopen{ - name = "Security Lockdown Shutters"; - id = "securityshutter" +"cmf" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/tcommsat/server) +"cmt" = ( +/obj/machinery/processor/slime, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) +"cmE" = ( +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "Privacy Shutter" }, -/obj/structure/sign/departments/security, +/obj/structure/cable/industrial, +/obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, -/area/station/security/office) +/area/station/maintenance/starboard/fore) "cmI" = ( /obj/structure/cable, /turf/open/floor/iron/dark, @@ -4541,6 +4367,18 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) +"cnK" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/machinery/defibrillator_mount/directional/south, +/turf/open/floor/iron/white/textured, +/area/station/medical/surgery/theatre) "cnV" = ( /obj/machinery/power/turbine/inlet_compressor{ dir = 4 @@ -4562,12 +4400,6 @@ /obj/effect/turf_decal/trimline/yellow/filled/corner, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"cov" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/crate, -/obj/effect/turf_decal/trimline/brown/filled/line, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) "coH" = ( /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) @@ -4632,6 +4464,10 @@ /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"cql" = ( +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/tcommsat/server) "cqr" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/garbage, @@ -4662,43 +4498,9 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) -"crT" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) -"csw" = ( -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 8 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "csW" = ( /turf/open/floor/plating, /area/station/maintenance/port/central) -"ctS" = ( -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/circuit, -/area/station/tcommsat/server) "ctX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4772,22 +4574,12 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) +"cvJ" = ( +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "cwn" = ( /turf/open/floor/iron/dark, /area/station/science/ordnance/office) -"cwQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/purple/filled/corner, -/obj/effect/turf_decal/trimline/purple/arrow_cw{ - dir = 9 - }, -/turf/open/floor/iron/dark/textured, -/area/station/science/lobby) "cwX" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -4822,13 +4614,6 @@ "cxv" = ( /turf/open/floor/engine, /area/station/hallway/secondary/exit/departure_lounge) -"cxG" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "cxM" = ( /obj/effect/turf_decal/delivery, /obj/effect/spawner/random/maintenance, @@ -4877,10 +4662,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"czC" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "czE" = ( /mob/living/basic/cockroach, /turf/open/floor/iron, /area/station/maintenance/port/central) +"czN" = ( +/obj/machinery/duct/industrial/waste, +/turf/closed/wall/r_wall, +/area/station/cargo/warehouse/upper) "cAb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -4902,11 +4699,23 @@ /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"cAu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "cAB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/grass, /area/station/science/genetics) +"cAG" = ( +/obj/structure/rack, +/obj/effect/spawner/random/maintenance, +/obj/item/airlock_painter/decal, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "cAT" = ( /obj/effect/turf_decal/bot, /obj/effect/spawner/random/maintenance, @@ -4974,14 +4783,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/interrogation) -"cBY" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/blue/filled/warning, -/obj/effect/turf_decal/trimline/blue/warning{ - dir = 1 - }, -/turf/closed/wall/r_wall, -/area/station/medical/treatment_center) "cCg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5097,27 +4898,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"cDZ" = ( -/obj/machinery/keycard_auth/directional/south{ - pixel_x = -6 - }, -/obj/machinery/button/door/directional/south{ - id = "qmprivacy"; - name = "Privacy Shutters Control"; - req_access = list("qm"); - pixel_y = -26; - pixel_x = 8 - }, -/obj/machinery/light/neon_lining{ - dir = 4; - icon_state = "pink2_1" - }, -/obj/machinery/light/neon_lining{ - icon_state = "pink2_1" - }, -/obj/machinery/ore_silo, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "cES" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5170,6 +4950,14 @@ }, /turf/open/floor/iron/dark/textured, /area/mine/storage/public) +"cGk" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/structure/cable, +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Network Access" + }, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "cGK" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /mob/living/basic/lizard/wags_his_tail{ @@ -5178,6 +4966,12 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/dark, /area/station/service/janitor) +"cGL" = ( +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) "cGU" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 1 @@ -5191,6 +4985,10 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/entry) +"cHj" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "cHm" = ( /obj/machinery/door/airlock/bathroom{ name = "Showers" @@ -5212,16 +5010,6 @@ /obj/structure/table/glass, /turf/open/floor/iron/dark/textured, /area/station/command/bridge) -"cHC" = ( -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct/industrial/waste, -/turf/open/floor/iron/white/textured, -/area/station/medical/treatment_center) "cHF" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/brown/fourcorners, @@ -5325,23 +5113,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/service/library) -"cLu" = ( -/obj/structure/table, -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/effect/spawner/random/food_or_drink/donkpockets{ - pixel_x = -9; - pixel_y = 3 - }, -/obj/item/reagent_containers/cup/glass/waterbottle/large{ - pixel_x = 5; - pixel_y = 20 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) "cLv" = ( /obj/machinery/duct/industrial/waste, /obj/effect/turf_decal/trimline/red/filled/corner, @@ -5423,6 +5194,10 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/white/textured, /area/station/science/genetics) +"cOl" = ( +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "cOq" = ( /obj/machinery/blackbox_recorder, /obj/machinery/light/directional/south, @@ -5465,6 +5240,19 @@ /obj/effect/turf_decal/trimline/red/filled/warning, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"cOZ" = ( +/obj/item/storage/box/monkeycubes, +/obj/item/storage/box/monkeycubes, +/obj/structure/table/glass, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) +"cPy" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/machinery/keycard_auth/directional/north, +/turf/open/floor/carpet/executive, +/area/station/command/bridge) "cPD" = ( /obj/structure/cable, /obj/machinery/holopad, @@ -5560,25 +5348,6 @@ /obj/structure/cable/multilayer/connected, /turf/open/floor/iron/dark/textured, /area/station/command/bridge) -"cQS" = ( -/obj/structure/bed{ - dir = 4 - }, -/obj/item/bedsheet/medical{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/virology) -"cRm" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/blue/corner, -/obj/machinery/computer/operating, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "cRO" = ( /obj/machinery/camera/autoname/directional/west, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -5663,30 +5432,6 @@ dir = 8 }, /area/station/engineering/break_room) -"cSM" = ( -/obj/structure/table/glass, -/obj/machinery/reagentgrinder{ - pixel_x = -1; - pixel_y = 8 - }, -/obj/item/stack/sheet/mineral/plasma{ - pixel_y = 4 - }, -/obj/item/reagent_containers/cup/beaker/large{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 8; - pixel_y = 2 - }, -/obj/item/knife/kitchen, -/turf/open/floor/iron/dark/textured, -/area/station/science/cytology) "cSR" = ( /obj/effect/spawner/random/structure/grille, /turf/open/floor/iron, @@ -5728,15 +5473,6 @@ /obj/structure/closet/secure_closet/engineering_welding, /turf/open/floor/iron/dark/textured_corner, /area/station/engineering/main) -"cUa" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "cUk" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -5846,14 +5582,14 @@ /obj/effect/spawner/random/structure/table_or_rack, /turf/open/floor/plating, /area/station/maintenance/port/central) -"cXc" = ( -/obj/structure/table, -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 +"cXs" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/external{ + name = "Escape Pod Four"; + space_dir = 4 }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "cXO" = ( /obj/effect/turf_decal/stripes{ dir = 8 @@ -5875,16 +5611,11 @@ /obj/structure/nestbox, /turf/open/misc/sandy_dirt, /area/station/service/hydroponics/upper) -"cYi" = ( -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/highsecurity{ - name = "Secure Network Access" - }, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) +"cYo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external/glass, +/turf/open/floor/iron, +/area/station/cargo/warehouse/upper) "cYt" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/trimline/dark_red/filled/warning{ @@ -6019,6 +5750,20 @@ dir = 4 }, /area/station/engineering/main) +"ddE" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/brown/filled/warning, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/cargo/storage) "ddJ" = ( /obj/structure/window/spawner/directional/south, /turf/open/floor/iron/dark/textured, @@ -6042,6 +5787,11 @@ }, /turf/open/floor/iron/dark/textured, /area/station/service/hydroponics) +"ddY" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/tcommsat/server) "dee" = ( /obj/effect/turf_decal/tile/dark_red/fourcorners, /obj/effect/mapping_helpers/airlock/access/all/security/general, @@ -6171,6 +5921,15 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) +"dhx" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "dhy" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -6295,13 +6054,6 @@ luminosity = 2 }, /area/station/ai_monitored/turret_protected/ai) -"djC" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "djK" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -6332,6 +6084,13 @@ /obj/effect/turf_decal/tile/blue/diagonal_centre, /turf/open/floor/iron/white/diagonal, /area/station/medical/medbay/lobby) +"dky" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/engine, +/area/station/science/xenobiology) "dkJ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/green/visible, @@ -6384,15 +6143,6 @@ /obj/effect/spawner/random/structure/crate_loot, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"dmc" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 5 - }, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "dme" = ( /obj/structure/chair, /turf/open/floor/iron/dark, @@ -6409,6 +6159,22 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) +"dml" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/white/filled/line{ + color = "#009dc4"; + dir = 5 + }, +/obj/effect/turf_decal/trimline/white/corner{ + color = "#009dc4"; + dir = 8 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-14"; + location = "Hall-13" + }, +/turf/open/floor/iron/dark/textured, +/area/station/commons/dorms) "dmm" = ( /obj/structure/table, /obj/structure/window/reinforced/spawner/directional/south, @@ -6474,27 +6240,6 @@ /obj/effect/turf_decal/trimline/yellow/filled/mid_joiner, /turf/open/floor/engine, /area/station/engineering/main) -"dnv" = ( -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/obj/structure/table/reinforced, -/obj/item/wheelchair{ - pixel_y = 3 - }, -/obj/item/wheelchair{ - pixel_y = 3 - }, -/obj/item/wheelchair{ - pixel_y = 3 - }, -/obj/item/wheelchair{ - pixel_y = 3 - }, -/obj/structure/window/spawner/directional/south, -/turf/open/floor/iron/white/textured, -/area/station/medical/storage) "dnA" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/plating/ocean, @@ -6648,14 +6393,6 @@ }, /turf/open/floor/iron/smooth, /area/station/science/genetics) -"dqy" = ( -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/trimline/brown/corner, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "dqA" = ( /obj/structure/table/wood, /obj/machinery/chem_dispenser/drinks/beer{ @@ -6670,13 +6407,6 @@ /obj/effect/landmark/start/botanist, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"dqW" = ( -/obj/machinery/light/floor/has_bulb, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/virology) "drc" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Engineering Foyer" @@ -6786,30 +6516,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) -"dsW" = ( -/obj/effect/turf_decal/stripes{ - dir = 1 - }, -/obj/machinery/door/airlock/external{ - name = "Escape Pod Four"; - space_dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/stripes{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8; - id_tag = "engine_outdoors" - }, -/turf/open/floor/engine, -/area/station/engineering/main) "dtb" = ( /obj/machinery/vending/coffee, /obj/structure/disposalpipe/segment{ @@ -6839,14 +6545,6 @@ }, /turf/open/floor/iron/dark/textured, /area/mine/storage/public) -"dtJ" = ( -/obj/machinery/light/floor/has_bulb, -/obj/effect/turf_decal/trimline/blue, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct/industrial/waste, -/turf/open/floor/iron/white/textured, -/area/station/medical/medbay/lobby) "dtY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -6892,11 +6590,6 @@ /obj/machinery/meter, /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"dvq" = ( -/obj/effect/turf_decal/trimline/brown/filled/line, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "dvM" = ( /obj/machinery/duct/industrial/waste, /obj/structure/disposalpipe/segment, @@ -6924,18 +6617,6 @@ icon_state = "boxing" }, /area/station/commons/fitness) -"dwP" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 6 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) "dxd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7003,21 +6684,20 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/central) -"dyN" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/warning, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "dzq" = ( /obj/machinery/light/directional/south, /turf/open/floor/iron/dark/textured, /area/station/engineering/storage/tech) +"dzt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/closet/secure_closet/cytology, +/turf/open/floor/holofloor/dark, +/area/station/science/cytology) "dzK" = ( /obj/structure/chair/stool/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7062,6 +6742,17 @@ }, /turf/open/floor/mineral/titanium/purple, /area/station/command/teleporter) +"dBg" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/trimline/brown/mid_joiner, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "dBk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7075,6 +6766,10 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/plating, /area/station/maintenance/port/central) +"dBV" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "dCe" = ( /obj/structure/table/glass, /obj/structure/showcase/machinery/tv{ @@ -7126,6 +6821,21 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"dDv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/vehicle/ridden/cargo_train, +/obj/machinery/button/door/directional/east{ + id = "cargodoor" + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "dDy" = ( /obj/machinery/ocean_elevator{ elevator_id = "prison"; @@ -7170,15 +6880,9 @@ luminosity = 2 }, /area/station/ai_monitored/turret_protected/ai) -"dEZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/power/terminal{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/station/tcommsat/server) +"dFf" = ( +/turf/open/floor/carpet/neon/simple/cyan/nodots, +/area/station/medical/virology) "dFg" = ( /obj/machinery/holopad{ pixel_x = 17 @@ -7275,15 +6979,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) -"dGR" = ( -/obj/machinery/fax{ - fax_name = "Chief Engineer's Office"; - name = "Chief Engineer's Fax Machine" - }, -/obj/structure/table/reinforced, -/obj/machinery/light/directional/east, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/ce) "dGS" = ( /obj/machinery/door/airlock/public/glass{ name = "Central Access" @@ -7328,10 +7023,6 @@ }, /turf/open/floor/wood/large, /area/station/command/bridge) -"dHU" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) "dHZ" = ( /obj/structure/table/reinforced/rglass, /turf/open/floor/iron, @@ -7432,16 +7123,6 @@ /obj/structure/reagent_dispensers/wall/peppertank/directional/east, /turf/open/floor/iron, /area/station/security/checkpoint/science) -"dLA" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/white/textured, -/area/station/medical/treatment_center) "dLS" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner, /obj/effect/landmark/start/station_engineer, @@ -7614,6 +7295,14 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) +"dPW" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/effect/turf_decal/trimline/blue/warning{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/station/medical/treatment_center) "dQd" = ( /turf/open/floor/engine/plasma, /area/station/engineering/atmos) @@ -7878,6 +7567,13 @@ "dXQ" = ( /turf/open/floor/iron/white, /area/station/medical/virology) +"dXR" = ( +/obj/machinery/light/neon_lining{ + dir = 1; + icon_state = "pink2_1" + }, +/turf/open/ballpit, +/area/station/security/checkpoint/customs) "dYc" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, /obj/machinery/portable_atmospherics/pump, @@ -7935,6 +7631,15 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/white/textured, /area/station/medical/surgery/aft) +"dZw" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/arrow_cw{ + dir = 10 + }, +/turf/open/floor/iron/dark/textured, +/area/station/science/lobby) "dZx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/chair/comfy/shuttle/tactical{ @@ -8023,12 +7728,32 @@ icon_state = "clown_carpet" }, /area/station/commons/dorms) +"eaZ" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/brown/filled/warning, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 1 + }, +/obj/machinery/door/window/left/directional/west{ + dir = 2; + name = "Crate Security Door"; + req_access = list("shipping") + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "ebe" = ( /obj/machinery/rnd/production/techfab/department/medical, /obj/machinery/airalarm/directional/west, /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/dark/textured_large, /area/station/medical/medbay/central) +"ecd" = ( +/obj/machinery/telecomms/processor/preset_two, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "eco" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8073,14 +7798,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/office) -"ecI" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/rack, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) "ecM" = ( /obj/structure/table/wood, /turf/open/floor/iron/chapel{ @@ -8198,39 +7915,6 @@ dir = 8 }, /area/station/engineering/main) -"egh" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, -/obj/machinery/button/door{ - desc = "A door remote control switch for the interior brig doors."; - id = "innerbrig"; - name = "Brig Interior Door Control"; - normaldoorcontrol = 1; - pixel_x = -9; - pixel_y = 10; - req_access = list("security") - }, -/obj/machinery/button/door{ - desc = "A door remote control switch for the exterior brig doors."; - id = "outerbrig"; - name = "Brig Exterior Door Control"; - normaldoorcontrol = 1; - pixel_x = 9; - pixel_y = 10; - req_access = list("security") - }, -/obj/structure/table, -/obj/machinery/button/flasher{ - id = "secentranceflasher"; - name = "Brig Entrance Flasher"; - pixel_y = -5; - req_access = list("security"); - pixel_x = -10 - }, -/turf/open/floor/iron/dark/textured, -/area/station/security/office) "egY" = ( /obj/structure/chair/office{ dir = 8 @@ -8238,6 +7922,11 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white, /area/station/science/robotics/mechbay) +"eha" = ( +/obj/machinery/smartfridge/organ, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "ehb" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 9 @@ -8247,6 +7936,15 @@ "ehz" = ( /turf/open/floor/iron/white/textured, /area/station/medical/storage) +"ehA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "ehK" = ( /obj/structure/cable, /obj/machinery/light/directional/east, @@ -8274,14 +7972,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/service/hydroponics/upper) -"eih" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/obj/effect/landmark/start/scientist, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "eip" = ( /obj/structure/chair/wood{ dir = 4 @@ -8318,6 +8008,15 @@ /obj/effect/turf_decal/siding/purple, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) +"ejk" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/chair/sofa/corp/right{ + dir = 8 + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/storage) "ejr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8333,29 +8032,6 @@ /obj/structure/table/reinforced, /turf/open/floor/iron/dark/textured, /area/station/service/hydroponics) -"ejT" = ( -/obj/effect/turf_decal/stripes, -/obj/machinery/door/airlock/external{ - name = "Escape Pod Four"; - space_dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4; - id_tag = "engine_outdoors" - }, -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "Privacy Shutter" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/main) "ekq" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -8398,17 +8074,6 @@ color = "#D381C9" }, /area/station/science/robotics) -"ell" = ( -/obj/effect/turf_decal/trimline/brown/filled/warning, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, -/obj/effect/turf_decal/trimline/brown/mid_joiner{ - dir = 1 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "elt" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/warning{ dir = 9 @@ -8461,12 +8126,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) -"enB" = ( -/obj/machinery/light/directional/south, -/obj/machinery/suit_storage_unit/ce, -/obj/machinery/computer/security/telescreen/entertainment/directional/south, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/ce) "enN" = ( /obj/effect/landmark/start/head_of_personnel, /turf/open/floor/carpet/executive, @@ -8476,6 +8135,10 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/engineering/atmos) +"eoW" = ( +/obj/structure/cable, +/turf/open/floor/iron/stairs, +/area/station/cargo/warehouse/upper) "epb" = ( /obj/machinery/firealarm/directional/south, /obj/machinery/camera/autoname/directional/south, @@ -8621,10 +8284,6 @@ /obj/effect/base_turf_modifier/pit, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) -"erU" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/cargo/sorting) "esa" = ( /obj/structure/cable, /obj/machinery/defibrillator_mount/directional/south, @@ -8688,6 +8347,12 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/engineering/storage/tech) +"esM" = ( +/obj/item/storage/secure/safe/directional/north, +/obj/machinery/light/small/directional/west, +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/pod/dark, +/area/station/security/warden) "etx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8737,6 +8402,10 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) +"euD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/turf/open/floor/engine, +/area/station/science/xenobiology) "euG" = ( /obj/machinery/computer/accounting{ dir = 8 @@ -8766,6 +8435,14 @@ /obj/item/flashlight/seclite, /turf/open/floor/iron/dark/textured, /area/station/security/lockers) +"evU" = ( +/obj/structure/table, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "ewc" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 8 @@ -8895,22 +8572,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) -"ezh" = ( -/obj/machinery/light/neon_lining{ - dir = 8; - icon_state = "pink2_1" - }, -/turf/open/ballpit, -/area/station/security/checkpoint/customs) -"ezn" = ( -/obj/machinery/computer/pandemic, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron/white, -/area/station/medical/virology) -"ezr" = ( -/obj/effect/turf_decal/trimline/brown/filled/corner, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "ezE" = ( /obj/structure/falsewall, /turf/open/floor/iron/dark, @@ -8960,17 +8621,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) -"eAt" = ( -/obj/structure/cable, -/obj/machinery/stasis, -/obj/machinery/door/window/right/directional/south{ - dir = 1; - name = "Medical Reception Desk"; - req_access = list("medical") - }, -/obj/machinery/door/window/right/directional/south, -/turf/open/floor/iron/dark/small, -/area/station/medical/treatment_center) "eAI" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -9090,50 +8740,18 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark/textured, /area/station/engineering/storage/tech) -"eDo" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/brown/filled/warning, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/effect/mapping_helpers/airlock/unres, -/obj/machinery/door/airlock/mining/glass{ - id_tag = "innercargo"; - name = "Cargo Bay" - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "eDq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"eDx" = ( -/obj/machinery/camera/autoname/directional/north, -/obj/structure/tank_holder/extinguisher, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "eDz" = ( /obj/machinery/door/airlock/maintenance{ name = "Atmospherics Maintenance" }, /turf/open/floor/iron/dark, /area/station/maintenance/department/electrical) -"eDD" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/white/corner, -/obj/machinery/firealarm/directional/north, -/obj/item/clipboard, -/obj/item/paper, -/obj/item/pen, -/turf/open/floor/iron/dark, -/area/station/medical/storage) "eDF" = ( /obj/structure/table, /obj/machinery/infuser, @@ -9243,9 +8861,9 @@ }, /area/station/science/lobby) "eGh" = ( -/obj/structure/tank_dispenser/oxygen, +/obj/effect/landmark/bitrunning/station_reward_spawn, /turf/open/floor/carpet/neon/simple/orange/nodots, -/area/station/cargo/miningoffice) +/area/station/bitrunning/den) "eGI" = ( /obj/machinery/rnd/production/protolathe/department/science, /obj/effect/turf_decal/siding/purple, @@ -9344,6 +8962,14 @@ "eIg" = ( /turf/open/floor/iron/stairs, /area/station/engineering/main) +"eIs" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron{ + amount = 10 + }, +/obj/item/electropack, +/turf/open/floor/engine, +/area/station/science/xenobiology) "eIP" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/warning{ dir = 4 @@ -9435,23 +9061,11 @@ /obj/machinery/light/directional/north, /turf/open/floor/wood/large, /area/station/security/checkpoint/customs) -"eLs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/machinery/ticket_machine/directional/east{ - id = "ticket_machine_engie" - }, -/obj/structure/railing{ - dir = 8 - }, -/turf/open/floor/plastic, -/area/station/hallway/primary/central) +"eKU" = ( +/obj/machinery/duct/industrial/waste, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "eLw" = ( /obj/structure/table/wood, /obj/machinery/computer/security/wooden_tv{ @@ -9477,22 +9091,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"eLH" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/science/xenobiology) -"eLO" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/red/corner{ - dir = 8 - }, -/obj/machinery/light/floor/has_bulb, -/mob/living/simple_animal/bot/secbot/beepsky, -/turf/open/floor/iron/dark/textured, -/area/station/security/office) "eLS" = ( /obj/machinery/duct/industrial/waste, /turf/open/floor/iron/dark/textured, @@ -9697,6 +9295,10 @@ /obj/machinery/vending/imported/yangyu, /turf/open/floor/iron/smooth, /area/station/commons/fitness/recreation) +"eQz" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/xenobiology) "eQB" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, @@ -9733,6 +9335,17 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) +"eRJ" = ( +/obj/structure/cable, +/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-3"; + location = "Hall-2" + }, +/turf/open/floor/plastic, +/area/station/hallway/primary/central) "eSf" = ( /obj/machinery/duct/industrial/waste, /obj/effect/turf_decal/trimline/white/filled/warning{ @@ -9800,6 +9413,17 @@ }, /turf/open/floor/iron/dark/textured, /area/station/cargo/storage) +"eTm" = ( +/obj/structure/cable, +/obj/machinery/stasis, +/obj/machinery/door/window/right/directional/south{ + dir = 1; + name = "Medical Reception Desk"; + req_access = list("medical") + }, +/obj/machinery/door/window/right/directional/south, +/turf/open/floor/iron/dark/small, +/area/station/medical/treatment_center) "eTz" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -9834,6 +9458,14 @@ }, /turf/open/floor/engine/co2, /area/station/engineering/atmos) +"eUj" = ( +/obj/machinery/airalarm/directional/north, +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/random, +/turf/open/floor/iron/white, +/area/station/medical/virology) "eUn" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -10023,6 +9655,15 @@ /obj/item/clothing/under/rank/centcom/military/eng, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) +"eZF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/terminal{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/station/tcommsat/server) "eZG" = ( /obj/structure/window/spawner/directional/east, /obj/structure/window/spawner/directional/north, @@ -10094,6 +9735,15 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/brig) +"fbj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/machinery/cart, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "fbt" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 8 @@ -10355,16 +10005,19 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/checkpoint/science) -"fhv" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 5 +"fhp" = ( +/obj/structure/table/glass, +/obj/structure/microscope, +/obj/item/storage/box/syringes{ + pixel_x = -4; + pixel_y = 4 }, -/obj/item/stack/cable_coil, -/obj/item/multitool, -/obj/item/stock_parts/cell/high, -/turf/open/floor/engine, -/area/station/science/xenobiology) +/obj/item/storage/box/beakers{ + pixel_x = 6; + pixel_y = 10 + }, +/turf/open/floor/iron/dark/textured, +/area/station/science/cytology) "fhw" = ( /obj/machinery/mineral/stacking_machine{ input_dir = 2 @@ -10459,22 +10112,6 @@ /obj/effect/spawner/structure/window/plasma, /turf/open/floor/iron/white, /area/station/maintenance/starboard/upper) -"fjT" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners{ - color = "#009dc4" - }, -/obj/machinery/vending/boozeomat{ - pixel_y = -32 - }, -/obj/effect/turf_decal/trimline/red/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/warning{ - dir = 10 - }, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "fkl" = ( /obj/structure/extinguisher_cabinet/directional/north, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -10532,15 +10169,23 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) -"fnj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/virology/glass{ - name = "Isolation B" +"fnB" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Base" }, -/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/medical/virology) +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/miningoffice) "fnW" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -10682,6 +10327,10 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/hop) +"fru" = ( +/obj/machinery/door/airlock/external/glass, +/turf/open/floor/iron, +/area/station/cargo/warehouse/upper) "frv" = ( /obj/effect/decal/cleanable/confetti, /obj/structure/disposalpipe/segment, @@ -10693,22 +10342,6 @@ "frP" = ( /turf/open/floor/carpet/executive, /area/station/command/bridge) -"frU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/white/filled/warning{ - dir = 1; - color = "#009dc4" - }, -/obj/effect/turf_decal/trimline/white/warning{ - color = "#009dc4" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-13"; - location = "Hall-12" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "fsb" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 6 @@ -10743,13 +10376,6 @@ /obj/machinery/atmospherics/components/unary/thermomachine/heater/on, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"fte" = ( -/obj/structure/cable, -/obj/machinery/computer/records/security{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/security/office) "ftk" = ( /obj/machinery/porta_turret/ai, /obj/effect/turf_decal/bot_red, @@ -10784,14 +10410,6 @@ /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/plating, /area/station/cargo/storage) -"fuu" = ( -/obj/structure/sign/poster/contraband/punch_shit{ - pixel_y = 35 - }, -/obj/effect/decal/cleanable/garbage, -/obj/machinery/light/very_dim/directional/north, -/turf/open/floor/iron, -/area/station/service/theater/abandoned) "fuw" = ( /obj/structure/table/glass, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -10855,6 +10473,12 @@ /obj/effect/turf_decal/trimline/purple/warning, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) +"fvR" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/surgery/theatre) "fvS" = ( /obj/machinery/camera/autoname/directional/south, /obj/effect/turf_decal/tile/neutral/fourcorners{ @@ -10885,6 +10509,25 @@ /obj/effect/turf_decal/trimline/dark_blue, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) +"fwV" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/corner, +/obj/machinery/computer/operating, +/turf/open/floor/iron/white/textured, +/area/station/medical/surgery/theatre) +"fwW" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 2; + height = 13; + name = "port bay 2"; + shuttle_id = "ferry_home"; + width = 5 + }, +/turf/open/floor/plating/ocean, +/area/ocean) "fxe" = ( /turf/closed/wall/r_wall, /area/station/science/xenobiology) @@ -10920,6 +10563,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/iron/dark/textured, /area/station/medical/surgery/theatre) +"fxS" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "fxX" = ( /obj/effect/turf_decal/stripes{ dir = 4 @@ -10936,11 +10586,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/cargo/sorting) -"fya" = ( -/obj/structure/flora/rock/pile/jungle/style_random, -/obj/item/food/grown/banana, -/turf/open/misc/grass/jungle, -/area/station/maintenance/port/central) "fyz" = ( /obj/effect/turf_decal/stripes{ dir = 4 @@ -11205,21 +10850,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/central) -"fGy" = ( -/obj/structure/closet/secure_closet/engineering_chief, -/obj/item/storage/secure/briefcase, -/obj/item/crowbar/large/heavy, -/obj/item/rwd/loaded, -/obj/item/construction/plumbing/engineering, -/obj/machinery/button/door/directional/west{ - id = "Engineering"; - name = "Engineering Lockdown"; - pixel_y = -33; - req_access = list("engineering"); - pixel_x = 0 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/ce) "fGC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -11288,6 +10918,26 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) +"fHB" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "AI Chamber" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AI Chamber entrance shutters"; + name = "AI Chamber Lockdown Shutter" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/flasher/directional/west{ + id = "AI"; + name = "Meatbag Pacifier" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, +/obj/structure/cable/layer3, +/obj/structure/fans/tiny/forcefield, +/obj/effect/base_turf_modifier/pit, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai) "fHN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -11381,6 +11031,22 @@ }, /turf/closed/wall, /area/station/maintenance/starboard/aft) +"fKV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/white/filled/warning{ + dir = 1; + color = "#009dc4" + }, +/obj/effect/turf_decal/trimline/white/warning{ + color = "#009dc4" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-13"; + location = "Hall-12" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "fLc" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -11565,6 +11231,11 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/plastic, /area/station/hallway/primary/central) +"fPP" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "fPW" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ dir = 8 @@ -11597,17 +11268,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"fQo" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 9 - }, -/turf/open/floor/iron/dark/textured, -/area/station/medical/surgery/theatre) "fQp" = ( /obj/structure/tank_dispenser/oxygen, /obj/effect/turf_decal/trimline/red/filled/warning{ @@ -11667,15 +11327,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/warden) -"fRu" = ( -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "Privacy Shutter" - }, -/obj/structure/cable/industrial, -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "fRB" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -11717,6 +11368,11 @@ /obj/effect/turf_decal/trimline/yellow/line, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) +"fTx" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "fTy" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /obj/effect/turf_decal/trimline/yellow/filled/corner, @@ -11736,14 +11392,6 @@ /obj/effect/turf_decal/trimline/blue, /turf/open/floor/iron/white/textured, /area/station/medical/medbay/lobby) -"fUp" = ( -/obj/machinery/light/directional/north, -/obj/effect/landmark/start/shaft_miner, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "fUy" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 4 @@ -11790,6 +11438,14 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine/o2, /area/station/engineering/atmos) +"fVz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/floor/has_bulb, +/obj/effect/turf_decal/trimline/brown, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "fVA" = ( /obj/machinery/light{ dir = 1 @@ -11806,10 +11462,6 @@ /obj/effect/turf_decal/trimline/brown/filled/warning, /turf/open/floor/iron/dark/textured, /area/station/cargo/sorting) -"fWk" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "fWt" = ( /obj/structure/table, /obj/item/stack/cable_coil, @@ -11844,6 +11496,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/service) +"fXc" = ( +/obj/structure/chair/sofa/right{ + dir = 8 + }, +/turf/open/floor/carpet/neon/simple/cyan/nodots, +/area/station/medical/virology) "fXj" = ( /obj/effect/turf_decal/stripes, /turf/open/floor/engine, @@ -11868,16 +11526,6 @@ }, /turf/open/floor/plating/ocean, /area/ocean/near_station_powered) -"fXG" = ( -/obj/item/book/manual/wiki/infections{ - pixel_y = 7 - }, -/obj/item/reagent_containers/syringe/antiviral, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/spray/cleaner, -/obj/structure/table/glass, -/turf/open/floor/iron/white, -/area/station/medical/virology) "fXH" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -11914,6 +11562,15 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) +"fYu" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-9"; + location = "Hall-8" + }, +/turf/open/floor/iron/chapel{ + dir = 4 + }, +/area/station/service/chapel) "fYz" = ( /obj/structure/closet/firecloset/full, /turf/open/floor/plating, @@ -11934,10 +11591,17 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) -"fYW" = ( -/obj/effect/turf_decal/delivery, +"fYV" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 8 + }, +/obj/machinery/light/floor/has_bulb, +/mob/living/simple_animal/bot/secbot/beepsky, /turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) +/area/station/security/office) "fZc" = ( /obj/structure/window/spawner/directional/west, /obj/structure/table/wood, @@ -11999,6 +11663,13 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"fZX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/surgery/theatre) "gak" = ( /obj/structure/chair{ dir = 1 @@ -12117,20 +11788,6 @@ }, /turf/open/floor/iron/white/textured, /area/station/medical/medbay/lobby) -"gce" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/brown/corner, -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 8 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "gco" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/yellow/filled/warning{ @@ -12176,15 +11833,6 @@ /obj/effect/spawner/random/aimodule/harmful, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"gcG" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/structure/chair/sofa/corp/right{ - dir = 8 - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/storage) "gdg" = ( /obj/machinery/vending/cigarette, /turf/open/floor/plating, @@ -12234,28 +11882,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/textured, /area/mine/storage/public) -"geD" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Mining Base" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/miningoffice) -"geH" = ( -/obj/item/storage/secure/safe/directional/north, -/obj/machinery/light/small/directional/west, -/obj/machinery/suit_storage_unit/security, -/turf/open/floor/pod/dark, -/area/station/security/warden) "geR" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -12313,16 +11939,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) -"gfL" = ( -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/warning{ - dir = 4 - }, -/obj/machinery/iv_drip, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "gfV" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/wood/parquet, @@ -12338,13 +11954,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) -"ggD" = ( -/obj/machinery/door/airlock/research{ - name = "Ordnance Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "ggI" = ( /obj/effect/mapping_helpers/airlock/access/all/command/general, /obj/machinery/door/firedoor, @@ -12418,12 +12027,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) -"giM" = ( -/obj/structure/cable/industrial, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating/ocean, -/area/ocean) "giS" = ( /obj/effect/spawner/random/vending/snackvend, /obj/effect/turf_decal/bot, @@ -12637,18 +12240,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"gre" = ( -/obj/machinery/computer/piratepad_control/civilian{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/brown/corner{ - dir = 1 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "gro" = ( /turf/open/floor/engine, /area/station/science/xenobiology) @@ -12659,25 +12250,23 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/eighties/red, /area/station/service/electronic_marketing_den) -"grB" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "grG" = ( /obj/structure/chair/sofa/middle{ dir = 4 }, /turf/open/floor/carpet/blue, /area/station/commons/fitness/recreation/entertainment) +"grX" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-19"; + location = "Hall-18" + }, +/turf/open/floor/iron/dark/textured, +/area/station/commons/lounge) "gsm" = ( /obj/structure/cable, /obj/effect/spawner/random/trash/graffiti, @@ -12737,6 +12326,17 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) +"guc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/sorting) "gud" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -12762,22 +12362,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"gun" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/white/filled/warning{ - dir = 9; - color = "#009dc4" - }, -/obj/effect/turf_decal/trimline/white/corner{ - color = "#009dc4" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-18"; - location = "Hall-17" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "guV" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/disposalpipe/segment{ @@ -12785,6 +12369,12 @@ }, /turf/open/floor/iron, /area/station/commons/storage/emergency/port) +"gvn" = ( +/obj/machinery/light/floor/has_bulb, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "gvw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -12854,15 +12444,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) -"gxq" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/box, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "gxr" = ( /obj/machinery/duct/industrial/waste, /obj/structure/cable, @@ -12898,6 +12479,12 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"gyE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "gyG" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/structure/table/reinforced, @@ -12970,10 +12557,34 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) +"gzY" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Airlock"; + space_dir = 4 + }, +/obj/structure/fans/tiny/forcefield, +/turf/open/floor/plating, +/area/station/hallway/secondary/exit/departure_lounge) "gzZ" = ( /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"gAb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) +"gAg" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners{ + color = "#009dc4" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "gAk" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, @@ -13033,16 +12644,12 @@ }, /turf/open/floor/plating/ocean, /area/ocean/near_station_powered) -"gBc" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners{ - color = "#009dc4" - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 +"gBj" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 }, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) +/turf/closed/wall/r_wall, +/area/station/cargo/miningoffice) "gBL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -13051,6 +12658,7 @@ /area/station/science/ordnance/office) "gCe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/xenobiology) "gCo" = ( @@ -13058,18 +12666,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron/dark/textured, /area/station/cargo/storage) -"gCN" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/door/airlock{ - id_tag = "Dorm1"; - name = "Cabin 1" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/service/abandoned_gambling_den/gaming) "gCU" = ( /obj/machinery/button/ticket_machine{ pixel_y = 22; @@ -13085,6 +12681,21 @@ dir = 1 }, /area/station/science/lab) +"gDi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/dark_blue/filled/warning{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/dark_blue/corner{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-24"; + location = "Hall-23" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central/fore) "gDp" = ( /obj/machinery/button/door/directional/south{ id = "lawyer_shutters"; @@ -13191,10 +12802,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/medical/morgue) -"gGj" = ( -/obj/machinery/duct/industrial/waste, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "gGL" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/unres{ @@ -13318,6 +12925,7 @@ "gKd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/xenobiology) "gKx" = ( @@ -13374,23 +12982,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"gMi" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/blue/corner, -/obj/machinery/door/airlock/medical/glass{ - name = "Cryogenics Bay" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - id_tag = "medlobby" - }, -/turf/open/floor/iron/dark/textured, -/area/station/medical/medbay/lobby) "gMj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -13416,24 +13007,6 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/port/central) -"gMZ" = ( -/obj/item/grown/bananapeel, -/turf/open/misc/grass/jungle, -/area/station/maintenance/port/central) -"gNq" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/box, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) -"gNC" = ( -/obj/structure/table/wood, -/obj/item/food/baguette, -/obj/item/reagent_containers/cup/glass/bottle/bottleofnothing, -/obj/machinery/light/very_dim/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/theater/abandoned) "gNH" = ( /obj/effect/turf_decal/delivery, /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, @@ -13444,9 +13017,6 @@ /obj/machinery/door/firedoor/border_only, /turf/open/floor/iron/dark/textured, /area/station/commons/vacant_room/commissary) -"gNL" = ( -/turf/open/floor/carpet/neon/simple/cyan/nodots, -/area/station/medical/virology) "gOb" = ( /obj/machinery/light/small/directional/north, /obj/effect/turf_decal/sand/plating, @@ -13469,15 +13039,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) -"gPc" = ( -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 9 - }, -/obj/machinery/stasis{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/medical/surgery/theatre) "gPk" = ( /obj/machinery/duct/industrial/waste, /obj/effect/turf_decal/trimline/white/warning{ @@ -13494,17 +13055,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) -"gPp" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "gPH" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -13653,11 +13203,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/grass, /area/station/service/hydroponics) -"gUE" = ( -/obj/structure/sign/warning/secure_area, -/obj/effect/base_turf_modifier/pit, -/turf/closed/wall/r_wall/rust, -/area/station/ai_monitored/turret_protected/ai) "gUL" = ( /obj/machinery/camera/autoname/directional/south, /turf/open/floor/engine, @@ -13773,25 +13318,6 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/sorting) -"gXq" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/suit/jacket/straight_jacket, -/obj/item/clothing/glasses/eyepatch, -/obj/item/clothing/ears/earmuffs, -/obj/item/clothing/ears/earmuffs, -/obj/item/clothing/glasses/blindfold, -/obj/item/clothing/glasses/blindfold, -/obj/machinery/door/window/right/directional/south{ - dir = 2; - name = "First Aid Supplies"; - req_access = list("medical") - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/storage) "gXr" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -13813,6 +13339,19 @@ /obj/machinery/vending/mechcomp, /turf/open/floor/iron/smooth, /area/station/commons/fitness/recreation) +"gXR" = ( +/obj/machinery/light_switch/directional/south, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/machinery/defibrillator_mount/directional/south, +/turf/open/floor/iron/white/textured, +/area/station/medical/surgery/theatre) "gYs" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, @@ -13904,18 +13443,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"gZV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/item/food/spaghetti/security, -/obj/item/food/spaghetti/security, -/obj/item/food/spaghetti/security, -/obj/item/food/spaghetti/security, -/turf/open/floor/iron/smooth, -/area/station/ai_monitored/security/armory) "hag" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/structure/cable, @@ -13957,11 +13484,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/courtroom) -"haA" = ( -/obj/machinery/duct/industrial/waste, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron, -/area/station/cargo/warehouse/upper) "haN" = ( /obj/structure/disposalpipe/junction/yjunction, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -14003,21 +13525,6 @@ }, /turf/open/floor/plating, /area/station/service/chapel) -"hbm" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) "hby" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/dark_blue/opposingcorners{ @@ -14034,15 +13541,6 @@ /obj/machinery/vending/wallmed/directional/north, /turf/open/floor/iron/dark/textured, /area/station/medical/medbay/lobby) -"hbV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Escape-1"; - location = "Hall-24" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central/fore) "hcx" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -14169,6 +13667,19 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/break_room) +"hfF" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "hfR" = ( /obj/effect/turf_decal/trimline/red/filled/line, /turf/open/floor/iron/dark/textured, @@ -14327,6 +13838,18 @@ /obj/effect/turf_decal/trimline/green/line, /turf/open/floor/iron/dark/textured, /area/station/service/hydroponics) +"hkH" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) "hkS" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -14346,6 +13869,13 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/grass, /area/station/medical/virology) +"hlS" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/structure/rack, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) "hmh" = ( /turf/open/floor/engine, /area/station/security/office) @@ -14355,6 +13885,16 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) +"hmt" = ( +/obj/item/book/manual/wiki/infections{ + pixel_y = 7 + }, +/obj/item/reagent_containers/syringe/antiviral, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/spray/cleaner, +/obj/structure/table/glass, +/turf/open/floor/iron/white, +/area/station/medical/virology) "hmD" = ( /turf/closed/wall/r_wall, /area/station/security/detectives_office) @@ -14401,11 +13941,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/office) -"hon" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/external/glass, -/turf/open/floor/iron, -/area/station/cargo/warehouse/upper) "hoo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14516,11 +14051,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"hst" = ( -/obj/machinery/telecomms/processor/preset_two, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) "hsV" = ( /obj/structure/railing, /turf/open/misc/sandy_dirt, @@ -14538,11 +14068,6 @@ }, /turf/open/floor/engine, /area/station/cargo/miningoffice) -"htk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/structure/closet/l3closet/virology, -/turf/open/floor/iron/dark, -/area/station/medical/virology) "htl" = ( /obj/machinery/light/directional/east, /obj/effect/turf_decal/trimline/brown/warning{ @@ -14592,12 +14117,22 @@ /obj/effect/turf_decal/bot, /turf/open/floor/engine, /area/station/engineering/atmos/office) -"htZ" = ( -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 6 +"hux" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners{ + color = "#009dc4" }, -/turf/open/floor/iron/dark/textured, -/area/station/medical/surgery/theatre) +/obj/machinery/vending/boozeomat{ + pixel_y = -32 + }, +/obj/effect/turf_decal/trimline/red/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 10 + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "huL" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -14609,6 +14144,11 @@ dir = 1 }, /area/station/engineering/main) +"hva" = ( +/obj/machinery/computer/pandemic, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/white, +/area/station/medical/virology) "hvh" = ( /obj/machinery/duct/industrial/waste, /obj/effect/turf_decal/stripes{ @@ -14946,49 +14486,30 @@ /obj/effect/turf_decal/trimline/yellow/filled/warning, /turf/open/floor/iron/dark, /area/station/security/office) -"hDO" = ( -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/warning, -/obj/machinery/door/airlock/medical/glass{ - name = "Cryogenics Bay" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/general, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct/industrial/waste, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - id_tag = "medlobby" +"hDB" = ( +/obj/machinery/door/airlock/research{ + autoclose = 0; + frequency = 1449; + id_tag = "xeno_airlock_exterior"; + name = "Xenobiology Lab External Airlock" }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, /turf/open/floor/iron/dark/textured, -/area/station/medical/medbay/lobby) -"hDP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/mid_joiner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 4 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) +/area/station/medical/virology) "hDQ" = ( /obj/machinery/door/airlock/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"hDR" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Network Access" + }, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "hDV" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /turf/open/floor/iron, @@ -15030,6 +14551,11 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) +"hFr" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/tcommsat/server) "hFs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -15042,6 +14568,12 @@ /obj/effect/turf_decal/trimline/dark_blue/warning, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) +"hFF" = ( +/obj/structure/chair/sofa/middle{ + dir = 8 + }, +/turf/open/floor/carpet/neon/simple/cyan/nodots, +/area/station/medical/virology) "hFV" = ( /obj/machinery/ai_slipper{ uses = 10 @@ -15090,6 +14622,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/central) +"hGs" = ( +/obj/item/storage/secure/safe/directional/west, +/obj/machinery/computer/apc_control{ + dir = 4 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/ce) "hGz" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -15140,6 +14679,16 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) +"hHx" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "hHy" = ( /obj/structure/table/glass, /obj/item/radio/intercom/directional/west{ @@ -15153,6 +14702,39 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/medical/pharmacy) +"hHK" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/obj/machinery/button/door{ + desc = "A door remote control switch for the interior brig doors."; + id = "innerbrig"; + name = "Brig Interior Door Control"; + normaldoorcontrol = 1; + pixel_x = -9; + pixel_y = 10; + req_access = list("security") + }, +/obj/machinery/button/door{ + desc = "A door remote control switch for the exterior brig doors."; + id = "outerbrig"; + name = "Brig Exterior Door Control"; + normaldoorcontrol = 1; + pixel_x = 9; + pixel_y = 10; + req_access = list("security") + }, +/obj/structure/table, +/obj/machinery/button/flasher{ + id = "secentranceflasher"; + name = "Brig Entrance Flasher"; + pixel_y = -5; + req_access = list("security"); + pixel_x = -10 + }, +/turf/open/floor/iron/dark/textured, +/area/station/security/office) "hIn" = ( /obj/structure/fans/tiny/forcefield{ dir = 8 @@ -15221,15 +14803,15 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) +"hJH" = ( +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/circuit, +/area/station/tcommsat/server) "hJI" = ( /obj/structure/flora/bush/jungle/b/style_random, /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/floor/grass, /area/station/medical/virology) -"hKs" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/turf/open/floor/engine, -/area/station/science/xenobiology) "hKQ" = ( /obj/effect/turf_decal/stripes{ dir = 5 @@ -15353,6 +14935,10 @@ /obj/effect/mapping_helpers/airlock/abandoned, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) +"hNg" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/surgery/theatre) "hNi" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ @@ -15462,19 +15048,24 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/virology) -"hPo" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/obj/effect/landmark/start/shaft_miner, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "hPI" = ( /obj/effect/turf_decal/siding/white{ dir = 8 }, /turf/closed/wall, /area/station/service/kitchen) +"hPK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/airlock{ + id_tag = "Dorm1"; + name = "Cabin 1" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/abandoned_gambling_den/gaming) "hPO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /obj/effect/turf_decal/trimline/purple/filled/warning, @@ -15519,6 +15110,14 @@ dir = 1 }, /area/station/engineering/atmos/hfr_room) +"hQv" = ( +/obj/item/kirbyplants/random, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-11"; + location = "Hall-10" + }, +/turf/open/floor/carpet, +/area/station/service/chapel) "hQQ" = ( /obj/machinery/camera/autoname/directional/north, /obj/machinery/light_switch/directional/north, @@ -15561,24 +15160,15 @@ dir = 4 }, /area/station/service/chapel) -"hSy" = ( -/obj/machinery/duct/industrial/waste, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/white/line{ - dir = 10; - color = "#009dc4" - }, -/obj/effect/turf_decal/trimline/white/filled/corner{ - color = "#009dc4"; - dir = 4 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-2"; - location = "Hall-1" +"hSt" = ( +/obj/machinery/fax{ + fax_name = "Chief Engineer's Office"; + name = "Chief Engineer's Fax Machine" }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central/fore) +/obj/structure/table/reinforced, +/obj/machinery/light/directional/east, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/ce) "hSR" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/highsecurity{ @@ -15651,11 +15241,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) -"hVc" = ( -/obj/machinery/telecomms/broadcaster/preset_left, -/obj/structure/cable, -/turf/open/floor/circuit, -/area/station/tcommsat/server) "hVe" = ( /obj/machinery/door/airlock/research{ name = "Robotics Lab" @@ -15827,6 +15412,30 @@ /obj/effect/turf_decal/stripes, /turf/open/floor/engine, /area/station/engineering/main) +"hZz" = ( +/obj/structure/table, +/obj/item/assembly/igniter{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/assembly/igniter{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/assembly/igniter{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/assembly/igniter{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Xenobiology Lab - Test Chamber"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "hZB" = ( /obj/effect/turf_decal/trimline/green/filled/warning, /obj/effect/turf_decal/trimline/green/warning{ @@ -15835,6 +15444,16 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) +"hZH" = ( +/obj/machinery/duct/industrial/waste, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 6 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "hZJ" = ( /obj/structure/closet/secure_closet/atmospherics, /obj/effect/turf_decal/bot{ @@ -15843,20 +15462,6 @@ /obj/effect/turf_decal/board_number, /turf/open/floor/iron, /area/station/engineering/atmos) -"hZV" = ( -/turf/open/floor/iron, -/area/station/cargo/warehouse/upper) -"iao" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/line, -/obj/effect/turf_decal/trimline/brown/mid_joiner, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 1 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "iax" = ( /obj/effect/spawner/random/trash/graffiti, /obj/structure/cable, @@ -15943,11 +15548,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/entry) -"idl" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable/industrial, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/ce) "idm" = ( /obj/structure/disposaloutlet{ name = "Prisoner Delivery" @@ -16058,6 +15658,10 @@ /obj/machinery/light/directional/east, /turf/open/floor/wood, /area/station/commons/fitness/recreation/entertainment) +"igF" = ( +/obj/item/grown/bananapeel, +/turf/open/misc/grass/jungle, +/area/station/maintenance/port/central) "ihh" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -16131,6 +15735,26 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) +"ijh" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Cryogenics Bay" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + id_tag = "medlobby"; + cycle_id = "medbay_lobby" + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/treatment_center) "ijM" = ( /obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/trimline/yellow/filled/corner, @@ -16158,6 +15782,15 @@ /obj/effect/turf_decal/trimline/blue/line, /turf/open/floor/iron/white/textured, /area/station/medical/medbay/lobby) +"ilb" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "ilm" = ( /obj/machinery/door/airlock/public/glass{ name = "General Breakroom" @@ -16165,15 +15798,10 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/eighties/red, /area/station/service/electronic_marketing_den) -"ilC" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/obj/structure/chair/sofa/corp/left{ - dir = 8 - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/storage) +"ilo" = ( +/obj/machinery/camera/directional/south, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/ce) "ilO" = ( /obj/effect/mapping_helpers/airlock/unres{ dir = 4 @@ -16211,6 +15839,16 @@ "imn" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/office) +"imo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white/textured, +/area/station/medical/treatment_center) "imq" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -16242,6 +15880,17 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) +"imE" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Base" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "imJ" = ( /obj/machinery/duct/industrial/waste, /obj/effect/turf_decal/trimline/red/filled/warning{ @@ -16261,19 +15910,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark/textured, /area/station/medical/medbay/lobby) -"imV" = ( -/obj/structure/cable, -/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, -/obj/structure/disposalpipe/segment, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "inf" = ( /obj/machinery/disposal/delivery_chute, /obj/structure/disposalpipe/trunk, @@ -16301,44 +15937,12 @@ dir = 8 }, /area/station/command/bridge) -"inW" = ( -/obj/structure/closet/secure_closet/warden, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/flashlight/seclite, -/obj/item/gun/ballistic/automatic/pistol/paco, -/obj/item/ammo_box/magazine/m35/rubber{ - pixel_y = -3; - pixel_x = -8; - layer = 3.1 - }, -/obj/item/ammo_box/magazine/m35{ - pixel_y = 10; - pixel_x = -8; - layer = 3.1 - }, -/turf/open/floor/pod/dark, -/area/station/security/warden) "iok" = ( /mob/living/carbon/human/species/monkey, /obj/structure/flora/bush/jungle/b/style_random, /obj/structure/flora/bush/lavendergrass/style_random, /turf/open/floor/grass, /area/station/medical/virology) -"ioy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/dark_blue/filled/warning{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/dark_blue/corner{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-24"; - location = "Hall-23" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central/fore) "ioX" = ( /obj/effect/landmark/start/lawyer, /obj/machinery/light/directional/west, @@ -16356,6 +15960,10 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/sorting) +"ipi" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/white, +/area/station/medical/virology) "ipq" = ( /obj/effect/turf_decal/bot, /obj/effect/spawner/random/structure/crate_empty, @@ -16366,6 +15974,14 @@ }, /turf/open/floor/iron/dark/textured, /area/station/cargo/warehouse) +"ipv" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron, +/area/station/cargo/warehouse/upper) +"ipR" = ( +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron, +/area/station/bitrunning/den) "iqc" = ( /obj/structure/sign/poster/contraband/rebels_unite{ pixel_y = 36 @@ -16457,6 +16073,14 @@ /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) +"ise" = ( +/obj/item/kirbyplants/random, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-10"; + location = "Hall-9" + }, +/turf/open/floor/carpet, +/area/station/service/chapel) "ish" = ( /obj/machinery/computer/scan_consolenew{ dir = 4 @@ -16474,6 +16098,11 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark, /area/station/service/janitor) +"isG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "itp" = ( /turf/open/floor/iron, /area/station/cargo/miningoffice) @@ -16589,11 +16218,6 @@ }, /turf/open/floor/iron/white, /area/station/science/lab) -"ivC" = ( -/obj/machinery/duct/industrial/waste, -/mob/living/simple_animal/bot/cleanbot/autopatrol, -/turf/open/floor/wood, -/area/station/commons/lounge) "ivH" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -16651,10 +16275,6 @@ /obj/machinery/duct/industrial/waste, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/entry) -"ixt" = ( -/obj/machinery/door/airlock/external/glass, -/turf/open/floor/iron, -/area/station/cargo/warehouse/upper) "ixz" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/dark_blue/opposingcorners{ @@ -16675,6 +16295,28 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) +"ixG" = ( +/obj/machinery/button/ignition{ + id = "Xenobio"; + pixel_x = -4; + pixel_y = -3 + }, +/obj/machinery/button/door/directional/north{ + id = "Xenolab"; + name = "Test Chamber Blast Doors"; + pixel_x = 6; + pixel_y = -2; + req_access = list("xenobiology") + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/computer/security/telescreen{ + name = "Test Chamber Monitor"; + network = list("xeno"); + pixel_y = 9 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "iya" = ( /obj/effect/spawner/random/trash, /obj/effect/spawner/random/structure/grille, @@ -16715,6 +16357,13 @@ /obj/effect/turf_decal/trimline/blue/warning, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) +"iyU" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "izd" = ( /turf/open/floor/iron/stairs{ dir = 8 @@ -16746,17 +16395,6 @@ /obj/structure/closet/crate/coffin, /turf/open/floor/carpet/lone/star, /area/station/service/chapel/office) -"iAz" = ( -/obj/effect/turf_decal/trimline/brown/corner, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-22"; - location = "Hall-21" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/aft) "iAJ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -16829,30 +16467,16 @@ /obj/effect/turf_decal/trimline/green/line, /turf/open/floor/iron/dark, /area/station/service/cafeteria) -"iDY" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-9"; - location = "Hall-8" - }, -/turf/open/floor/iron/chapel{ - dir = 4 - }, -/area/station/service/chapel) +"iDO" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/machinery/light/floor/has_bulb, +/obj/effect/turf_decal/trimline/brown, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "iEa" = ( /obj/structure/flora/grass/jungle/b/style_random, /turf/open/misc/grass/jungle, /area/station/maintenance/port/central) -"iEh" = ( -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/light/neon_lining{ - icon_state = "pink2_1" - }, -/obj/machinery/light/neon_lining{ - dir = 4; - icon_state = "pink2_1" - }, -/turf/open/ballpit, -/area/station/security/checkpoint/customs) "iEx" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2, @@ -16912,15 +16536,6 @@ color = "#999999" }, /area/station/science/robotics) -"iGp" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/structure/cable/industrial, -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "Privacy Shutter" - }, -/turf/open/floor/plating, -/area/station/command/heads_quarters/ce) "iGA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16929,24 +16544,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"iGD" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/purple/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/dark/textured_corner{ - dir = 8 - }, -/area/station/science/lobby) "iGL" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/window/reinforced/spawner/directional/east, @@ -17212,10 +16809,6 @@ /obj/structure/sign/departments/science, /turf/closed/wall/r_wall, /area/station/science/lobby) -"iLU" = ( -/obj/machinery/processor/slime, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "iLY" = ( /obj/structure/chair{ dir = 1 @@ -17230,6 +16823,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"iMn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "iMo" = ( /obj/machinery/light/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -17302,28 +16900,30 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) +"iNI" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/machinery/computer/operating{ + dir = 1 + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/surgery/theatre) "iNW" = ( /turf/closed/wall, /area/station/hallway/secondary/exit/departure_lounge) -"iNX" = ( -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) -"iON" = ( -/obj/effect/spawner/random/structure/crate_empty, -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 8 +"iOf" = ( +/obj/machinery/light/neon_lining{ + dir = 8; + icon_state = "pink2_1" }, -/obj/machinery/camera/autoname/directional/west, -/obj/machinery/button/door/directional/west{ - id = "cargodoor" +/obj/machinery/light/neon_lining{ + dir = 1; + icon_state = "pink2_1" }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) +/turf/open/ballpit, +/area/station/security/checkpoint/customs) "iPh" = ( /obj/structure/cable, /turf/closed/wall, @@ -17452,12 +17052,6 @@ color = "#999999" }, /area/station/science/robotics) -"iTd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/station/cargo/storage) "iTD" = ( /obj/structure/table/wood, /obj/machinery/computer/security/wooden_tv, @@ -17471,21 +17065,19 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/hop) -"iUt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron/dark, -/area/station/medical/virology) -"iUE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"iUj" = ( +/obj/machinery/duct/industrial/waste, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 }, -/obj/machinery/camera/autoname/directional/south, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 10 +/obj/effect/turf_decal/trimline/yellow/line, +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-1"; + location = "Escape-4" }, /turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) +/area/station/hallway/secondary/exit/departure_lounge) "iUI" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -17569,6 +17161,15 @@ "iWZ" = ( /turf/closed/wall, /area/station/service/theater) +"iXo" = ( +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "iXN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -17602,12 +17203,6 @@ dir = 8 }, /area/station/service/chapel) -"iYs" = ( -/obj/machinery/sparker/directional/north{ - id = "Xenobio" - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "iYt" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -17616,6 +17211,10 @@ }, /turf/open/floor/iron/white/textured, /area/station/medical/surgery/theatre) +"iZv" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) "iZy" = ( /obj/structure/table/reinforced, /obj/item/storage/secure/safe/directional/north, @@ -17685,6 +17284,13 @@ /obj/effect/landmark/start/warden, /turf/open/floor/wood/large, /area/station/security/warden) +"jbP" = ( +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/line, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "jbU" = ( /obj/structure/cable/industrial, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -17792,6 +17398,13 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) +"jef" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/box, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "jej" = ( /obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -17816,6 +17429,11 @@ /obj/machinery/plumbing/floor_pump/input/on/waste/directional/south, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"jeA" = ( +/obj/machinery/cart, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "jeT" = ( /obj/structure/table, /obj/item/paper_bin, @@ -17967,21 +17585,6 @@ /obj/machinery/air_sensor/nitrogen_tank, /turf/open/floor/engine/n2, /area/station/engineering/atmos) -"jja" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 8 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "jjd" = ( /obj/machinery/door/airlock/public/glass{ name = "Central Access" @@ -18063,15 +17666,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) -"jkE" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/brown/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "jkG" = ( /obj/structure/table/reinforced, /obj/item/stack/sheet/plasteel{ @@ -18134,13 +17728,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark/textured, /area/station/security/office) -"jlQ" = ( -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/unres, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "jmd" = ( /obj/structure/bodycontainer/morgue, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -18155,6 +17742,17 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/plastic, /area/station/hallway/primary/central) +"jns" = ( +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/aft) "jnw" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -18224,20 +17822,13 @@ /turf/open/floor/iron/dark, /area/station/security/office) "jpe" = ( -/obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, -/area/station/cargo/miningoffice) -"jpi" = ( -/obj/effect/spawner/random/structure/crate_empty, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 10 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) +/area/station/bitrunning/den) "jpm" = ( /obj/machinery/duct/industrial/waste, /obj/structure/disposalpipe/segment{ @@ -18255,10 +17846,6 @@ /obj/structure/table/wood, /turf/open/floor/carpet/executive, /area/station/command/bridge) -"jpS" = ( -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/medical/surgery/theatre) "jpZ" = ( /obj/machinery/computer/security{ dir = 8 @@ -18282,22 +17869,6 @@ /obj/structure/altar_of_gods, /turf/open/floor/carpet, /area/station/service/chapel) -"jqM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/white/filled/warning{ - dir = 1; - color = "#009dc4" - }, -/obj/effect/turf_decal/trimline/white/warning{ - color = "#009dc4" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-15"; - location = "Hall-14" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "jrg" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/turf_decal/bot, @@ -18362,21 +17933,27 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"jtw" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 10 +"jtG" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/glass/waterbottle/large{ + pixel_x = 5; + pixel_y = 20 }, -/obj/effect/turf_decal/trimline/red/corner{ - dir = 4 +/obj/item/reagent_containers/cup/glass/waterbottle{ + pixel_x = 7 }, -/obj/machinery/flasher/directional/east{ - id = "secentranceflasher"; - pixel_x = -26 +/obj/item/plate{ + pixel_x = -9 + }, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_x = -9; + pixel_y = 3 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 10 }, -/obj/machinery/light/floor/has_bulb, -/mob/living/simple_animal/bot/secbot/beepsky, /turf/open/floor/iron/dark/textured, -/area/station/security/office) +/area/station/cargo/storage) "jtJ" = ( /obj/machinery/light/directional/south, /turf/open/floor/wood, @@ -18396,6 +17973,12 @@ /obj/effect/turf_decal/trimline/purple/filled/line, /turf/open/floor/iron/white/textured_large, /area/station/science/robotics/lab) +"jug" = ( +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/structure/crate_empty, +/obj/effect/turf_decal/trimline/brown/filled/line, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "juZ" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Power Monitoring" @@ -18429,6 +18012,17 @@ }, /turf/open/floor/iron/white/textured, /area/station/medical/storage) +"jve" = ( +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/light/neon_lining{ + icon_state = "pink2_1" + }, +/obj/machinery/light/neon_lining{ + dir = 8; + icon_state = "pink2_1" + }, +/turf/open/ballpit, +/area/station/security/checkpoint/customs) "jvk" = ( /obj/structure/table, /obj/structure/window/reinforced/spawner/directional/east, @@ -18491,13 +18085,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/medical/medbay/lobby) -"jwO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "jwY" = ( /obj/effect/turf_decal/trimline/brown/filled/warning{ dir = 8 @@ -18561,6 +18148,18 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"jzn" = ( +/obj/structure/lattice, +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/plating/ocean, +/area/ocean/near_station_powered) "jzp" = ( /obj/machinery/duct/industrial/waste, /obj/structure/cable, @@ -18597,6 +18196,16 @@ /obj/structure/closet/firecloset/full, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"jAu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/south, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 10 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "jAG" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/simple/green/visible, @@ -18722,10 +18331,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) -"jCH" = ( -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "jDm" = ( /obj/effect/spawner/random/vendor_meal_sides, /obj/structure/closet/emcloset, @@ -18796,6 +18401,13 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/medical/surgery/theatre) +"jEU" = ( +/obj/machinery/camera/autoname/directional/south, +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/item/stock_parts/cell, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "jFi" = ( /obj/effect/turf_decal/stripes{ dir = 9 @@ -18863,6 +18475,18 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) +"jGW" = ( +/obj/machinery/computer/piratepad_control/civilian{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "jGY" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -18891,6 +18515,12 @@ /obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) +"jId" = ( +/obj/structure/cable/industrial, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating/ocean, +/area/ocean) "jIt" = ( /obj/structure/bed, /obj/item/bedsheet/dorms, @@ -18911,6 +18541,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"jIO" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "jIQ" = ( /obj/structure/cable, /turf/open/floor/wood, @@ -18935,6 +18574,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) +"jJi" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 8 + }, +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Monitoring" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) "jJy" = ( /obj/effect/turf_decal/tile/neutral/fourcorners{ color = "#009dc4" @@ -19059,24 +18711,17 @@ /obj/effect/turf_decal/trimline/green/line, /turf/open/floor/iron/dark, /area/station/service/cafeteria) +"jMb" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "jMd" = ( /obj/structure/disposalpipe/segment, /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) -"jMi" = ( -/obj/machinery/light_switch/directional/south, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/item/storage/backpack/duffelbag/med/surgery, -/obj/machinery/defibrillator_mount/directional/south, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "jMq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -19134,16 +18779,6 @@ /obj/structure/table/wood, /turf/open/floor/carpet/executive, /area/station/command/bridge) -"jNs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/closet/secure_closet/cytology, -/turf/open/floor/holofloor/dark, -/area/station/science/cytology) "jNH" = ( /obj/machinery/light/directional/east, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -19242,6 +18877,15 @@ /obj/structure/cable/industrial, /turf/open/floor/glass/reinforced, /area/station/engineering/main) +"jPF" = ( +/obj/structure/rack, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/box/syringes, +/turf/open/floor/iron/white, +/area/station/medical/virology) "jQc" = ( /obj/machinery/camera/directional/north{ c_tag = "AI Upload Foyer"; @@ -19261,6 +18905,22 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"jQl" = ( +/obj/machinery/duct/industrial/waste, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 6 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-21"; + location = "Hall-20" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/aft) "jQW" = ( /obj/structure/rack, /obj/machinery/light_switch/directional/west, @@ -19283,14 +18943,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"jRw" = ( -/obj/structure/cable/industrial, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/computer/cargo/engineering, -/turf/open/floor/iron/dark/textured, -/area/station/engineering/main) "jRC" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -19303,18 +18955,21 @@ "jRD" = ( /turf/closed/wall, /area/station/science/lobby) -"jRR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 8 +"jRG" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Test Chamber Blast Door" }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/obj/machinery/door/window/left/directional/south{ + dir = 4; + name = "Maximum Security Test Chamber"; + req_access = list("xenobiology") }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/science/xenobiology) "jRX" = ( /obj/structure/cable, /obj/effect/turf_decal/plaque{ @@ -19405,24 +19060,6 @@ }, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/medical/coldroom) -"jUd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/sorting) -"jUk" = ( -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/machinery/door/airlock/highsecurity{ - name = "Secure Network Access" - }, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) "jUr" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -19494,6 +19131,14 @@ dir = 8 }, /area/station/cargo/miningoffice) +"jWG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/machinery/holopad, +/turf/open/floor/iron/white/textured, +/area/station/medical/surgery/theatre) "jWO" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -19690,6 +19335,12 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"jZW" = ( +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "jZX" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -19713,6 +19364,17 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/brig) +"kaH" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) +"kbi" = ( +/obj/structure/flora/grass/jungle/a/style_random, +/mob/living/carbon/human/species/monkey, +/turf/open/misc/grass/jungle, +/area/station/maintenance/port/central) "kbp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19735,14 +19397,6 @@ }, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"kcC" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/external{ - name = "Escape Pod Four"; - space_dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "kcH" = ( /obj/machinery/button/door/directional/north{ id = "roboticsprivacy"; @@ -19802,15 +19456,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"kdI" = ( -/obj/structure/table/wood, -/obj/machinery/light_switch/directional/east, -/obj/item/reagent_containers/cup/rag{ - pixel_y = 7 - }, -/obj/item/holosign_creator/robot_seat/bar, -/turf/open/floor/carpet/neon/simple/green/nodots, -/area/station/service/bar) "kdT" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -19995,15 +19640,6 @@ }, /turf/open/floor/plating, /area/station/cargo/warehouse) -"khS" = ( -/obj/effect/turf_decal/trimline/purple/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/purple/arrow_cw{ - dir = 10 - }, -/turf/open/floor/iron/dark/textured, -/area/station/science/lobby) "kie" = ( /obj/machinery/duct/industrial/waste, /obj/effect/turf_decal/trimline/purple/filled/warning, @@ -20027,6 +19663,9 @@ }, /turf/open/floor/iron/white/textured_edge, /area/station/command/bridge) +"kiM" = ( +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "kjc" = ( /obj/effect/spawner/random/structure/crate_loot, /turf/open/floor/plating, @@ -20065,6 +19704,14 @@ }, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation/entertainment) +"kkl" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/effect/landmark/start/scientist, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "kkp" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -20093,11 +19740,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"kkX" = ( -/obj/machinery/plumbing/floor_pump/input/on/waste/directional/north, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron, -/area/station/cargo/warehouse/upper) "klb" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -20428,6 +20070,26 @@ /obj/effect/base_turf_modifier/pit, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) +"ktm" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/cargo/miningoffice) +"kto" = ( +/obj/structure/fans/tiny/forcefield, +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"kty" = ( +/obj/machinery/duct/industrial/waste, +/obj/effect/turf_decal/trimline/brown/filled/warning, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "ktC" = ( /obj/machinery/duct/industrial/waste, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -20439,6 +20101,21 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) +"kuM" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 4 + }, +/obj/machinery/flasher/directional/east{ + id = "secentranceflasher"; + pixel_x = -26 + }, +/obj/machinery/light/floor/has_bulb, +/mob/living/simple_animal/bot/secbot/beepsky, +/turf/open/floor/iron/dark/textured, +/area/station/security/office) "kuO" = ( /turf/open/floor/iron/vaporwave, /area/station/service/library) @@ -20467,19 +20144,17 @@ /obj/effect/landmark/start/detective, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) -"kwc" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/green/corner{ - dir = 4 +"kvV" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-16"; - location = "Hall-15" +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 1 }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) +/obj/effect/turf_decal/trimline/brown/filled/warning, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "kwp" = ( /obj/structure/cable, /obj/machinery/light/floor/has_bulb, @@ -20522,15 +20197,9 @@ /obj/item/stack/sheet/rglass/fifty, /turf/open/floor/iron, /area/station/engineering/atmos) -"kxu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/obj/machinery/cart, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) +"kxG" = ( +/turf/closed/wall/r_wall, +/area/station/cargo/warehouse/upper) "kxO" = ( /obj/machinery/duct/industrial/waste, /obj/structure/disposalpipe/segment{ @@ -20578,18 +20247,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) -"kyM" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/line, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/trimline/brown/mid_joiner, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 1 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "kzg" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/directional/west, @@ -20613,11 +20270,6 @@ /obj/structure/fans/tiny/forcefield, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation/entertainment) -"kzJ" = ( -/obj/machinery/camera/autoname/directional/north, -/obj/structure/closet/l3closet/virology, -/turf/open/floor/iron/dark, -/area/station/medical/virology) "kzO" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -20704,6 +20356,11 @@ }, /turf/open/floor/iron/dark/textured, /area/station/service/hydroponics) +"kBA" = ( +/obj/structure/sign/warning/secure_area, +/obj/effect/base_turf_modifier/pit, +/turf/closed/wall/r_wall/rust, +/area/station/ai_monitored/turret_protected/ai) "kBB" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -20744,11 +20401,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"kCx" = ( -/obj/machinery/atmospherics/components/binary/pump, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "kCz" = ( /turf/closed/wall/r_wall, /area/station/service/theater) @@ -20843,28 +20495,6 @@ /obj/machinery/door/firedoor/border_only, /turf/open/floor/engine, /area/station/hallway/secondary/entry) -"kEz" = ( -/obj/machinery/button/ignition{ - id = "Xenobio"; - pixel_x = -4; - pixel_y = -3 - }, -/obj/machinery/button/door/directional/north{ - id = "Xenolab"; - name = "Test Chamber Blast Doors"; - pixel_x = 6; - pixel_y = -2; - req_access = list("xenobiology") - }, -/obj/structure/table/reinforced/plastitaniumglass, -/obj/machinery/computer/security/telescreen{ - name = "Test Chamber Monitor"; - network = list("xeno"); - pixel_y = 9 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "kFG" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -20925,6 +20555,12 @@ }, /turf/open/floor/carpet/executive, /area/station/commons/vacant_room/commissary) +"kGm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "kGz" = ( /obj/effect/landmark/start/chaplain, /obj/structure/cable, @@ -20933,17 +20569,6 @@ }, /turf/open/floor/carpet/lone/star, /area/station/service/chapel/office) -"kGA" = ( -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "Privacy Shutter" - }, -/obj/machinery/door/airlock/command/glass{ - name = "Chief Engineer" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/ce, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) "kGQ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -20969,9 +20594,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) -"kHV" = ( -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "kHX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -21052,19 +20674,19 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"kJB" = ( +"kJA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 + dir = 6 }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 8 +/obj/effect/turf_decal/trimline/purple/filled/corner, +/obj/effect/turf_decal/trimline/purple/arrow_cw{ + dir = 9 }, /turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) +/area/station/science/lobby) "kJF" = ( /obj/machinery/newscaster/directional/east, /obj/effect/turf_decal/trimline/green/line, @@ -21128,12 +20750,39 @@ /obj/machinery/door/firedoor/border_only, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/hop) +"kKC" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/trimline/brown/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "kKO" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/warning{ dir = 8 }, /turf/open/floor/iron/dark/textured, /area/station/security/courtroom) +"kKP" = ( +/obj/machinery/duct/industrial/waste, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-7"; + location = "Hall-6" + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/medbay/lobby) "kKW" = ( /obj/effect/turf_decal/stripes{ dir = 4 @@ -21165,10 +20814,6 @@ }, /turf/open/floor/plating, /area/station/security/checkpoint/customs) -"kLz" = ( -/obj/effect/landmark/start/shaft_miner, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "kLF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -21279,6 +20924,21 @@ /obj/effect/base_turf_modifier/pit, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) +"kNY" = ( +/obj/machinery/duct/industrial/waste, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/brown/filled/warning, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/effect/mapping_helpers/airlock/unres, +/obj/machinery/door/airlock/mining/glass{ + id_tag = "innercargo"; + name = "Cargo Bay" + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "kOf" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/eighties/red, @@ -21312,20 +20972,6 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) -"kOL" = ( -/obj/machinery/duct/industrial/waste, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-8"; - location = "Hall-7" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "kOM" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -21412,16 +21058,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/lockers) -"kQD" = ( -/obj/machinery/computer/prisoner/management{ - dir = 4 - }, -/obj/item/food/spaghetti/security{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/hos) "kQL" = ( /obj/structure/table/reinforced, /obj/item/stack/sheet/glass/fifty, @@ -21558,6 +21194,9 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/dark/textured_large, /area/station/medical/medbay/central) +"kUi" = ( +/turf/open/floor/iron, +/area/station/cargo/warehouse/upper) "kUl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -21611,6 +21250,17 @@ /obj/effect/turf_decal/trimline/blue/filled/warning, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/restrooms) +"kUY" = ( +/obj/machinery/camera/autoname/directional/north, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/iron/dark/smooth_large, +/area/station/cargo/miningoffice) "kVq" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, @@ -21656,6 +21306,12 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/dark, /area/station/service/chapel/office) +"kWk" = ( +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "kWz" = ( /obj/machinery/camera/directional/west, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -21795,6 +21451,17 @@ }, /turf/open/floor/iron/dark/textured, /area/station/medical/surgery/theatre) +"lbi" = ( +/obj/effect/turf_decal/trimline/brown/corner, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-22"; + location = "Hall-21" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/aft) "lbq" = ( /obj/effect/turf_decal/tile/neutral/fourcorners{ color = "#009dc4" @@ -21913,11 +21580,6 @@ /obj/machinery/door/airlock/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/central) -"lfN" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "lfO" = ( /obj/structure/cable, /turf/open/floor/carpet, @@ -21949,6 +21611,15 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) +"lfY" = ( +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/structure/crate_empty, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "lgg" = ( /obj/structure/disposalpipe/segment, /obj/machinery/holopad, @@ -21984,6 +21655,12 @@ /obj/effect/turf_decal/trimline/red/filled/warning, /turf/open/floor/iron/dark/textured, /area/station/security/interrogation) +"lgN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/station/cargo/storage) "lgP" = ( /obj/item/radio/intercom/directional/east, /obj/effect/turf_decal/siding/wood{ @@ -22023,23 +21700,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/maintenance/port/aft) -"lhq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/white/warning{ - color = "#009dc4" - }, -/obj/effect/turf_decal/trimline/white/filled/warning{ - dir = 1; - color = "#009dc4" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-12"; - location = "Hall-11" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "lhr" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Power Monitoring" @@ -22131,21 +21791,6 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/service/electronic_marketing_den) -"ljE" = ( -/obj/machinery/door/airlock/medical/glass{ - id_tag = "MedbayFoyer"; - name = "Medbay Clinic" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/general, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning, -/turf/open/floor/iron/white/textured, -/area/station/medical/medbay/central) "lkB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, @@ -22222,15 +21867,6 @@ }, /turf/open/floor/carpet, /area/station/medical/medbay/central) -"lmk" = ( -/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 5 - }, -/turf/open/floor/iron/dark/textured, -/area/station/medical/surgery/theatre) "lms" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/green/filled/warning, @@ -22267,6 +21903,11 @@ /obj/machinery/computer/old, /turf/open/floor/plating, /area/station/maintenance/port/central) +"lmI" = ( +/obj/machinery/duct/industrial/waste, +/mob/living/simple_animal/bot/cleanbot/autopatrol, +/turf/open/floor/wood, +/area/station/commons/lounge) "lmO" = ( /obj/machinery/duct/industrial/waste, /obj/effect/turf_decal/trimline/green/filled/warning, @@ -22278,11 +21919,6 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/security/armory) -"loR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/virology) "loV" = ( /obj/machinery/door/airlock/command/glass{ name = "Bridge" @@ -22313,26 +21949,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"lpP" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/engine, -/area/station/science/xenobiology) "lpX" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, /turf/open/floor/engine, /area/station/science/robotics/mechbay) -"lpY" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/medical/storage) "lqa" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -22355,6 +21977,15 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/plastic, /area/station/hallway/primary/central) +"lrg" = ( +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "lrt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22366,6 +21997,14 @@ }, /turf/open/floor/plastic, /area/station/hallway/primary/central) +"lrK" = ( +/obj/effect/spawner/random/structure/crate_empty, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "lrO" = ( /obj/machinery/door/airlock/security{ name = "Armory" @@ -22443,22 +22082,6 @@ }, /turf/open/floor/wood, /area/station/commons/fitness/recreation/entertainment) -"ltW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/purple/filled/warning, -/obj/effect/turf_decal/trimline/purple/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/purple/filled/mid_joiner, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-5"; - location = "Hall-4" - }, -/turf/open/floor/iron/dark/textured_edge, -/area/station/hallway/primary/central) "ltZ" = ( /obj/effect/turf_decal/tile/blue/full, /obj/effect/turf_decal/siding/white{ @@ -22520,6 +22143,12 @@ }, /turf/closed/wall, /area/station/maintenance/starboard/aft) +"lvt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "lvw" = ( /turf/open/floor/iron, /area/station/engineering/atmos) @@ -22560,20 +22189,6 @@ /obj/effect/turf_decal/trimline/red/filled/warning, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"lwj" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor/auto{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/brown/filled/warning, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron, -/area/station/cargo/storage) "lwu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22630,13 +22245,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) -"lyz" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "lyP" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, @@ -22679,6 +22287,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/large, /area/station/security/warden) +"lzG" = ( +/obj/machinery/light/floor/has_bulb, +/obj/effect/turf_decal/trimline/blue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct/industrial/waste, +/turf/open/floor/iron/white/textured, +/area/station/medical/medbay/lobby) "lzJ" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 10 @@ -22715,6 +22331,15 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/storage/emergency/port) +"lzS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct/industrial/waste, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 10 + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/medbay/lobby) "lzW" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -22770,6 +22395,10 @@ "lAH" = ( /turf/open/floor/carpet/neon/simple/white, /area/station/commons/dorms) +"lAK" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/cargo/warehouse/upper) "lAM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -22780,6 +22409,11 @@ }, /turf/open/floor/iron/white/textured, /area/station/medical/medbay/central) +"lAP" = ( +/obj/machinery/plumbing/floor_pump/input/on/waste/directional/north, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron, +/area/station/cargo/warehouse/upper) "lBf" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22787,6 +22421,14 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/science/lobby) +"lBo" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/trimline/brown/corner, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "lBw" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -22833,16 +22475,6 @@ }, /turf/open/floor/iron/dark/textured, /area/mine/storage/public) -"lCu" = ( -/obj/machinery/light/neon_lining{ - icon_state = "pink2_1" - }, -/obj/machinery/light/neon_lining{ - dir = 8; - icon_state = "pink2_1" - }, -/turf/open/ballpit, -/area/station/security/checkpoint/customs) "lCz" = ( /obj/structure/sign/departments/chemistry/pharmacy, /obj/machinery/vending/drugs, @@ -22958,6 +22590,10 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron/dark, /area/station/service/chapel/office) +"lEJ" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/carpet/neon/simple/cyan/nodots, +/area/station/medical/virology) "lFa" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/trimline/dark_blue/filled/warning{ @@ -23081,9 +22717,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"lHr" = ( -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "lHt" = ( /turf/open/floor/iron/chapel{ dir = 8 @@ -23115,15 +22748,14 @@ /mob/living/basic/cockroach, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"lHT" = ( -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 8 +"lHR" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 }, +/obj/effect/turf_decal/trimline/red/corner, +/obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) +/area/station/security/office) "lHZ" = ( /obj/machinery/door/window{ atom_integrity = 300; @@ -23165,6 +22797,28 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"lJl" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/effect/turf_decal/trimline/blue/warning{ + dir = 1 + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Cryogenics Bay" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct/industrial/waste, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + id_tag = "medlobby"; + cycle_id = "medbay_lobby" + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/treatment_center) "lJE" = ( /obj/structure/table/glass/plasmaglass, /obj/item/electronics/airlock, @@ -23253,26 +22907,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/textured, /area/station/medical/treatment_center) -"lMc" = ( -/obj/machinery/piratepad/civilian, -/obj/effect/turf_decal/bot_white, -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/mid_joiner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 4 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "lMo" = ( /obj/structure/window/spawner/directional/south, /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ @@ -23291,6 +22925,10 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/sorting) +"lMM" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "lNA" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/iron/dark/textured, @@ -23404,16 +23042,13 @@ dir = 4 }, /area/station/engineering/atmos/hfr_room) -"lQe" = ( -/obj/machinery/computer/records/medical{ - dir = 4 - }, -/obj/machinery/light/directional/west, -/obj/machinery/newscaster/directional/west, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/storage) +"lPX" = ( +/obj/structure/table/wood, +/obj/item/food/baguette, +/obj/item/reagent_containers/cup/glass/bottle/bottleofnothing, +/obj/machinery/light/very_dim/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/theater/abandoned) "lQl" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input{ dir = 1 @@ -23427,19 +23062,6 @@ /obj/structure/cable, /turf/open/floor/iron/grimy, /area/station/commons/fitness/recreation) -"lQN" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 8 - }, -/obj/machinery/door/airlock/atmos/glass{ - name = "Atmospherics Monitoring" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "lQP" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, @@ -23450,6 +23072,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/hallway/primary/central) +"lQT" = ( +/obj/machinery/light/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "lRd" = ( /obj/structure/cable, /obj/effect/turf_decal/plaque{ @@ -23462,6 +23089,22 @@ /obj/item/phone, /turf/open/floor/carpet/blue, /area/station/security/checkpoint/customs) +"lRh" = ( +/obj/structure/rack, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/item/shield/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/shield/riot, +/obj/item/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/iron/smooth, +/area/station/ai_monitored/security/armory) "lRV" = ( /obj/structure/bed/dogbed, /mob/living/basic/chicken/clown, @@ -23520,13 +23163,6 @@ "lTb" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/cmo) -"lTI" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, -/obj/effect/landmark/start/scientist, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "lTN" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/warning{ dir = 6 @@ -23591,19 +23227,6 @@ /obj/machinery/modular_computer/console/preset/id, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/hop) -"lVC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/green/corner, -/obj/effect/turf_decal/trimline/green/filled/warning{ - dir = 9 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-17"; - location = "Hall-16" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "lVD" = ( /obj/machinery/camera/directional/north, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -23672,34 +23295,26 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) -"lXt" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "Privacy Shutter" +"lYf" = ( +/obj/machinery/door/poddoor/shutters{ + id = "cargodoor" }, -/obj/structure/cable/industrial, /turf/open/floor/plating, -/area/station/command/heads_quarters/ce) -"lYm" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/tile/brown/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) -"lYV" = ( -/obj/machinery/airalarm/directional/north, -/obj/structure/closet/crate/freezer, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/blood/random, -/turf/open/floor/iron/white, -/area/station/medical/virology) -"lZa" = ( -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 +/area/station/cargo/storage) +"lYt" = ( +/obj/machinery/duct/industrial/waste, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-6"; + location = "Hall-5" }, /turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) +/area/station/hallway/primary/central) "lZe" = ( /obj/machinery/atmospherics/components/binary/pump/off/supply/visible/layer4, /turf/open/floor/iron, @@ -23745,6 +23360,48 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/security/office) +"mam" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/mask/breath/medical{ + pixel_y = -3 + }, +/obj/item/clothing/mask/breath/medical{ + pixel_y = -3 + }, +/obj/item/clothing/mask/breath/medical{ + pixel_y = -3 + }, +/obj/item/clothing/mask/breath/medical{ + pixel_y = -3 + }, +/obj/item/tank/internals/anesthetic{ + pixel_x = 3 + }, +/obj/item/tank/internals/anesthetic{ + pixel_x = 3 + }, +/obj/item/tank/internals/anesthetic{ + pixel_x = 3 + }, +/obj/item/tank/internals/anesthetic{ + pixel_x = 3 + }, +/obj/machinery/door/window/right/directional/south{ + name = "Surgical Supplies"; + req_access = list("surgery") + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/surgery/theatre) "maA" = ( /obj/structure/chair/office{ dir = 8 @@ -23789,20 +23446,30 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"mbF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/floor/has_bulb, -/obj/effect/turf_decal/trimline/brown, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "mca" = ( /turf/open/floor/engine, /area/station/commons/storage/emergency/port) "mcu" = ( /turf/closed/wall/rust, /area/station/service/library) +"mcB" = ( +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) +"mcL" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp, +/obj/item/computer_disk/atmos, +/obj/machinery/camera/directional/north{ + c_tag = "Chief Engineer's Office" + }, +/obj/machinery/requests_console/directional/north{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + name = "Chief Engineer's Requests Console"; + anon_tips_receiver = 1 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/ce) "mdc" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -23815,6 +23482,11 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/wood, /area/station/commons/lounge) +"mdl" = ( +/obj/machinery/duct/industrial/waste, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron, +/area/station/cargo/warehouse/upper) "mdD" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -23877,6 +23549,19 @@ /obj/structure/cable, /turf/open/floor/carpet/neon/simple/green/nodots, /area/station/service/bar/backroom) +"mfz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral/fourcorners{ + color = "#009dc4" + }, +/obj/effect/turf_decal/trimline/red/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/warning, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "mgc" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -23887,6 +23572,24 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/science/robotics/lab) +"mgA" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/brown/filled/warning, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/effect/mapping_helpers/airlock/unres, +/obj/machinery/door/airlock/mining/glass{ + id_tag = "innercargo"; + name = "Cargo Bay" + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "mhc" = ( /obj/effect/turf_decal/stripes{ dir = 4 @@ -23957,15 +23660,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/engine, /area/station/science/robotics/mechbay) -"mjS" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 4 - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "mjY" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction{ @@ -23974,6 +23668,13 @@ /obj/effect/turf_decal/trimline/purple/filled/warning, /turf/open/floor/iron/white, /area/station/science/robotics/mechbay) +"mko" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/turf/closed/wall/r_wall, +/area/station/medical/treatment_center) "mkv" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; @@ -23981,16 +23682,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"mkz" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "mkE" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Two"; @@ -24020,6 +23711,15 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) +"mln" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/neon_lining{ + dir = 1; + icon_state = "pink2_1" + }, +/mob/living/simple_animal/sloth/citrus, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "mlu" = ( /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 8 @@ -24087,12 +23787,6 @@ /obj/effect/turf_decal/trimline/yellow/filled/corner, /turf/open/floor/iron, /area/station/engineering/atmos) -"mnJ" = ( -/obj/machinery/door/poddoor/shutters{ - id = "cargodoor" - }, -/turf/open/floor/plating, -/area/station/cargo/storage) "mnO" = ( /obj/machinery/door/window/brigdoor/security/cell{ id = "Cell 1"; @@ -24190,6 +23884,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured, /area/station/commons/storage/primary) +"mpz" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/line, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/trimline/brown/mid_joiner, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "mqy" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/warning{ dir = 9 @@ -24242,17 +23948,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/textured_edge, /area/station/command/bridge) -"mrI" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/brown/filled/warning, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 1 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "mrJ" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 5 @@ -24294,6 +23989,17 @@ /obj/machinery/atmospherics/pipe/layer_manifold/purple/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"msl" = ( +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "msv" = ( /obj/structure/fans/tiny/forcefield, /obj/machinery/door/poddoor/shutters{ @@ -24311,6 +24017,39 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"msQ" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/warning, +/obj/machinery/door/airlock/medical/glass{ + name = "Cryogenics Bay" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct/industrial/waste, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + id_tag = "medlobby"; + cycle_id = "medbay_lobby" + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/medbay/lobby) +"msT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "mtb" = ( /obj/structure/table/wood/fancy/orange, /obj/item/clothing/mask/cigarette/cigar{ @@ -24358,6 +24097,16 @@ dir = 4 }, /area/station/engineering/main) +"mtQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Test Chamber Blast Door" + }, +/obj/structure/cable, +/obj/structure/sign/warning/electric_shock, +/turf/open/floor/engine, +/area/station/science/xenobiology) "mtV" = ( /obj/machinery/computer/cargo, /obj/machinery/light/neon_lining{ @@ -24478,13 +24227,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"mwD" = ( -/obj/structure/closet/secure_closet/miner, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "mxp" = ( /obj/structure/cable, /obj/machinery/plumbing/floor_pump/input/on/waste/directional/south, @@ -24532,14 +24274,6 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/commons/fitness/recreation/entertainment) -"myB" = ( -/obj/item/kirbyplants/random, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-11"; - location = "Hall-10" - }, -/turf/open/floor/carpet, -/area/station/service/chapel) "mzD" = ( /obj/effect/spawner/random/structure/table_or_rack, /obj/structure/cable, @@ -24557,6 +24291,18 @@ /obj/effect/turf_decal/tile/purple/opposingcorners, /turf/open/floor/iron/dark/textured, /area/station/science/lab) +"mAg" = ( +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/maintenance, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) +"mAw" = ( +/obj/structure/closet/secure_closet/miner, +/turf/open/floor/engine, +/area/station/cargo/miningoffice) "mAA" = ( /obj/machinery/telecomms/bus/preset_four, /turf/open/floor/iron/dark/telecomms, @@ -24632,10 +24378,27 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/brig) +"mCi" = ( +/obj/machinery/telecomms/processor/preset_three, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/station/tcommsat/server) +"mCB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/landmark/start/virologist, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "mCG" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/science/xenobiology) "mCO" = ( @@ -24822,6 +24585,26 @@ /obj/machinery/camera/directional/north, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"mIl" = ( +/obj/structure/rack, +/obj/item/grenade/barrier{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/item/grenade/barrier{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/security/armory) "mIp" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, @@ -24878,22 +24661,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"mKe" = ( -/obj/machinery/door/airlock/atmos/glass{ - name = "Atmospherics Monitoring" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"mKj" = ( -/obj/machinery/duct/industrial/waste, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "mKU" = ( /obj/effect/decal/cleanable/dirt, /obj/item/bedsheet/mime/double, @@ -25159,27 +24926,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) -"mRF" = ( -/obj/structure/table, -/obj/item/reagent_containers/cup/glass/waterbottle/large{ - pixel_x = 5; - pixel_y = 20 - }, -/obj/item/reagent_containers/cup/glass/waterbottle{ - pixel_x = 7 - }, -/obj/item/plate{ - pixel_x = -9 - }, -/obj/effect/spawner/random/food_or_drink/donkpockets{ - pixel_x = -9; - pixel_y = 3 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 10 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "mRO" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/brown/filled/warning, @@ -25224,22 +24970,6 @@ "mSq" = ( /turf/closed/wall, /area/station/maintenance/port/central) -"mSN" = ( -/obj/effect/turf_decal/siding/brown{ - dir = 1 - }, -/obj/machinery/keycard_auth/directional/north, -/turf/open/floor/carpet/executive, -/area/station/command/bridge) -"mSO" = ( -/obj/structure/cable/industrial, -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "Privacy Shutter" - }, -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating, -/area/station/command/heads_quarters/ce) "mSS" = ( /obj/structure/spider/stickyweb, /turf/open/floor/plating, @@ -25254,11 +24984,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/office) -"mTs" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/service/hydroponics/upper) "mTt" = ( /obj/machinery/shower/directional/north, /obj/structure/curtain, @@ -25292,26 +25017,6 @@ /obj/effect/spawner/random/structure/musician/piano/random_piano, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"mTM" = ( -/obj/structure/rack, -/obj/item/grenade/barrier{ - pixel_x = -3; - pixel_y = 1 - }, -/obj/item/grenade/barrier, -/obj/item/grenade/barrier{ - pixel_x = 3; - pixel_y = -1 - }, -/obj/item/grenade/barrier{ - pixel_x = 6; - pixel_y = -2 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/security/armory) "mUa" = ( /obj/structure/cable, /obj/machinery/door/airlock/security{ @@ -25332,6 +25037,10 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/office) +"mUq" = ( +/obj/structure/lattice, +/turf/open/floor/plating/ocean, +/area/station/science/xenobiology) "mUx" = ( /obj/structure/cable, /obj/structure/disposalpipe/trunk{ @@ -25470,21 +25179,6 @@ }, /turf/open/floor/carpet/neon/simple/green/nodots, /area/station/service/bar) -"mXO" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "Test Chamber Blast Door" - }, -/obj/effect/turf_decal/bot, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/obj/machinery/door/window/left/directional/south{ - dir = 4; - name = "Maximum Security Test Chamber"; - req_access = list("xenobiology") - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "mYo" = ( /obj/effect/landmark/start/assistant, /obj/effect/turf_decal/tile/blue/diagonal_centre, @@ -25659,6 +25353,13 @@ /obj/effect/turf_decal/tile/brown/fourcorners, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"ncf" = ( +/obj/machinery/duct/industrial/waste, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 9 + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/medbay/lobby) "ncg" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -25726,6 +25427,25 @@ dir = 4 }, /area/station/science/lobby) +"neg" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/mid_joiner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "neh" = ( /obj/effect/turf_decal/siding/blue{ dir = 8 @@ -25829,6 +25549,14 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) +"ngJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/sorting) "ngN" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -26087,6 +25815,23 @@ /obj/item/reagent_containers/cup/glass/bottle/hooch, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) +"nls" = ( +/obj/structure/closet/secure_closet/warden, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/flashlight/seclite, +/obj/item/gun/ballistic/automatic/pistol/paco, +/obj/item/ammo_box/magazine/m35/rubber{ + pixel_y = -3; + pixel_x = -8; + layer = 3.1 + }, +/obj/item/ammo_box/magazine/m35{ + pixel_y = 10; + pixel_x = -8; + layer = 3.1 + }, +/turf/open/floor/pod/dark, +/area/station/security/warden) "nlQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26135,6 +25880,17 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark/textured_large, /area/station/hallway/primary/central) +"nnb" = ( +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/light/neon_lining{ + icon_state = "pink2_1" + }, +/obj/machinery/light/neon_lining{ + dir = 4; + icon_state = "pink2_1" + }, +/turf/open/ballpit, +/area/station/security/checkpoint/customs) "nnv" = ( /obj/structure/fireaxecabinet/mechremoval/directional/east, /turf/open/floor/noslip{ @@ -26168,6 +25924,12 @@ /obj/structure/cable, /turf/open/floor/iron/stairs, /area/station/service/chapel) +"noq" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "noF" = ( /turf/open/floor/carpet, /area/station/medical/medbay/central) @@ -26243,6 +26005,11 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) +"nqv" = ( +/obj/structure/cable/industrial, +/obj/effect/landmark/start/chief_engineer, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/ce) "nqF" = ( /obj/structure/chair/office/light{ dir = 4 @@ -26286,13 +26053,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) -"nrV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/departments/cargo, -/turf/closed/wall, -/area/station/cargo/lobby) "nsb" = ( /obj/machinery/duct/industrial/waste, /obj/structure/extinguisher_cabinet/directional/north, @@ -26319,11 +26079,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"nsH" = ( -/obj/machinery/light/directional/south, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "nsM" = ( /obj/machinery/light/directional/west, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -26389,6 +26144,15 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) +"ntZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "nuk" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 @@ -26410,6 +26174,10 @@ /obj/effect/turf_decal/tile/green/half/contrasted, /turf/open/floor/iron/smooth, /area/station/science/genetics) +"nuV" = ( +/obj/machinery/duct/industrial/waste, +/turf/open/floor/iron/stairs, +/area/station/cargo/warehouse/upper) "nuX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -26459,16 +26227,6 @@ }, /turf/open/floor/iron/dark/textured, /area/mine/storage/public) -"nvC" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "Test Chamber Blast Door" - }, -/obj/structure/cable, -/obj/structure/sign/warning/electric_shock, -/turf/open/floor/engine, -/area/station/science/xenobiology) "nvL" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -26481,11 +26239,6 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/central) -"nvS" = ( -/obj/machinery/smartfridge/organ, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "nvY" = ( /obj/effect/turf_decal/sand, /turf/open/floor/plating/ocean, @@ -26497,11 +26250,16 @@ /obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/medical/medbay/central) -"nwZ" = ( -/obj/structure/flora/grass/jungle/a/style_random, -/mob/living/carbon/human/species/monkey, -/turf/open/misc/grass/jungle, -/area/station/maintenance/port/central) +"nwW" = ( +/obj/machinery/duct/industrial/waste, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "nxd" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -26654,6 +26412,10 @@ /obj/structure/closet/secure_closet/hydroponics, /turf/open/floor/iron/dark/textured, /area/station/service/hydroponics) +"nzZ" = ( +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/plating/ocean, +/area/station/ai_monitored/turret_protected/ai) "nAd" = ( /obj/machinery/light/directional/south, /obj/structure/extinguisher_cabinet/directional/south, @@ -26662,10 +26424,6 @@ }, /turf/open/floor/iron/white/textured, /area/station/science/genetics) -"nAe" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/turf/open/floor/engine, -/area/station/science/xenobiology) "nAn" = ( /mob/living/carbon/human/species/monkey, /obj/machinery/door/window/right/directional/south{ @@ -26696,6 +26454,20 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) +"nAS" = ( +/obj/structure/sign/warning/cold_temp/directional/north{ + pixel_y = 0; + pixel_x = -32 + }, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/surgery/theatre) "nBu" = ( /obj/machinery/griddle, /turf/open/floor/iron/kitchen, @@ -26744,6 +26516,22 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/entry) +"nCE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/white/filled/warning{ + dir = 9; + color = "#009dc4" + }, +/obj/effect/turf_decal/trimline/white/corner{ + color = "#009dc4" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-18"; + location = "Hall-17" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "nCM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26781,11 +26569,6 @@ "nDB" = ( /turf/open/floor/grass, /area/station/maintenance/starboard/upper) -"nDE" = ( -/obj/effect/spawner/random/trash/graffiti, -/obj/structure/cable/industrial, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "nDK" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron, @@ -26798,6 +26581,14 @@ }, /turf/open/floor/iron/dark/textured, /area/station/command/bridge) +"nEH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "nFf" = ( /obj/machinery/door/window/left/directional/north{ base_state = "right"; @@ -26937,13 +26728,6 @@ }, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"nHR" = ( -/obj/machinery/camera/autoname/directional/south, -/obj/effect/turf_decal/trimline/brown/filled/line, -/obj/item/stock_parts/cell, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "nHZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -26989,14 +26773,6 @@ /obj/machinery/smartfridge/petri/preloaded, /turf/open/floor/iron, /area/station/science/xenobiology) -"nJP" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/red/corner, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron/dark/textured, -/area/station/security/office) "nJU" = ( /obj/machinery/vending/cigarette, /turf/open/floor/wood, @@ -27119,6 +26895,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) +"nLQ" = ( +/obj/structure/table, +/obj/item/kitchen/rollingpin, +/obj/item/plate, +/obj/item/holosign_creator/robot_seat/restaurant, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "nLV" = ( /turf/closed/wall, /area/station/service/chapel) @@ -27193,6 +26976,10 @@ /obj/effect/turf_decal/trimline/green/line, /turf/open/floor/iron/dark/textured, /area/station/service/hydroponics) +"nNX" = ( +/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, +/turf/open/floor/iron, +/area/station/cargo/warehouse/upper) "nOf" = ( /obj/machinery/door/airlock/public/glass{ name = "Fitness" @@ -27211,11 +26998,25 @@ /obj/structure/cable, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/hop) -"nOx" = ( -/obj/vehicle/ridden/cargo_train, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) +"nOy" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/suit/jacket/straight_jacket, +/obj/item/clothing/glasses/eyepatch, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/glasses/blindfold, +/obj/item/clothing/glasses/blindfold, +/obj/machinery/door/window/right/directional/south{ + dir = 2; + name = "First Aid Supplies"; + req_access = list("medical") + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/storage) "nOV" = ( /obj/machinery/duct/industrial/waste, /obj/structure/disposalpipe/segment{ @@ -27284,6 +27085,15 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white/textured, /area/station/medical/pharmacy) +"nRv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation B" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "nRM" = ( /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, @@ -27301,6 +27111,15 @@ /obj/machinery/duct/industrial/waste, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) +"nTg" = ( +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/medical/storage) "nTi" = ( /turf/closed/wall, /area/station/engineering/main) @@ -27376,10 +27195,16 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/courtroom) -"nUK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/textured, +"nUz" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1; + initialize_directions = 4; + name = "euthanization chamber freezer" + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/plating, /area/station/science/xenobiology) "nUL" = ( /obj/machinery/ntnet_relay, @@ -27458,19 +27283,6 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/storage) -"nWw" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "nWE" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 4 @@ -27491,23 +27303,14 @@ /obj/machinery/status_display/ai, /turf/closed/wall, /area/station/hallway/secondary/exit/departure_lounge) -"nYw" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/dark_blue/line{ - dir = 8 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-23"; - location = "Hall-22" +"nYg" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/aft) +/obj/effect/turf_decal/bot, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) "nYD" = ( /obj/effect/turf_decal/trimline/purple/filled/line, /obj/structure/disposalpipe/segment{ @@ -27553,10 +27356,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/glass/reinforced, /area/station/engineering/main) -"oag" = ( -/obj/machinery/camera/directional/south, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/ce) "oas" = ( /turf/open/floor/iron/smooth, /area/station/commons/fitness/recreation) @@ -27576,26 +27375,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"obH" = ( -/obj/structure/table/glass, -/obj/item/book/manual/wiki/cytology{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/biopsy_tool{ - pixel_x = 8; - pixel_y = 2 - }, -/obj/item/storage/box/petridish{ - pixel_x = -5; - pixel_y = 8 - }, -/obj/item/storage/box/petridish{ - pixel_x = -5; - pixel_y = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/science/cytology) "obQ" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -27603,21 +27382,48 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) -"ocd" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ - dir = 1; - initialize_directions = 4; - name = "euthanization chamber freezer" +"obX" = ( +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/plating, -/area/station/science/xenobiology) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 8 + }, +/obj/machinery/door/airlock/mining/glass{ + id_tag = "innercargo"; + name = "Cargo Bay" + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/sorting) "oce" = ( /obj/effect/turf_decal/trimline/red/filled/warning, /turf/open/floor/iron/smooth, /area/station/ai_monitored/security/armory) +"ocg" = ( +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/window/left/directional/west{ + dir = 2; + name = "Crate Security Door"; + req_access = list("shipping") + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "ock" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "Air to Mix" @@ -27625,15 +27431,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"ocv" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "ocM" = ( /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, /obj/effect/turf_decal/trimline/yellow/filled/corner{ @@ -27641,6 +27438,11 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"ocP" = ( +/obj/machinery/camera/autoname/directional/north, +/obj/structure/closet/l3closet/virology, +/turf/open/floor/iron/white, +/area/station/medical/virology) "ocU" = ( /obj/item/radio/intercom/directional/west{ freerange = 1; @@ -27686,13 +27488,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) -"odT" = ( -/obj/machinery/light/neon_lining{ - dir = 1; - icon_state = "pink2_1" - }, -/turf/open/ballpit, -/area/station/security/checkpoint/customs) "oes" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -27702,6 +27497,11 @@ }, /turf/open/floor/plating, /area/station/command/heads_quarters/cmo) +"oex" = ( +/obj/effect/turf_decal/tile/brown/fourcorners, +/obj/machinery/computer/order_console/bitrunning, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "oeO" = ( /obj/machinery/light/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27807,6 +27607,13 @@ }, /turf/open/floor/iron/dark/textured, /area/station/command/bridge) +"ogA" = ( +/obj/structure/railing, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/misc/sandy_dirt, +/area/station/service/hydroponics/upper) "ogJ" = ( /obj/effect/turf_decal/trimline/red/line{ dir = 4 @@ -27865,17 +27672,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"oiq" = ( -/obj/effect/turf_decal/trimline/brown/filled/line, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/mid_joiner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "oiy" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -28134,21 +27930,6 @@ }, /turf/open/floor/iron/white, /area/station/science/lab) -"ooa" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor/auto, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/brown/filled/warning, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 1 - }, -/obj/machinery/door/window/left/directional/west{ - dir = 2; - name = "Crate Security Door"; - req_access = list("shipping") - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "ooi" = ( /obj/structure/cable, /turf/open/floor/noslip{ @@ -28272,30 +28053,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/service/hydroponics/upper) -"oqT" = ( -/obj/structure/table, -/obj/item/assembly/igniter{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/assembly/igniter{ - pixel_x = 5; - pixel_y = -4 - }, -/obj/item/assembly/igniter{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/assembly/igniter{ - pixel_x = 2; - pixel_y = -1 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Xenobiology Lab - Test Chamber"; - network = list("ss13","rd","xeno") - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "ord" = ( /obj/item/radio/intercom/directional/west, /obj/machinery/camera/directional/west, @@ -28379,6 +28136,24 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/mineral/titanium/yellow, /area/station/maintenance/starboard/aft) +"otn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Pharmacy" + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/medical/pharmacy, +/obj/effect/mapping_helpers/airlock/access/any/medical/general, +/turf/open/floor/iron/white/textured, +/area/station/medical/medbay/central) "otz" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -28425,28 +28200,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) -"ouo" = ( -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 8 - }, -/obj/machinery/door/airlock/mining/glass{ - id_tag = "innercargo"; - name = "Cargo Bay" - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/sorting) "ouC" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/machinery/vending/wardrobe/chem_wardrobe, @@ -28479,6 +28232,14 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) +"ouW" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Monitoring" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/fans/tiny/forcefield, +/turf/open/floor/plating, +/area/station/engineering/atmos) "ovi" = ( /obj/effect/turf_decal/trimline/blue/filled/end, /obj/machinery/disposal/bin, @@ -28487,6 +28248,15 @@ }, /turf/open/floor/iron/dark/textured, /area/station/medical/surgery/theatre) +"ovm" = ( +/obj/machinery/camera/autoname/directional/east, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "ovu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28502,6 +28272,23 @@ dir = 4 }, /area/station/hallway/primary/central) +"ovH" = ( +/obj/structure/table, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_x = -9; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/glass/waterbottle/large{ + pixel_x = 5; + pixel_y = 20 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) "ovT" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/white/filled/corner{ @@ -28714,10 +28501,6 @@ /obj/structure/window/reinforced/plasma/spawner/directional/north, /turf/open/floor/iron/dark/textured, /area/station/security/brig) -"oAr" = ( -/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "oAL" = ( /obj/item/radio/intercom/directional/west, /obj/structure/closet/secure_closet/security/science, @@ -28748,6 +28531,17 @@ /obj/machinery/air_sensor/plasma_tank, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) +"oBZ" = ( +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) +"oCO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/floor/has_bulb, +/obj/effect/turf_decal/trimline/brown, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "oCP" = ( /obj/machinery/telecomms/server/presets/service, /turf/open/floor/circuit, @@ -28792,11 +28586,6 @@ "oDX" = ( /turf/open/floor/iron/dark, /area/station/service/chapel/office) -"oDZ" = ( -/obj/structure/cable/industrial, -/obj/effect/landmark/start/chief_engineer, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/ce) "oEo" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -28852,15 +28641,6 @@ /obj/effect/base_turf_modifier/pit, /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/turret_protected/ai) -"oGE" = ( -/obj/machinery/computer/crew{ - dir = 4 - }, -/obj/effect/turf_decal/siding/white, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/storage) "oGQ" = ( /obj/effect/decal/cleanable/blood/tracks, /obj/structure/cable, @@ -28945,13 +28725,6 @@ /obj/effect/turf_decal/tile/blue/diagonal_centre, /turf/open/floor/iron/white/diagonal, /area/station/medical/medbay/lobby) -"oII" = ( -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) "oIJ" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 5 @@ -28984,6 +28757,24 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/commons/storage/emergency/starboard) +"oKa" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay Clinic" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/turf/open/floor/iron/white/textured, +/area/station/medical/medbay/central) "oKD" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -29078,6 +28869,10 @@ /obj/item/clothing/glasses/sunglasses, /turf/open/floor/iron/grimy, /area/station/service/lawoffice) +"oPj" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall, +/area/station/cargo/lobby) "oPk" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 9 @@ -29087,15 +28882,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"oPs" = ( -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "Privacy Shutter" - }, -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/structure/cable/industrial, -/turf/open/floor/plating, -/area/station/command/heads_quarters/ce) "oPx" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/structure/cable, @@ -29218,17 +29004,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine/co2, /area/station/engineering/atmos) -"oSA" = ( -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) -"oTe" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/textured, -/area/station/engineering/break_room) "oTl" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/effect/turf_decal/delivery, @@ -29308,6 +29083,17 @@ color = "#D381C9" }, /area/station/science/robotics) +"oUK" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 9 + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/surgery/theatre) "oVc" = ( /obj/structure/window/spawner/directional/east, /obj/structure/bookcase{ @@ -29518,6 +29304,23 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) +"pay" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/ticket_machine/directional/east{ + id = "ticket_machine_engie" + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plastic, +/area/station/hallway/primary/central) "paJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29551,16 +29354,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/courtroom) -"pbq" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/medical/surgery/theatre) "pcx" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/floor/plating/ocean, @@ -29647,27 +29440,6 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/engineering/storage/tech) -"pfK" = ( -/obj/machinery/computer/atmos_control/mix_tank{ - dir = 1 - }, -/obj/structure/window/spawner/directional/south, -/obj/effect/turf_decal/tile/green/half/contrasted, -/obj/machinery/door/airlock/atmos/glass{ - name = "Atmospherics Monitoring" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"pfW" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 - }, -/obj/machinery/computer/operating{ - dir = 1 - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "pfX" = ( /obj/machinery/door/airlock/public/glass{ name = "Escape" @@ -29818,13 +29590,6 @@ }, /turf/open/floor/iron/dark, /area/station/commons/dorms) -"piW" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/iron/white, -/area/station/medical/virology) "pjd" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -29833,6 +29598,15 @@ /obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/medical/medbay/central) +"pjg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Test Chamber Blast Door" + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/science/xenobiology) "pkl" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/blue/filled/warning, @@ -29968,6 +29742,13 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/atmos/office) +"pmG" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/netpod, +/turf/open/floor/iron, +/area/station/bitrunning/den) "pmN" = ( /obj/machinery/door/firedoor/border_only{ dir = 1 @@ -30041,6 +29822,21 @@ /obj/machinery/vending/wardrobe/curator_wardrobe, /turf/open/floor/iron/vaporwave, /area/station/service/library) +"pom" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/mid_joiner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "poE" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Engineering Foyer" @@ -30070,6 +29866,14 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/break_room) +"poH" = ( +/obj/structure/cable/industrial, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/computer/cargo/engineering, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/main) "poN" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/mineral/titanium/blue, @@ -30290,15 +30094,6 @@ dir = 1 }, /area/station/science/lab) -"pua" = ( -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "pug" = ( /turf/closed/wall, /area/station/commons/fitness) @@ -30315,9 +30110,6 @@ }, /turf/open/floor/engine, /area/station/engineering/main) -"puS" = ( -/turf/closed/wall/r_wall, -/area/station/cargo/warehouse/upper) "puW" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30342,18 +30134,41 @@ }, /turf/open/floor/plating, /area/station/service/kitchen/kitchen_backroom) -"pvw" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) "pwa" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) +"pww" = ( +/obj/machinery/door/airlock, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) +"pwA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/window/preopen{ + name = "Security Lockdown Shutters"; + id = "securityshutter" + }, +/obj/structure/sign/departments/security, +/turf/open/floor/plating, +/area/station/security/office) +"pwD" = ( +/obj/machinery/camera/autoname/directional/north, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/misc/sandy_dirt, +/area/station/service/hydroponics/upper) "pwU" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/turf_decal/stripes/line{ @@ -30438,18 +30253,34 @@ /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"pzQ" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/stack/sheet/mineral/plasma{ + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/knife/kitchen, +/turf/open/floor/iron/dark/textured, +/area/station/science/cytology) "pzX" = ( /obj/structure/closet/crate, /turf/open/floor/carpet/executive, /area/station/command/bridge) -"pzZ" = ( -/obj/item/kirbyplants/random, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-10"; - location = "Hall-9" - }, -/turf/open/floor/carpet, -/area/station/service/chapel) "pAg" = ( /obj/machinery/computer/security/mining{ dir = 4 @@ -30505,23 +30336,6 @@ dir = 4 }, /area/station/science/lobby) -"pCy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/line, -/obj/machinery/light/directional/north, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/table/reinforced, -/obj/item/stack/medical/bone_gel, -/obj/item/stack/sticky_tape/surgical, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "pCM" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line, /obj/effect/turf_decal/trimline/dark_blue/line{ @@ -30537,16 +30351,6 @@ /obj/item/book/manual/wiki/security_space_law, /turf/open/floor/iron/grimy, /area/station/service/lawoffice) -"pDw" = ( -/obj/machinery/computer/camera_advanced/xenobio{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) -"pDF" = ( -/obj/machinery/monkey_recycler, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "pDI" = ( /obj/structure/rack, /obj/item/storage/box/lights/mixed, @@ -30585,27 +30389,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/engine, /area/station/cargo/miningoffice) -"pEl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral/fourcorners{ - color = "#009dc4" - }, -/obj/effect/turf_decal/trimline/red/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/red/filled/warning, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) -"pEw" = ( -/obj/machinery/duct/industrial/waste, -/obj/effect/turf_decal/trimline/brown/filled/warning, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "pEL" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/structure/disposalpipe/segment, @@ -30663,15 +30446,12 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) -"pFJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair/sofa/bench/left{ - dir = 1 +"pFD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) +/turf/open/floor/carpet/neon/simple/cyan/nodots, +/area/station/medical/virology) "pFK" = ( /obj/effect/turf_decal/tile/green/fourcorners, /obj/structure/chair/office/light{ @@ -30897,6 +30677,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"pJS" = ( +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "pKk" = ( /obj/structure/disposaloutlet{ dir = 4; @@ -30924,10 +30713,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) -"pKF" = ( -/obj/item/food/grown/banana, -/turf/open/misc/grass/jungle, -/area/station/maintenance/port/central) "pLb" = ( /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/hop) @@ -30951,6 +30736,39 @@ /obj/effect/turf_decal/tile/brown/fourcorners, /turf/open/floor/iron/dark, /area/station/cargo/sorting) +"pLo" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/item/construction/plumbing/engineering, +/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ + dir = 1 + }, +/obj/item/book/manual/wiki/plumbing, +/obj/item/stack/cable_coil/industrial, +/obj/item/stack/cable_coil/industrial, +/obj/item/stack/cable_coil/industrial, +/obj/item/stack/cable_coil/industrial, +/obj/item/stack/cable_coil/industrial, +/obj/item/stack/cable_coil/industrial, +/obj/item/stack/cable_coil/industrial, +/obj/item/stack/cable_coil/industrial, +/obj/item/stack/cable_coil/industrial, +/obj/item/stack/cable_coil/industrial, +/obj/item/rwd/industrial, +/obj/item/rwd/industrial, +/obj/item/rwd/industrial, +/obj/item/rwd/industrial, +/obj/item/rwd/industrial, +/turf/open/floor/engine, +/area/station/engineering/main) "pLr" = ( /obj/machinery/light/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -30981,26 +30799,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/engine, /area/station/engineering/atmos/office) -"pMT" = ( -/obj/machinery/door/window/right/directional/south{ - dir = 4; - name = "Surgical Supplies"; - req_access = list("surgery") - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/table/reinforced, -/obj/item/stack/sticky_tape/surgical, -/obj/item/stack/medical/bone_gel, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/item/clothing/gloves/latex/nitrile, -/obj/item/clothing/gloves/latex/nitrile, -/obj/item/clothing/gloves/latex/nitrile, -/obj/item/book/manual/wiki/surgery, -/turf/open/floor/iron/white, -/area/station/medical/surgery/theatre) "pMX" = ( /obj/machinery/conveyor/auto{ dir = 7 @@ -31209,6 +31007,34 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) +"pQX" = ( +/obj/machinery/duct/industrial/waste, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/white/line{ + dir = 10; + color = "#009dc4" + }, +/obj/effect/turf_decal/trimline/white/filled/corner{ + color = "#009dc4"; + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-2"; + location = "Hall-1" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central/fore) +"pQZ" = ( +/obj/machinery/light/neon_lining{ + icon_state = "pink2_1" + }, +/obj/machinery/light/neon_lining{ + dir = 4; + icon_state = "pink2_1" + }, +/turf/open/ballpit, +/area/station/security/checkpoint/customs) "pRH" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -31220,22 +31046,20 @@ /obj/structure/cable/industrial, /turf/open/floor/plating/ocean, /area/ocean) -"pSS" = ( -/obj/machinery/light_switch/directional/north, +"pTo" = ( +/obj/machinery/telecomms/message_server/preset, +/turf/open/floor/circuit/green/telecomms/mainframe, +/area/station/tcommsat/server) +"pTB" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/corner{ +/obj/effect/turf_decal/trimline/blue/line{ dir = 8 }, -/obj/structure/table/optable, -/obj/machinery/defibrillator_mount/directional/east, +/obj/machinery/iv_drip, /turf/open/floor/iron/white/textured, /area/station/medical/surgery/theatre) -"pTo" = ( -/obj/machinery/telecomms/message_server/preset, -/turf/open/floor/circuit/green/telecomms/mainframe, -/area/station/tcommsat/server) "pTF" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -31288,6 +31112,10 @@ /obj/effect/spawner/random/structure/crate_loot, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"pUV" = ( +/obj/machinery/firealarm/directional/west, +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/ce) "pVn" = ( /obj/effect/spawner/random/structure/table_or_rack, /turf/open/floor/plating, @@ -31310,26 +31138,6 @@ dir = 8 }, /area/station/engineering/main) -"pVC" = ( -/obj/effect/turf_decal/stripes, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/stripes, -/obj/machinery/door/airlock/external{ - name = "Escape Pod Four"; - space_dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8; - id_tag = "engine_outdoors" - }, -/turf/open/floor/engine, -/area/station/engineering/main) "pVF" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -31588,6 +31396,11 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/main) +"qaY" = ( +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "qbg" = ( /obj/structure/closet/secure_closet/personal/cabinet, /turf/open/floor/eighties/red{ @@ -31611,6 +31424,13 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/sorting) +"qbI" = ( +/obj/machinery/door/airlock/research{ + name = "Ordnance Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "qbO" = ( /obj/effect/landmark/start/station_engineer, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -31638,15 +31458,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"qbT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/closet/l3closet/scientist, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "qck" = ( /obj/structure/chair/comfy/teal{ dir = 8 @@ -31742,21 +31553,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/service/electronic_marketing_den) -"qeu" = ( -/obj/docking_port/stationary{ - dir = 2; - dwidth = 2; - height = 13; - name = "port bay 2"; - shuttle_id = "ferry_home"; - width = 5 - }, -/turf/open/floor/plating/ocean, -/area/ocean) -"qeF" = ( -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron, -/area/station/cargo/warehouse/upper) "qeK" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -31776,6 +31572,12 @@ /obj/structure/bookcase/random/religion, /turf/open/floor/iron, /area/station/service/library) +"qfe" = ( +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "qfx" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 10 @@ -31829,6 +31631,11 @@ /obj/machinery/telecomms/server/presets/common, /turf/open/floor/circuit, /area/station/tcommsat/server) +"qgp" = ( +/obj/vehicle/ridden/cargo_train, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "qgs" = ( /obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -31950,15 +31757,15 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"qkx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured, +/area/station/science/cytology) "qkz" = ( /obj/effect/spawner/random/vending/colavend, /turf/open/floor/wood, /area/station/commons/lounge) -"qkC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "qkH" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -31970,15 +31777,6 @@ /obj/machinery/door/airlock/maintenance, /turf/open/floor/mineral/titanium/yellow, /area/station/maintenance/starboard/aft) -"qlB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct/industrial/waste, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 10 - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/medbay/lobby) "qlH" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green{ @@ -32043,12 +31841,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"qnC" = ( -/obj/machinery/duct/industrial/waste, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/external/glass, -/turf/open/floor/iron, -/area/station/cargo/warehouse/upper) "qnD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32099,6 +31891,15 @@ /obj/structure/flora/bush/ferny/style_random, /turf/open/floor/grass, /area/station/medical/virology) +"qoJ" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/structure/cable/industrial, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "Privacy Shutter" + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/ce) "qoO" = ( /obj/effect/turf_decal/trimline/red/filled/corner, /turf/open/floor/iron/smooth, @@ -32117,21 +31918,6 @@ "qpf" = ( /turf/closed/wall, /area/station/maintenance/starboard/upper) -"qpA" = ( -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 8 - }, -/obj/machinery/door/airlock/mining/glass{ - id_tag = "innercargo"; - name = "Cargo Bay" - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/sorting) "qpL" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output{ dir = 1 @@ -32200,15 +31986,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/checkpoint/science) -"qry" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/light/neon_lining{ - dir = 1; - icon_state = "pink2_1" - }, -/mob/living/simple_animal/sloth/citrus, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "qrD" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 @@ -32237,17 +32014,6 @@ }, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) -"qrS" = ( -/obj/machinery/duct/industrial/waste, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/medical/surgery/theatre) "qrV" = ( /obj/structure/chair/wood{ dir = 4 @@ -32258,21 +32024,6 @@ "qrW" = ( /turf/open/floor/carpet/purple, /area/station/command/heads_quarters/captain/private) -"qrZ" = ( -/obj/machinery/duct/industrial/waste, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/brown/filled/warning, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/effect/mapping_helpers/airlock/unres, -/obj/machinery/door/airlock/mining/glass{ - id_tag = "innercargo"; - name = "Cargo Bay" - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "qsc" = ( /obj/machinery/light_switch/directional/north, /obj/item/clothing/gloves/cargo_gauntlet{ @@ -32330,18 +32081,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/lobby) -"qsJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "qsX" = ( /obj/effect/turf_decal/stripes, /obj/effect/turf_decal/stripes{ @@ -32353,6 +32092,19 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"qth" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/green/corner{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-16"; + location = "Hall-15" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "qti" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 @@ -32362,6 +32114,12 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) +"qtl" = ( +/obj/machinery/modular_computer/console/preset/id{ + dir = 4 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/ce) "qtN" = ( /obj/structure/cable, /obj/machinery/light/directional/south, @@ -32391,6 +32149,21 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/aft) +"qui" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-4"; + location = "Hall-3" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "qus" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -32451,12 +32224,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/carpet/purple, /area/station/command/heads_quarters/rd) -"qvN" = ( -/obj/effect/turf_decal/bot, -/obj/effect/spawner/random/structure/crate_empty, -/obj/effect/turf_decal/trimline/brown/filled/line, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "qwm" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/carpet/executive, @@ -32471,6 +32238,16 @@ }, /turf/open/floor/plating, /area/station/cargo/storage) +"qwR" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/surgery/theatre) "qxd" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32478,11 +32255,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/eighties/red, /area/station/service/electronic_marketing_den) -"qxh" = ( -/obj/machinery/cart, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "qxw" = ( /obj/structure/window/spawner/directional/west, /obj/structure/rack, @@ -32504,14 +32276,6 @@ }, /turf/open/floor/iron/textured, /area/station/science/robotics/lab) -"qxC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/cargo/sorting) "qxF" = ( /turf/closed/wall, /area/station/maintenance/starboard/central) @@ -32543,14 +32307,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark/textured, /area/station/security/office) -"qyZ" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/line, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "qza" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/structure/chair/office/light, @@ -32561,6 +32317,13 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/wood, /area/station/service/library) +"qzk" = ( +/obj/structure/cable, +/obj/machinery/door/airlock{ + name = "Bedroom" + }, +/turf/open/floor/eighties, +/area/station/service/abandoned_gambling_den/gaming) "qzG" = ( /obj/structure/chair/wood{ dir = 8 @@ -32651,6 +32414,14 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/office) +"qCa" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/structure/rack, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) "qCk" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -32669,6 +32440,24 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) +"qCK" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark/textured_corner{ + dir = 8 + }, +/area/station/science/lobby) "qCR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -32703,17 +32492,6 @@ dir = 4 }, /area/station/science/lab) -"qDE" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating, -/area/station/tcommsat/server) -"qEb" = ( -/obj/machinery/camera/autoname/directional/north, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/misc/sandy_dirt, -/area/station/service/hydroponics/upper) "qEi" = ( /turf/closed/wall/r_wall, /area/station/science/robotics/mechbay) @@ -32848,16 +32626,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/lobby) -"qJu" = ( -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 5 - }, -/obj/machinery/stasis{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/medical/surgery/theatre) "qJD" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/all/medical/general, @@ -32960,19 +32728,6 @@ /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/plating, /area/station/maintenance/disposal) -"qLh" = ( -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/brown/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "qLF" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/dark_blue/opposingcorners{ @@ -33008,14 +32763,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/brig) -"qMR" = ( -/obj/structure/table, -/obj/item/stack/sheet/iron{ - amount = 10 - }, -/obj/item/electropack, -/turf/open/floor/engine, -/area/station/science/xenobiology) "qMV" = ( /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -33098,9 +32845,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) -"qOf" = ( -/turf/closed/wall, -/area/station/cargo/lobby) "qOj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33120,6 +32864,13 @@ dir = 1 }, /area/station/science/lobby) +"qOl" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "qOG" = ( /obj/machinery/conveyor/auto{ dir = 5 @@ -33135,6 +32886,15 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"qPi" = ( +/obj/structure/cable/industrial, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "Privacy Shutter" + }, +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/command/heads_quarters/ce) "qPs" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/warning{ dir = 5 @@ -33313,6 +33073,11 @@ }, /turf/open/floor/engine, /area/station/maintenance/port/central) +"qTd" = ( +/obj/machinery/light_switch/directional/north, +/obj/structure/closet/secure_closet/medical1, +/turf/open/floor/iron/white, +/area/station/medical/virology) "qTe" = ( /obj/machinery/light/directional/north, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -33395,6 +33160,17 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"qWf" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "qWj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33425,14 +33201,6 @@ /obj/machinery/conveyor/auto, /turf/open/floor/plating/ocean, /area/ocean/near_station_powered) -"qWy" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Airlock"; - space_dir = 4 - }, -/obj/structure/fans/tiny/forcefield, -/turf/open/floor/plating, -/area/station/hallway/secondary/exit/departure_lounge) "qWC" = ( /obj/effect/turf_decal/trimline/green/line, /obj/effect/turf_decal/trimline/green/line, @@ -33472,6 +33240,17 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/central) +"qYg" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "qYv" = ( /obj/machinery/airalarm/directional/east, /obj/effect/turf_decal/trimline/yellow/filled/end{ @@ -33563,6 +33342,15 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"rbg" = ( +/obj/machinery/duct/industrial/waste, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/brown/corner, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "rbo" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall, @@ -33662,6 +33450,15 @@ dir = 8 }, /area/station/service/hydroponics) +"rcZ" = ( +/obj/effect/turf_decal/loading_area/white{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "rdb" = ( /obj/structure/cable, /obj/machinery/duct/industrial/waste, @@ -33684,21 +33481,6 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/white/textured, /area/station/medical/pharmacy) -"rdE" = ( -/obj/structure/table/reinforced, -/obj/item/flashlight/lamp, -/obj/item/computer_disk/atmos, -/obj/machinery/camera/directional/north{ - c_tag = "Chief Engineer's Office" - }, -/obj/machinery/requests_console/directional/north{ - announcementConsole = 1; - department = "Chief Engineer's Desk"; - name = "Chief Engineer's Requests Console"; - anon_tips_receiver = 1 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/ce) "rdF" = ( /obj/machinery/door/airlock/bathroom{ name = "Toilet"; @@ -33723,6 +33505,10 @@ "red" = ( /turf/closed/wall, /area/station/service/theater/abandoned) +"reh" = ( +/obj/structure/tank_holder/extinguisher, +/turf/open/floor/iron/white, +/area/station/medical/virology) "ret" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/unres{ @@ -33760,6 +33546,17 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"rgn" = ( +/obj/machinery/light/neon_lining{ + dir = 4; + icon_state = "pink2_1" + }, +/obj/machinery/light/neon_lining{ + dir = 1; + icon_state = "pink2_1" + }, +/turf/open/ballpit, +/area/station/security/checkpoint/customs) "rgp" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/mix_input{ dir = 1 @@ -33843,17 +33640,6 @@ }, /turf/open/floor/engine, /area/station/maintenance/port/central) -"rhP" = ( -/obj/structure/cable, -/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "rhW" = ( /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/plating, @@ -33936,6 +33722,20 @@ /obj/effect/mapping_helpers/airlock/access/all/science/general, /turf/open/floor/plating, /area/station/science/ordnance/storage) +"riW" = ( +/obj/machinery/camera/autoname/directional/east, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/red/corner{ + dir = 1 + }, +/obj/machinery/flasher/directional/east{ + id = "secentranceflasher" + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark/textured, +/area/station/security/office) "rje" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -34004,10 +33804,6 @@ }, /turf/open/floor/carpet/executive, /area/station/command/bridge) -"rmf" = ( -/obj/structure/sign/departments/cargo, -/turf/closed/wall, -/area/station/cargo/lobby) "rmm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34140,15 +33936,6 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"rph" = ( -/obj/effect/turf_decal/bot, -/obj/effect/spawner/random/structure/crate_empty, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "rps" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction, @@ -34166,19 +33953,18 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/central) -"rqh" = ( -/obj/structure/closet/wardrobe/miner, -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/effect/turf_decal/tile/brown/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) -"rqi" = ( -/obj/item/storage/secure/safe/directional/west, -/obj/machinery/computer/apc_control{ - dir = 4 +"rqk" = ( +/obj/structure/closet/secure_closet/engineering_chief, +/obj/item/storage/secure/briefcase, +/obj/item/crowbar/large/heavy, +/obj/item/rwd/loaded, +/obj/item/construction/plumbing/engineering, +/obj/machinery/button/door/directional/west{ + id = "Engineering"; + name = "Engineering Lockdown"; + pixel_y = -33; + req_access = list("engineering"); + pixel_x = 0 }, /turf/open/floor/carpet/orange, /area/station/command/heads_quarters/ce) @@ -34347,32 +34133,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/janitor) -"rve" = ( -/obj/effect/turf_decal/bot, -/obj/effect/spawner/random/maintenance, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "rvq" = ( /obj/structure/lattice, /turf/open/floor/plating/ocean, /area/ocean/near_station_powered) -"rvv" = ( -/obj/machinery/camera/autoname/directional/east, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/red/corner{ - dir = 1 - }, -/obj/machinery/flasher/directional/east{ - id = "secentranceflasher" - }, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron/dark/textured, -/area/station/security/office) "rvE" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/dark/textured, @@ -34432,6 +34196,12 @@ }, /turf/open/floor/iron/dark/textured, /area/station/medical/surgery/theatre) +"rwN" = ( +/obj/machinery/light/neon_lining{ + icon_state = "pink2_1" + }, +/turf/open/ballpit, +/area/station/security/checkpoint/customs) "rwX" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, @@ -34440,27 +34210,6 @@ /obj/structure/fans/tiny/forcefield, /turf/open/floor/engine, /area/station/commons/fitness/recreation/entertainment) -"rxg" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/blue/filled/warning, -/obj/effect/turf_decal/trimline/blue/warning{ - dir = 1 - }, -/obj/machinery/door/airlock/medical/glass{ - name = "Cryogenics Bay" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/general, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct/industrial/waste, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - id_tag = "medlobby" - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/treatment_center) "rxj" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -34518,19 +34267,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) -"ryM" = ( -/obj/machinery/door/airlock, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "ryY" = ( /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/dark, @@ -34561,27 +34297,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"rzQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair/sofa/bench/right{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/mid_joiner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 4 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "rzU" = ( /obj/structure/railing, /turf/open/floor/wood, @@ -34654,23 +34369,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) -"rCn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/purple/filled/warning{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/purple/filled/mid_joiner, -/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/purple/corner{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured_corner{ - dir = 1 - }, -/area/station/science/lobby) "rCp" = ( /obj/machinery/door/airlock/public/glass{ name = "Detectives Lounge" @@ -34739,6 +34437,19 @@ /obj/effect/spawner/random/structure/table_or_rack, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"rDC" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "rDE" = ( /turf/closed/wall/r_wall, /area/mine/storage/public) @@ -34877,6 +34588,13 @@ }, /turf/open/floor/iron/white/textured, /area/station/medical/treatment_center) +"rHY" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/warning, +/turf/closed/wall/r_wall, +/area/station/medical/medbay/lobby) "rId" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -34892,30 +34610,6 @@ }, /turf/open/floor/wood/large, /area/station/command/bridge) -"rIq" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 6 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) -"rIF" = ( -/obj/machinery/duct/industrial/waste, -/obj/effect/turf_decal/trimline/purple/filled/warning{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/purple/corner{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-6"; - location = "Hall-5" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "rIM" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/machinery/smartfridge/chemistry/preloaded, @@ -35021,6 +34715,26 @@ /obj/effect/landmark/start/security_officer, /turf/open/floor/iron/dark/textured, /area/station/security/office) +"rKC" = ( +/obj/effect/turf_decal/stripes, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/stripes, +/obj/machinery/door/airlock/external{ + name = "Escape Pod Four"; + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8; + id_tag = "engine_outdoors" + }, +/turf/open/floor/engine, +/area/station/engineering/main) "rKO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -35050,12 +34764,6 @@ /obj/item/botanical_lexicon, /turf/open/floor/grass, /area/station/service/hydroponics) -"rLF" = ( -/obj/structure/chair/sofa/middle{ - dir = 8 - }, -/turf/open/floor/carpet/neon/simple/cyan/nodots, -/area/station/medical/virology) "rLM" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -35290,6 +34998,22 @@ color = "#D381C9" }, /area/station/science/robotics) +"rRI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/white/filled/warning{ + dir = 1; + color = "#009dc4" + }, +/obj/effect/turf_decal/trimline/white/warning{ + color = "#009dc4" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-15"; + location = "Hall-14" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "rSq" = ( /obj/machinery/fax{ fax_name = "Head of Security's Office"; @@ -35434,6 +35158,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"rWm" = ( +/obj/machinery/light/floor/has_bulb, +/obj/effect/turf_decal/trimline/brown, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "rWt" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -35561,6 +35290,12 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) +"saQ" = ( +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "saU" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -35569,6 +35304,15 @@ /obj/effect/turf_decal/trimline/dark_blue/filled/line, /turf/open/floor/iron/dark/textured, /area/station/security/office) +"saX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Escape-1"; + location = "Hall-24" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central/fore) "sbd" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 1 @@ -35591,6 +35335,13 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) +"sbF" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "sbL" = ( /obj/item/wrench, /obj/item/stack/sheet/glass{ @@ -35605,11 +35356,6 @@ /obj/item/vending_refill/cigarette, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/service) -"sbM" = ( -/obj/machinery/light_switch/directional/north, -/obj/structure/closet/secure_closet/medical1, -/turf/open/floor/iron/white, -/area/station/medical/virology) "scy" = ( /obj/machinery/door/airlock/public/glass{ name = "Central Access" @@ -35747,15 +35493,6 @@ /obj/effect/landmark/start/cargo_technician, /turf/open/floor/iron/dark, /area/station/cargo/storage) -"sgF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/holofloor/dark, -/area/station/science/cytology) "sgI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -35895,30 +35632,6 @@ /mob/living/basic/cockroach, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"sli" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/item/pickaxe/drill, -/obj/item/pickaxe/drill, -/obj/item/pickaxe/drill, -/obj/item/pickaxe/drill, -/obj/item/pickaxe/drill, -/obj/structure/rack, -/obj/item/mining_charge, -/obj/item/mining_charge, -/obj/item/mining_charge, -/obj/item/mining_charge, -/obj/item/mining_charge, -/obj/item/trench_ladder_kit, -/obj/item/trench_ladder_kit, -/obj/item/trench_ladder_kit, -/obj/item/trench_ladder_kit, -/obj/item/trench_ladder_kit, -/turf/open/floor/iron/dark/textured, -/area/station/engineering/main) "sln" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -35927,20 +35640,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/office) -"slt" = ( -/obj/machinery/duct/industrial/waste, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-7"; - location = "Hall-6" - }, -/turf/open/floor/iron/dark/textured, -/area/station/medical/medbay/lobby) "slx" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -35952,24 +35651,10 @@ }, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"slD" = ( -/obj/machinery/duct/industrial/waste, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 10 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/aft) -"slU" = ( -/obj/structure/rack, -/obj/item/wrench, -/obj/item/crowbar/red, -/obj/machinery/light_switch/directional/south, +"slJ" = ( +/obj/effect/turf_decal/trimline/brown/filled/corner, /turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) +/area/station/cargo/storage) "slV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36001,12 +35686,29 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"snh" = ( +/obj/structure/cable, +/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "snH" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /turf/open/floor/engine, /area/station/commons/storage/emergency/port) +"snT" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/ce) "sok" = ( /obj/machinery/atmospherics/components/trinary/mixer{ dir = 4 @@ -36134,6 +35836,30 @@ }, /turf/open/floor/iron/dark/textured, /area/station/medical/medbay/lobby) +"ssb" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/pickaxe/drill, +/obj/item/pickaxe/drill, +/obj/item/pickaxe/drill, +/obj/item/pickaxe/drill, +/obj/item/pickaxe/drill, +/obj/structure/rack, +/obj/item/mining_charge, +/obj/item/mining_charge, +/obj/item/mining_charge, +/obj/item/mining_charge, +/obj/item/mining_charge, +/obj/item/trench_ladder_kit, +/obj/item/trench_ladder_kit, +/obj/item/trench_ladder_kit, +/obj/item/trench_ladder_kit, +/obj/item/trench_ladder_kit, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/main) "ssd" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/cable, @@ -36230,6 +35956,15 @@ /obj/machinery/vending/tool, /turf/open/floor/iron, /area/ruin/space/ks13/engineering/secure_storage) +"suS" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "svm" = ( /obj/machinery/camera/autoname/directional/east, /obj/machinery/requests_console/directional/north{ @@ -36277,6 +36012,11 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"swq" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "sws" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 8 @@ -36395,11 +36135,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/commons/storage/primary) -"sza" = ( -/obj/machinery/light/directional/east, -/obj/structure/tank_holder/extinguisher, -/turf/open/floor/wood, -/area/station/commons/fitness/recreation/entertainment) "szb" = ( /obj/machinery/atmospherics/miner/carbon_dioxide, /turf/open/floor/engine/co2, @@ -36422,6 +36157,17 @@ /obj/item/flashlight/lamp, /turf/open/floor/iron/dark, /area/station/service/chapel/office) +"szU" = ( +/obj/effect/turf_decal/trimline/brown/filled/warning, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, +/obj/effect/turf_decal/trimline/brown/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "sAw" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -36513,25 +36259,6 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"sCM" = ( -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ - dir = 8 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "sCS" = ( /obj/machinery/door/airlock/security{ name = "Security Lounge" @@ -36561,6 +36288,15 @@ /obj/structure/sign/poster/official/safety_eye_protection, /turf/closed/wall, /area/station/service/bar) +"sDJ" = ( +/obj/machinery/duct/industrial/waste, +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "sDR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36596,19 +36332,18 @@ }, /turf/open/floor/carpet/neon/simple/green/nodots, /area/station/service/bar/backroom) -"sEM" = ( -/obj/structure/table/glass, -/obj/structure/microscope, -/obj/item/storage/box/syringes{ - pixel_x = -4; - pixel_y = 4 +"sEU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/storage/box/beakers{ - pixel_x = 6; - pixel_y = 10 +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 }, /turf/open/floor/iron/dark/textured, -/area/station/science/cytology) +/area/station/cargo/warehouse/upper) "sEV" = ( /obj/machinery/duct/industrial/waste, /obj/effect/turf_decal/trimline/yellow/line, @@ -36617,25 +36352,12 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) -"sFl" = ( -/obj/machinery/light/neon_lining{ - dir = 4; - icon_state = "pink2_1" - }, -/obj/machinery/light/neon_lining{ - dir = 1; - icon_state = "pink2_1" - }, -/turf/open/ballpit, -/area/station/security/checkpoint/customs) -"sFn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"sFa" = ( +/obj/machinery/door/poddoor/shutters{ + id = "cargodoor" }, -/obj/machinery/light/floor/has_bulb, -/obj/effect/turf_decal/trimline/brown, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) +/turf/open/floor/plating, +/area/station/cargo/warehouse) "sFB" = ( /obj/structure/table/wood, /obj/item/storage/photo_album{ @@ -36760,13 +36482,6 @@ dir = 4 }, /area/station/maintenance/starboard/aft) -"sIO" = ( -/obj/effect/landmark/start/virologist, -/obj/structure/chair/sofa/left{ - dir = 8 - }, -/turf/open/floor/carpet/neon/simple/cyan/nodots, -/area/station/medical/virology) "sJd" = ( /obj/effect/landmark/start/assistant, /turf/open/floor/iron/dark, @@ -36812,6 +36527,15 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/central) +"sJx" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 4 + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/surgery/theatre) "sJD" = ( /obj/structure/chair/sofa/middle{ dir = 4 @@ -36866,6 +36590,10 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, /area/station/command/heads_quarters/rd) +"sLg" = ( +/obj/machinery/pdapainter/engineering, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/ce) "sLx" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -36922,6 +36650,12 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood, /area/station/command/heads_quarters/hop) +"sMF" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "sMI" = ( /obj/structure/table, /obj/item/multitool/circuit{ @@ -37012,15 +36746,6 @@ /obj/structure/cable, /turf/open/floor/carpet/neon/simple/green/nodots, /area/station/service/bar) -"sPH" = ( -/obj/effect/turf_decal/loading_area/white{ - dir = 4 - }, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "sPX" = ( /obj/structure/table/wood, /obj/machinery/button/door/directional/south{ @@ -37040,6 +36765,10 @@ }, /turf/open/floor/wood/large, /area/station/command/bridge) +"sQa" = ( +/obj/machinery/duct/industrial/waste, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "sQl" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/trimline/brown/warning, @@ -37076,6 +36805,13 @@ "sRh" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/captain/private) +"sRv" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 4 + }, +/obj/machinery/netpod, +/turf/open/floor/iron, +/area/station/bitrunning/den) "sRK" = ( /obj/structure/sink{ pixel_y = 16 @@ -37142,6 +36878,12 @@ /obj/item/electronics/apc, /turf/open/floor/plating, /area/station/maintenance/port/central) +"sTz" = ( +/obj/machinery/sparker/directional/north{ + id = "Xenobio" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "sTK" = ( /obj/structure/extinguisher_cabinet/directional/north, /obj/effect/turf_decal/tile/blue/diagonal_centre, @@ -37254,11 +36996,6 @@ /obj/structure/displaycase/trophy, /turf/open/floor/iron, /area/station/service/library) -"sVZ" = ( -/obj/machinery/camera/autoname/directional/north, -/obj/structure/closet/l3closet/virology, -/turf/open/floor/iron/white, -/area/station/medical/virology) "sWi" = ( /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) @@ -37278,39 +37015,21 @@ dir = 4 }, /area/station/security/warden) -"sWJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/vehicle/ridden/cargo_train, -/obj/machinery/button/door/directional/east{ - id = "cargodoor" - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "sXg" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/security/detectives_office) -"sXK" = ( -/obj/structure/lattice, -/obj/machinery/conveyor/auto{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/plating/ocean, -/area/ocean/near_station_powered) +"sXh" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/white/corner, +/obj/machinery/firealarm/directional/north, +/obj/item/clipboard, +/obj/item/paper, +/obj/item/pen, +/turf/open/floor/iron/dark, +/area/station/medical/storage) "sYe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37322,12 +37041,6 @@ }, /turf/open/floor/plastic, /area/station/hallway/primary/central) -"sYg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) "sYn" = ( /turf/open/floor/wood, /area/station/cargo/miningoffice) @@ -37365,6 +37078,11 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"sZD" = ( +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/science/xenobiology) "sZF" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/dark_blue/filled/warning{ @@ -37379,10 +37097,6 @@ /obj/effect/landmark/start/shaft_miner, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"tan" = ( -/obj/machinery/firealarm/directional/west, -/turf/closed/wall/r_wall, -/area/station/command/heads_quarters/ce) "tay" = ( /obj/machinery/light/directional/south, /obj/machinery/computer/department_orders/engineering{ @@ -37482,15 +37196,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/commons/dorms) -"tdG" = ( -/obj/machinery/camera/autoname/directional/east, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/closet/l3closet/scientist, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "tdI" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -37508,17 +37213,23 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/wood, /area/station/service/library) +"ted" = ( +/obj/machinery/camera/autoname/directional/north, +/obj/structure/closet/l3closet/virology, +/turf/open/floor/iron/dark, +/area/station/medical/virology) +"tet" = ( +/obj/structure/sign/poster/contraband/punch_shit{ + pixel_y = 35 + }, +/obj/effect/decal/cleanable/garbage, +/obj/machinery/light/very_dim/directional/north, +/turf/open/floor/iron, +/area/station/service/theater/abandoned) "teK" = ( /obj/machinery/light_switch/directional/north, /turf/open/floor/wood, /area/station/commons/fitness/recreation/entertainment) -"teO" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 8 - }, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/engine, -/area/station/science/xenobiology) "teZ" = ( /obj/structure/fans/tiny/forcefield, /turf/open/floor/engine, @@ -37544,14 +37255,6 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/white/textured, /area/station/medical/pharmacy) -"tfp" = ( -/obj/machinery/door/airlock/atmos/glass{ - name = "Atmospherics Monitoring" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/structure/fans/tiny/forcefield, -/turf/open/floor/plating, -/area/station/engineering/atmos) "tfz" = ( /obj/effect/turf_decal/trimline/brown/warning{ dir = 4 @@ -37567,21 +37270,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/office) -"tfI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/circuit, -/area/station/tcommsat/server) -"tfT" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners{ - color = "#009dc4" - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "tfV" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/purple/filled/warning{ @@ -37682,6 +37370,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured_large, /area/station/hallway/primary/central) +"thY" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "thZ" = ( /obj/structure/cable, /obj/structure/table, @@ -37867,6 +37561,14 @@ /obj/effect/turf_decal/trimline/purple/filled/mid_joiner, /turf/open/floor/iron/dark/herringbone, /area/station/science/server) +"toG" = ( +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/line, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "tpd" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -37875,25 +37577,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark/textured, /area/station/security/office) -"tpk" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) -"tpo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/line, -/obj/structure/closet/crate/freezer/surplus_limbs, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "tpR" = ( /obj/machinery/light/directional/north, /turf/open/floor/engine, @@ -38092,6 +37775,10 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/iron, /area/station/hallway/secondary/service) +"tvN" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/engine, +/area/station/science/xenobiology) "twb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -38109,10 +37796,6 @@ "twN" = ( /turf/closed/wall/r_wall, /area/station/cargo/miningoffice) -"twO" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating, -/area/station/cargo/warehouse/upper) "txs" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -38140,11 +37823,6 @@ }, /turf/open/floor/wood, /area/station/commons/lounge) -"tyl" = ( -/obj/machinery/telecomms/processor/preset_three, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/circuit/green/telecomms/mainframe, -/area/station/tcommsat/server) "tym" = ( /obj/machinery/camera/autoname/directional/west, /turf/open/floor/bamboo, @@ -38195,6 +37873,21 @@ }, /turf/open/floor/iron/dark/textured, /area/station/commons/lounge) +"tzt" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) "tzD" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -38302,6 +37995,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/textured, /area/station/medical/treatment_center) +"tCm" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 9 + }, +/obj/machinery/stasis{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/surgery/theatre) "tCz" = ( /obj/effect/turf_decal/siding{ dir = 1 @@ -38352,13 +38054,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) -"tEj" = ( -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/warning, -/turf/closed/wall/r_wall, -/area/station/medical/medbay/lobby) "tEr" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -38377,14 +38072,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"tEY" = ( -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/structure/cable, -/obj/machinery/door/airlock/highsecurity{ - name = "Secure Network Access" - }, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) "tFc" = ( /obj/machinery/duct/industrial/waste, /obj/structure/disposalpipe/segment{ @@ -38397,10 +38084,6 @@ /obj/structure/sign/warning/electric_shock/directional/south, /turf/open/floor/iron/dark/textured, /area/station/engineering/break_room) -"tFd" = ( -/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, -/turf/open/floor/iron, -/area/station/cargo/warehouse/upper) "tFl" = ( /obj/structure/chair/stool/directional/north, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -38477,19 +38160,6 @@ dir = 8 }, /area/station/science/lobby) -"tGT" = ( -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/trimline/brown/filled/line, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 1 - }, -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/trimline/brown/mid_joiner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "tGW" = ( /obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, /obj/effect/turf_decal/trimline/red/line{ @@ -38572,6 +38242,15 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/storage/tech) +"tIS" = ( +/obj/structure/table/wood, +/obj/machinery/light_switch/directional/east, +/obj/item/reagent_containers/cup/rag{ + pixel_y = 7 + }, +/obj/item/holosign_creator/robot_seat/bar, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/station/service/bar) "tIV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38587,6 +38266,21 @@ /obj/machinery/light/blacklight/directional/south, /turf/open/floor/grass, /area/station/maintenance/starboard/upper) +"tJp" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) "tJu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38674,48 +38368,6 @@ }, /turf/open/floor/plastic, /area/station/hallway/primary/central) -"tLu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 8 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/mask/breath/medical{ - pixel_y = -3 - }, -/obj/item/clothing/mask/breath/medical{ - pixel_y = -3 - }, -/obj/item/clothing/mask/breath/medical{ - pixel_y = -3 - }, -/obj/item/clothing/mask/breath/medical{ - pixel_y = -3 - }, -/obj/item/tank/internals/anesthetic{ - pixel_x = 3 - }, -/obj/item/tank/internals/anesthetic{ - pixel_x = 3 - }, -/obj/item/tank/internals/anesthetic{ - pixel_x = 3 - }, -/obj/item/tank/internals/anesthetic{ - pixel_x = 3 - }, -/obj/machinery/door/window/right/directional/south{ - name = "Surgical Supplies"; - req_access = list("surgery") - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "tLz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -38725,13 +38377,6 @@ }, /turf/open/floor/wood, /area/station/commons/fitness/recreation/entertainment) -"tLC" = ( -/obj/machinery/light/neon_lining{ - dir = 4; - icon_state = "pink2_1" - }, -/turf/open/ballpit, -/area/station/security/checkpoint/customs) "tLD" = ( /obj/machinery/light/small/directional/east, /obj/effect/turf_decal/tile/neutral/fourcorners{ @@ -38749,6 +38394,9 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/wood/large, /area/station/security/checkpoint/customs) +"tLU" = ( +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) "tMf" = ( /obj/machinery/computer/records/security{ dir = 4 @@ -38808,6 +38456,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/robotics/mechbay) +"tNI" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable/industrial, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/ce) "tNO" = ( /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /obj/structure/window/reinforced/spawner/directional/north, @@ -38880,11 +38533,6 @@ "tPP" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory) -"tQj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/structure/tank_holder/extinguisher, -/turf/open/floor/iron/dark, -/area/station/medical/virology) "tQo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured, @@ -38960,12 +38608,6 @@ "tSt" = ( /turf/open/floor/iron/dark/textured, /area/station/commons/storage/primary) -"tSv" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/textured, -/area/station/science/cytology) "tSC" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -39029,13 +38671,6 @@ }, /turf/open/floor/grass, /area/station/medical/virology) -"tVl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "tVq" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -39264,10 +38899,6 @@ }, /turf/open/floor/carpet/blue, /area/station/security/checkpoint/customs) -"tZZ" = ( -/obj/machinery/duct/industrial/waste, -/turf/closed/wall/r_wall, -/area/station/cargo/warehouse/upper) "uap" = ( /turf/open/floor/engine/co2, /area/station/engineering/atmos) @@ -39333,6 +38964,10 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/office) +"ubX" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine, +/area/station/science/xenobiology) "ubZ" = ( /obj/machinery/duct/industrial/waste, /obj/structure/disposalpipe/segment, @@ -39342,6 +38977,14 @@ /obj/effect/turf_decal/trimline/blue/filled/warning, /turf/open/floor/iron/dark/textured, /area/station/medical/surgery/theatre) +"ucj" = ( +/obj/structure/cable, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Escape-3"; + location = "Escape-2" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/exit/departure_lounge) "ucp" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 6 @@ -39366,6 +39009,17 @@ }, /turf/open/floor/iron/dark/textured, /area/station/service/hydroponics) +"udg" = ( +/obj/machinery/duct/industrial/waste, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/surgery/theatre) "udu" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -39512,11 +39166,6 @@ }, /turf/open/floor/iron/dark/textured, /area/mine/storage/public) -"ufy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/textured, -/area/station/science/cytology) "ufI" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/west, @@ -39524,6 +39173,16 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/grass, /area/station/hallway/secondary/exit/departure_lounge) +"ufN" = ( +/obj/machinery/computer/prisoner/management{ + dir = 4 + }, +/obj/item/food/spaghetti/security{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/hos) "ufS" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/tracks, @@ -39583,6 +39242,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/central) +"ugY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/departments/cargo, +/turf/closed/wall, +/area/station/cargo/lobby) "uhc" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -39590,6 +39256,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) +"uhe" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/brown/filled/warning, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 1 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "uhh" = ( /obj/machinery/door/airlock/medical/glass{ id_tag = "MedbayFoyer"; @@ -39647,6 +39324,10 @@ /obj/effect/turf_decal/trimline/purple/line, /turf/open/floor/plastic, /area/station/hallway/primary/central) +"uhC" = ( +/obj/structure/closet/wardrobe/miner, +/turf/open/floor/wood, +/area/station/cargo/miningoffice) "uhL" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -39706,15 +39387,6 @@ /obj/structure/flora/bush/fullgrass/style_random, /turf/open/floor/grass, /area/station/hallway/secondary/exit/departure_lounge) -"ukK" = ( -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/highsecurity{ - name = "Secure Network Access" - }, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) "ukS" = ( /obj/machinery/duct/industrial/waste, /obj/effect/turf_decal/trimline/dark_red/filled/corner{ @@ -39820,6 +39492,19 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/office) +"uny" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/line, +/obj/machinery/light/directional/north, +/obj/structure/table/glass, +/obj/item/storage/backpack/duffelbag/med/surgery, +/turf/open/floor/iron/white/textured, +/area/station/medical/surgery/theatre) "unE" = ( /obj/effect/turf_decal/trimline/red/filled/line, /obj/structure/rack, @@ -39886,6 +39571,26 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/main) +"upo" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/mid_joiner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "upw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39934,6 +39639,17 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) +"uqy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "uqC" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -39951,6 +39667,11 @@ /obj/effect/landmark/start/librarian, /turf/open/floor/iron/vaporwave, /area/station/service/library) +"urb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "urf" = ( /obj/machinery/rnd/production/circuit_imprinter, /turf/open/floor/engine, @@ -39998,6 +39719,14 @@ /obj/effect/turf_decal/trimline/blue/warning, /turf/open/floor/iron/dark/textured, /area/station/medical/medbay/lobby) +"ust" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron, +/area/station/bitrunning/den) "usA" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input{ dir = 1 @@ -40219,10 +39948,6 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/plating/ocean/pit, /area/ocean) -"uyE" = ( -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron/white, -/area/station/medical/virology) "uyU" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/warning{ dir = 10 @@ -40230,6 +39955,13 @@ /obj/item/radio/intercom/chapel/directional/west, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/entry) +"uzc" = ( +/obj/machinery/computer/quantum_console{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/bitrunning/den) "uzj" = ( /turf/closed/wall/r_wall, /area/station/science/robotics) @@ -40240,25 +39972,16 @@ }, /turf/open/floor/iron/smooth, /area/station/science/genetics) -"uzC" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 4 - }, -/obj/machinery/door/airlock/medical/glass{ - name = "Cryogenics Bay" +"uzN" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners{ + color = "#009dc4" }, -/obj/effect/mapping_helpers/airlock/unres{ +/obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, -/obj/effect/mapping_helpers/airlock/access/all/medical/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - id_tag = "medlobby" - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/treatment_center) +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "uzR" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/dark_blue/opposingcorners{ @@ -40286,6 +40009,13 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) +"uAv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct/industrial/waste, +/turf/open/floor/iron/white/textured, +/area/station/medical/treatment_center) "uAJ" = ( /obj/effect/turf_decal/trimline/yellow/warning{ dir = 4 @@ -40372,6 +40102,27 @@ /obj/item/toy/crayon/spraycan/lubecan, /turf/open/floor/iron/smooth, /area/station/commons/fitness/recreation) +"uCI" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/structure/table/reinforced, +/obj/item/wheelchair{ + pixel_y = 3 + }, +/obj/item/wheelchair{ + pixel_y = 3 + }, +/obj/item/wheelchair{ + pixel_y = 3 + }, +/obj/item/wheelchair{ + pixel_y = 3 + }, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/white/textured, +/area/station/medical/storage) "uDj" = ( /obj/structure/table/wood, /obj/item/paper, @@ -40470,6 +40221,15 @@ "uEF" = ( /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation/entertainment) +"uFf" = ( +/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 5 + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/surgery/theatre) "uFh" = ( /obj/machinery/computer/warrant{ dir = 1 @@ -40503,13 +40263,6 @@ }, /turf/open/floor/wood, /area/station/commons/dorms) -"uFD" = ( -/obj/structure/railing, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/misc/sandy_dirt, -/area/station/service/hydroponics/upper) "uFS" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -40556,18 +40309,48 @@ /obj/machinery/door/airlock/maintenance, /turf/open/floor/grass, /area/station/maintenance/starboard/upper) -"uGF" = ( -/obj/item/storage/box/monkeycubes, -/obj/item/storage/box/monkeycubes, -/obj/structure/table/glass, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "uGO" = ( /obj/structure/chair/wood{ dir = 8 }, /turf/open/floor/wood, /area/station/commons/lounge) +"uHd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/holofloor/dark, +/area/station/science/cytology) +"uHe" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Pod Four"; + space_dir = 4 + }, +/obj/machinery/duct/industrial/waste, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "Privacy Shutter" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4; + id_tag = "engine_outdoors" + }, +/turf/open/floor/engine, +/area/station/engineering/main) "uHf" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -40728,6 +40511,12 @@ /obj/effect/turf_decal/tile/green/fourcorners, /turf/open/floor/iron/smooth, /area/station/science/genetics) +"uLu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/crate, +/obj/effect/turf_decal/trimline/brown/filled/line, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) "uLz" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/firealarm/directional/north, @@ -40754,6 +40543,16 @@ /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"uMh" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/storage) "uMj" = ( /obj/effect/turf_decal/delivery, /obj/machinery/light/directional/east, @@ -40763,6 +40562,13 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/dark/textured, /area/station/cargo/sorting) +"uMp" = ( +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) "uMq" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -40796,10 +40602,6 @@ /obj/structure/sign/warning/directional/east, /turf/open/misc/grass/jungle, /area/station/maintenance/port/central) -"uNh" = ( -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "uNt" = ( /obj/structure/table/glass, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -40874,13 +40676,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/carpet/cyan, /area/station/ai_monitored/turret_protected/ai_upload) -"uPb" = ( -/obj/structure/closet/secure_closet/miner, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "uPg" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/machinery/chem_master, @@ -40998,16 +40793,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/service/hydroponics) -"uRB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/structure/bed{ - dir = 4 - }, -/obj/item/bedsheet/medical{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/medical/virology) "uRG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41080,6 +40865,23 @@ "uSV" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"uSW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/purple/filled/mid_joiner, +/obj/effect/turf_decal/trimline/purple/filled/mid_joiner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 1 + }, +/area/station/science/lobby) "uTc" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -41116,12 +40918,6 @@ "uTC" = ( /turf/closed/wall/r_wall, /area/station/science/cytology) -"uTG" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "uUo" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/trimline/red/filled/warning, @@ -41131,6 +40927,21 @@ /obj/effect/turf_decal/trimline/yellow/filled/warning, /turf/open/floor/iron/dark/textured, /area/station/security/interrogation) +"uUC" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/white/filled/warning{ + dir = 1; + color = "#009dc4" + }, +/obj/effect/turf_decal/trimline/white/warning{ + color = "#009dc4" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-20"; + location = "Hall-19" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/aft) "uUD" = ( /turf/closed/wall, /area/station/service/library) @@ -41346,6 +41157,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) +"vaj" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 10 + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/surgery/theatre) "vaZ" = ( /obj/machinery/light/directional/north, /obj/structure/table/wood, @@ -41372,20 +41189,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) -"vbu" = ( -/obj/structure/tank_holder/extinguisher, -/turf/open/floor/iron/white, -/area/station/medical/virology) -"vbA" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/stasis{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/medical/surgery/theatre) "vbD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41503,39 +41306,33 @@ /obj/machinery/holopad, /turf/open/floor/carpet/neon/simple/green/nodots, /area/station/service/bar/backroom) -"vea" = ( +"vdX" = ( /obj/structure/disposalpipe/segment{ - dir = 1 + dir = 4 }, -/turf/closed/wall, -/area/station/maintenance/starboard/aft) -"veh" = ( -/obj/effect/turf_decal/stripes{ +/obj/structure/chair/sofa/bench/right{ dir = 1 }, -/obj/machinery/door/airlock/external{ - name = "Escape Pod Four"; - space_dir = 4 - }, -/obj/machinery/duct/industrial/waste, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "ceprivacy"; - name = "Privacy Shutter" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/turf_decal/trimline/yellow/filled/warning{ +/obj/effect/turf_decal/trimline/brown/filled/line{ dir = 4 }, -/obj/effect/turf_decal/trimline/yellow/filled/warning{ +/obj/effect/turf_decal/trimline/brown/line{ dir = 8 }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4; - id_tag = "engine_outdoors" +/obj/effect/turf_decal/trimline/brown/mid_joiner{ + dir = 8 }, -/turf/open/floor/engine, -/area/station/engineering/main) +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) +"vea" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/closed/wall, +/area/station/maintenance/starboard/aft) "ven" = ( /obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/grass, @@ -41614,11 +41411,6 @@ dir = 4 }, /area/station/engineering/main) -"vgg" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/iron/dark/textured, -/area/station/science/cytology) "vgy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41646,6 +41438,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/command/bridge) +"vhv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/closet/l3closet/scientist, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "vhM" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/trimline/dark_red/filled/warning{ @@ -41744,29 +41546,17 @@ /obj/item/banner/engineering, /turf/open/floor/iron/dark/textured, /area/station/engineering/main) +"vju" = ( +/obj/machinery/light/directional/south, +/obj/machinery/suit_storage_unit/ce, +/obj/machinery/computer/security/telescreen/entertainment/directional/south, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/ce) "vjC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/service/cafeteria) -"vjG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/medical/glass{ - name = "Pharmacy" - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 8 - }, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/any/medical/pharmacy, -/obj/effect/mapping_helpers/airlock/access/any/medical/general, -/turf/open/floor/iron/white/textured, -/area/station/medical/medbay/central) "vjL" = ( /obj/structure/railing, /mob/living/basic/chicken, @@ -41782,6 +41572,15 @@ }, /turf/open/floor/holofloor/dark, /area/station/science/cytology) +"vkm" = ( +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Test Chamber Blast Door" + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/engine, +/area/station/science/xenobiology) "vkw" = ( /obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, /obj/machinery/light/directional/east, @@ -41806,33 +41605,18 @@ /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"vlm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/plaque{ - icon_state = "L2" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Escape-2"; - location = "Escape-1" +"vln" = ( +/obj/machinery/duct/industrial/waste, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/exit/departure_lounge) +/area/station/cargo/warehouse/upper) "vlo" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/atmos) -"vlr" = ( -/obj/machinery/door/airlock/research{ - autoclose = 0; - frequency = 1449; - id_tag = "xeno_airlock_exterior"; - name = "Xenobiology Lab External Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/turf/open/floor/iron/dark/textured, -/area/station/medical/virology) "vls" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41883,6 +41667,23 @@ }, /turf/open/floor/iron/dark, /area/station/service/hydroponics) +"vmt" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "vmz" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -41926,6 +41727,20 @@ }, /turf/open/floor/plastic, /area/station/hallway/primary/central) +"vnm" = ( +/obj/machinery/duct/industrial/waste, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-8"; + location = "Hall-7" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "vnw" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -41966,10 +41781,6 @@ }, /turf/open/floor/wood, /area/station/security/checkpoint/customs) -"voS" = ( -/obj/machinery/pdapainter/engineering, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/ce) "vpF" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -41993,10 +41804,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"vqc" = ( -/obj/machinery/duct/industrial/waste, -/turf/open/floor/iron/stairs, -/area/station/cargo/warehouse/upper) "vqB" = ( /obj/structure/rack, /obj/effect/turf_decal/tile/neutral, @@ -42064,6 +41871,42 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/grimy, /area/station/service/lawoffice) +"vrD" = ( +/obj/structure/table/glass, +/obj/item/book/manual/wiki/cytology{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/biopsy_tool{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/storage/box/petridish{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/storage/box/petridish{ + pixel_x = -5; + pixel_y = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/science/cytology) +"vrF" = ( +/obj/effect/spawner/random/structure/crate_empty, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/button/door/directional/west{ + id = "cargodoor" + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse) "vrM" = ( /obj/machinery/duct/industrial/waste, /obj/effect/turf_decal/trimline/blue/filled/warning{ @@ -42083,6 +41926,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/textured, /area/station/science/genetics) +"vrW" = ( +/obj/effect/spawner/random/trash/graffiti, +/obj/structure/cable/industrial, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "vsl" = ( /obj/effect/turf_decal/trimline/purple/filled/line, /obj/structure/disposalpipe/segment{ @@ -42090,6 +41938,18 @@ }, /turf/open/floor/iron/dark, /area/station/science/lobby) +"vsA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/plaque{ + icon_state = "L2" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Escape-2"; + location = "Escape-1" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/exit/departure_lounge) "vsL" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -42152,14 +42012,6 @@ /obj/machinery/computer/records/security/laptop, /turf/open/floor/plating, /area/station/maintenance/port/central) -"vug" = ( -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "vus" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -42223,21 +42075,20 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/cargo/storage) -"vvO" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "vwx" = ( /obj/machinery/camera/directional/west, /turf/open/floor/engine, /area/station/science/xenobiology) +"vwL" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 5 + }, +/obj/machinery/stasis{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/surgery/theatre) "vwP" = ( /turf/closed/wall, /area/station/commons/dorms) @@ -42337,10 +42188,6 @@ dir = 8 }, /area/station/engineering/atmos/hfr_room) -"vzu" = ( -/obj/structure/cable, -/turf/open/floor/iron/stairs, -/area/station/cargo/warehouse/upper) "vzH" = ( /obj/structure/disposalpipe/segment, /obj/effect/spawner/random/structure/table_or_rack, @@ -42398,17 +42245,6 @@ /obj/item/assembly/igniter, /turf/open/floor/iron/dark/textured, /area/station/medical/pharmacy) -"vAN" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/green/filled/warning{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-19"; - location = "Hall-18" - }, -/turf/open/floor/iron/dark/textured, -/area/station/commons/lounge) "vBn" = ( /obj/structure/cable, /turf/open/floor/iron/dark/textured, @@ -42458,59 +42294,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"vDj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) -"vDs" = ( -/obj/effect/turf_decal/stripes{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/item/construction/plumbing/engineering, -/obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ - dir = 1 - }, -/obj/item/book/manual/wiki/plumbing, -/obj/item/stack/cable_coil/industrial, -/obj/item/stack/cable_coil/industrial, -/obj/item/stack/cable_coil/industrial, -/obj/item/stack/cable_coil/industrial, -/obj/item/stack/cable_coil/industrial, -/obj/item/stack/cable_coil/industrial, -/obj/item/stack/cable_coil/industrial, -/obj/item/stack/cable_coil/industrial, -/obj/item/stack/cable_coil/industrial, -/obj/item/stack/cable_coil/industrial, -/obj/item/rwd/industrial, -/obj/item/rwd/industrial, -/obj/item/rwd/industrial, -/obj/item/rwd/industrial, -/obj/item/rwd/industrial, -/turf/open/floor/engine, -/area/station/engineering/main) -"vDY" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 1 - }, -/obj/structure/table/glass, -/obj/item/storage/backpack/duffelbag/med/surgery, -/obj/machinery/defibrillator_mount/directional/south, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "vEb" = ( /obj/structure/table, /obj/item/poster/random_official{ @@ -42566,6 +42349,16 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plastic, /area/station/hallway/primary/central) +"vFx" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/medical/storage) "vFQ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -42598,6 +42391,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/iron/dark/textured, /area/station/medical/surgery/theatre) +"vGH" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/brown/corner, +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "vHe" = ( /obj/machinery/light/no_nightlight/directional/east, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -42641,6 +42448,28 @@ /obj/effect/turf_decal/trimline/red/filled/warning, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"vJe" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/tank_holder/extinguisher, +/turf/open/floor/iron/dark, +/area/station/medical/virology) +"vJg" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-23"; + location = "Hall-22" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/aft) "vJm" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/white/filled/corner{ @@ -42653,6 +42482,19 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central/fore) +"vJu" = ( +/obj/structure/table, +/obj/machinery/camera/directional/north{ + c_tag = "Medbay Paramedic Dispatch"; + name = "medical camera"; + network = list("ss13","medical") + }, +/obj/machinery/fax{ + fax_name = "Medical"; + name = "Medical Fax Machine" + }, +/turf/open/floor/iron/dark, +/area/station/medical/storage) "vJx" = ( /obj/structure/reflector/box, /turf/open/floor/plating, @@ -42666,11 +42508,6 @@ /obj/effect/spawner/random/food_or_drink/cake_ingredients, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) -"vJM" = ( -/turf/open/floor/iron/stairs{ - dir = 1 - }, -/area/station/science/xenobiology) "vKu" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -42724,6 +42561,9 @@ /obj/effect/mapping_helpers/airlock/access/any/security/general, /turf/open/floor/iron/dark/textured, /area/station/security/office) +"vLH" = ( +/turf/closed/wall, +/area/station/cargo/lobby) "vMb" = ( /obj/machinery/button/door/directional/south{ id = "hop"; @@ -42775,12 +42615,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"vNp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "vNB" = ( /obj/effect/turf_decal/trimline/blue/line{ dir = 5 @@ -42884,17 +42718,12 @@ /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"vQL" = ( -/obj/machinery/light/neon_lining{ - dir = 8; - icon_state = "pink2_1" - }, -/obj/machinery/light/neon_lining{ - dir = 1; - icon_state = "pink2_1" +"vQy" = ( +/obj/structure/cable, +/turf/open/floor/iron/stairs{ + dir = 8 }, -/turf/open/ballpit, -/area/station/security/checkpoint/customs) +/area/station/science/xenobiology) "vQW" = ( /obj/structure/reflector/box{ dir = 1 @@ -43146,6 +42975,19 @@ /obj/effect/turf_decal/trimline/red/filled/line, /turf/open/floor/iron/dark/textured, /area/station/security/office) +"vWG" = ( +/obj/structure/cable, +/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "vWP" = ( /obj/structure/cable, /obj/effect/spawner/random/trash/graffiti, @@ -43238,6 +43080,12 @@ /obj/item/sea_map, /turf/open/floor/carpet/neon/simple/orange/nodots, /area/station/cargo/miningoffice) +"vYW" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Monitoring" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) "vZk" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -43254,6 +43102,19 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/security/armory) +"vZy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/dark_blue/filled/warning, +/obj/effect/turf_decal/trimline/dark_blue/warning{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-25"; + location = "Hall-24" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central/fore) "vZG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43366,6 +43227,13 @@ /obj/machinery/light/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"wdh" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "wdp" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /obj/effect/decal/cleanable/dirt, @@ -43425,16 +43293,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/glass/reinforced, /area/station/engineering/main) -"weC" = ( -/obj/structure/fans/tiny/forcefield{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters{ - name = "Mining Dock Shutters"; - id = "miningdock" - }, -/turf/open/floor/engine, -/area/station/cargo/miningoffice) "weN" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -43469,15 +43327,6 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) -"wfc" = ( -/obj/machinery/duct/industrial/waste, -/obj/machinery/firealarm/directional/west, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/brown/corner, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "wfC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43527,6 +43376,16 @@ /obj/effect/spawner/random/structure/crate_loot, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"wgK" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/warning{ + dir = 4 + }, +/obj/machinery/iv_drip, +/turf/open/floor/iron/white/textured, +/area/station/medical/surgery/theatre) "wgN" = ( /turf/open/floor/iron/stairs, /area/station/hallway/secondary/exit/departure_lounge) @@ -43582,23 +43441,19 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) -"whE" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 +"whB" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 }, -/obj/structure/rack, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) +/obj/structure/chair/sofa/corp/left{ + dir = 8 + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/storage) "whJ" = ( /obj/structure/closet/firecloset/full, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"whT" = ( -/obj/effect/turf_decal/siding/white{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/medical/storage) "wie" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -43616,6 +43471,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/textured, /area/station/medical/treatment_center) +"wiA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/circuit, +/area/station/tcommsat/server) +"wiH" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct/industrial/waste, +/turf/open/floor/iron/white/textured, +/area/station/medical/treatment_center) "wiK" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -43742,6 +43612,29 @@ }, /turf/open/floor/iron/dark/textured, /area/station/commons/lounge) +"wnf" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/door/airlock/external{ + name = "Escape Pod Four"; + space_dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4; + id_tag = "engine_outdoors" + }, +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "Privacy Shutter" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/main) "wny" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43750,6 +43643,22 @@ }, /turf/open/floor/iron/dark/textured, /area/station/command/heads_quarters/hos) +"wnJ" = ( +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/ticket_machine/directional/north{ + id = "ticket_machine_cargo" + }, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "wop" = ( /obj/machinery/duct/industrial/waste, /obj/structure/disposalpipe/segment{ @@ -43906,13 +43815,6 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/security/armory) -"wsG" = ( -/obj/machinery/duct/industrial/waste, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 9 - }, -/turf/open/floor/iron/white/textured, -/area/station/medical/medbay/lobby) "wsU" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/corner{ @@ -43926,12 +43828,6 @@ /obj/effect/base_turf_modifier/pit, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) -"wte" = ( -/obj/machinery/modular_computer/console/preset/id{ - dir = 4 - }, -/turf/open/floor/carpet/orange, -/area/station/command/heads_quarters/ce) "wtD" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/effect/turf_decal/delivery, @@ -44006,13 +43902,16 @@ /obj/structure/falsewall, /turf/open/floor/plating, /area/station/medical/coldroom) -"wvg" = ( -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen/ce{ - pixel_y = 27 +"wvh" = ( +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "Privacy Shutter" }, -/obj/item/lighter, -/turf/open/floor/carpet/orange, +/obj/machinery/door/airlock/command/glass{ + name = "Chief Engineer" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/ce, +/turf/open/floor/iron, /area/station/command/heads_quarters/ce) "wvm" = ( /obj/structure/table/reinforced, @@ -44026,10 +43925,6 @@ "wvr" = ( /turf/open/floor/plating, /area/station/service/kitchen/kitchen_backroom) -"wvt" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/engine, -/area/station/science/xenobiology) "wvv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -44146,6 +44041,15 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/wood/large, /area/station/security/checkpoint/customs) +"wzq" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Network Access" + }, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "wzI" = ( /obj/machinery/door/airlock{ name = "Bedroom" @@ -44171,6 +44075,14 @@ /obj/machinery/pollution_scrubber, /turf/open/floor/iron/white/diagonal, /area/station/medical/medbay/lobby) +"wAo" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen/ce{ + pixel_y = 27 + }, +/obj/item/lighter, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/ce) "wAH" = ( /obj/effect/turf_decal/trimline/white/filled/warning{ dir = 10; @@ -44370,11 +44282,41 @@ }, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) +"wEK" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "wEQ" = ( /obj/effect/turf_decal/tile/dark_red/fourcorners, /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron, /area/station/security/checkpoint/science) +"wEX" = ( +/obj/machinery/piratepad/civilian, +/obj/effect/turf_decal/bot_white, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/mid_joiner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "wFg" = ( /obj/machinery/computer/operating, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -44433,6 +44375,18 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"wId" = ( +/obj/machinery/light_switch/directional/north, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/obj/structure/table/optable, +/obj/machinery/defibrillator_mount/directional/east, +/turf/open/floor/iron/white/textured, +/area/station/medical/surgery/theatre) "wIn" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -44504,17 +44458,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"wJR" = ( -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/brown/corner{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/aft) "wJX" = ( /turf/closed/wall, /area/station/service/electronic_marketing_den) @@ -44558,6 +44501,11 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/office) +"wLx" = ( +/obj/machinery/quantum_server, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/bitrunning/den) "wLR" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 10 @@ -44581,17 +44529,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"wMH" = ( -/obj/structure/cable, -/obj/machinery/plumbing/floor_pump/input/on/waste/directional/west, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-3"; - location = "Hall-2" - }, -/turf/open/floor/plastic, -/area/station/hallway/primary/central) "wMO" = ( /obj/machinery/door/window/right/directional/south{ name = "First Aid Supplies"; @@ -44727,12 +44664,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/office) -"wPX" = ( -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 10 - }, -/turf/open/floor/iron/dark/textured, -/area/station/medical/surgery/theatre) "wQa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44765,6 +44696,9 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/interrogation) +"wQz" = ( +/turf/open/floor/iron/dark/textured, +/area/station/science/cytology) "wQE" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 10 @@ -44789,6 +44723,18 @@ /obj/machinery/door/firedoor/border_only, /turf/open/floor/plating, /area/station/hallway/secondary/entry) +"wRx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/iron/dark/smooth_large, +/area/station/cargo/miningoffice) "wRB" = ( /obj/machinery/stove, /turf/open/floor/iron/kitchen, @@ -44823,11 +44769,6 @@ color = "#D381C9" }, /area/station/science/robotics) -"wRN" = ( -/obj/machinery/light/floor/has_bulb, -/obj/effect/turf_decal/trimline/brown, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "wRT" = ( /turf/closed/wall, /area/station/commons/lounge) @@ -44910,6 +44851,9 @@ }, /turf/open/floor/iron/dark/textured, /area/station/medical/surgery/theatre) +"wUo" = ( +/turf/closed/wall, +/area/station/bitrunning/den) "wUz" = ( /obj/structure/fluff/broken_flooring, /turf/open/floor/plating, @@ -44948,29 +44892,6 @@ color = "#D381C9" }, /area/station/science/robotics) -"wVs" = ( -/obj/structure/cable, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Escape-3"; - location = "Escape-2" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/exit/departure_lounge) -"wVt" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/white/filled/warning{ - dir = 1; - color = "#009dc4" - }, -/obj/effect/turf_decal/trimline/white/warning{ - color = "#009dc4" - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-20"; - location = "Hall-19" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/aft) "wVu" = ( /obj/structure/cable, /obj/structure/closet/secure_closet/security/sec, @@ -45085,15 +45006,13 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"wYV" = ( -/obj/machinery/duct/industrial/waste, -/obj/effect/spawner/random/vending/snackvend, -/obj/effect/turf_decal/trimline/brown/line, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 +"wZl" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Network Access" }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "wZC" = ( /obj/machinery/door/airlock/public/glass{ name = "Auxiliary Tool Storage" @@ -45135,6 +45054,21 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/textured, /area/station/medical/treatment_center) +"wZW" = ( +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 8 + }, +/obj/machinery/door/airlock/mining/glass{ + id_tag = "innercargo"; + name = "Cargo Bay" + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/sorting) "wZY" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 6 @@ -45153,12 +45087,6 @@ icon_state = "clown_carpet" }, /area/station/service/theater) -"xam" = ( -/obj/structure/rack, -/obj/effect/spawner/random/maintenance, -/obj/item/airlock_painter/decal, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "xan" = ( /obj/effect/turf_decal/tile/dark_red/fourcorners, /obj/effect/landmark/start/depsec/medical, @@ -45174,6 +45102,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"xaB" = ( +/obj/machinery/light/neon_lining{ + dir = 8; + icon_state = "pink2_1" + }, +/turf/open/ballpit, +/area/station/security/checkpoint/customs) "xaC" = ( /obj/machinery/door/airlock/virology/glass{ name = "Test Subject Cell" @@ -45231,6 +45166,13 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"xbH" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/white, +/area/station/medical/virology) "xbQ" = ( /obj/machinery/telecomms/receiver/preset_right, /turf/open/floor/circuit/green/telecomms/mainframe, @@ -45248,20 +45190,6 @@ }, /turf/open/floor/wood, /area/station/service/library) -"xbZ" = ( -/obj/structure/sign/warning/cold_temp/directional/north{ - pixel_y = 0; - pixel_x = -32 - }, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/medical/surgery/theatre) "xcq" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 4 @@ -45298,12 +45226,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/grass, /area/station/medical/virology) -"xdw" = ( -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/storage) "xdE" = ( /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, @@ -45379,6 +45301,17 @@ }, /turf/open/floor/iron/white/textured, /area/station/medical/medbay/lobby) +"xeR" = ( +/obj/machinery/computer/atmos_control/mix_tank{ + dir = 1 + }, +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/tile/green/half/contrasted, +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Monitoring" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) "xeT" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/command/storage/eva) @@ -45393,37 +45326,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/iron/dark/textured, /area/station/medical/surgery/theatre) -"xfO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/dark_blue/filled/warning, -/obj/effect/turf_decal/trimline/dark_blue/warning{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-25"; - location = "Hall-24" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central/fore) +"xfK" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/cargo/sorting) "xfS" = ( /obj/effect/turf_decal/sand, /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating/ocean, /area/ocean/generated_above) -"xgr" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/brown/corner{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "xgA" = ( /obj/structure/flora/bush/large/style_random{ pixel_y = 0 @@ -45435,13 +45346,41 @@ /obj/machinery/telecomms/processor/preset_four, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"xhf" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct/industrial/waste, +"xgZ" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/corner, +/obj/machinery/door/airlock/medical/glass{ + name = "Cryogenics Bay" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + id_tag = "medlobby"; + cycle_id = "medbay_lobby" + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/medbay/lobby) +"xhq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/line, +/obj/machinery/light/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/table/reinforced, +/obj/item/stack/medical/bone_gel, +/obj/item/stack/sticky_tape/surgical, +/obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/iron/white/textured, -/area/station/medical/treatment_center) +/area/station/medical/surgery/theatre) "xhu" = ( /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark/textured, @@ -45467,11 +45406,6 @@ /obj/machinery/telecomms/broadcaster/preset_right, /turf/open/floor/circuit, /area/station/tcommsat/server) -"xim" = ( -/obj/machinery/duct/industrial/waste, -/obj/structure/cable, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "xix" = ( /obj/machinery/camera/directional/east, /obj/machinery/light/directional/south, @@ -45485,13 +45419,6 @@ }, /turf/open/floor/iron/dark/textured, /area/mine/storage/public) -"xiB" = ( -/obj/structure/table, -/obj/item/kitchen/rollingpin, -/obj/item/plate, -/obj/item/holosign_creator/robot_seat/restaurant, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "xiD" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 8 @@ -45554,6 +45481,11 @@ }, /turf/open/floor/engine, /area/station/commons/storage/emergency/starboard) +"xkw" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/science/cytology) "xkQ" = ( /obj/machinery/door/airlock/freezer{ desc = "The freezer where the chef keeps all the stuff that needs to be kept cold. Ice cold."; @@ -45585,6 +45517,25 @@ "xlz" = ( /turf/closed/wall/r_wall, /area/station/cargo/sorting) +"xlB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/mid_joiner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "xlI" = ( /obj/structure/chair/sofa/corp/right{ desc = "Looks like someone threw it out. Covered in donut crumbs."; @@ -45685,6 +45636,19 @@ }, /turf/open/floor/carpet/executive, /area/station/command/bridge) +"xoE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/ticket_machine/directional/north{ + id = "ticket_machine_med" + }, +/obj/effect/turf_decal/trimline/blue/line, +/mob/living/simple_animal/bot/medbot/autopatrol, +/turf/open/floor/iron/dark/textured, +/area/station/medical/medbay/lobby) "xoM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -45695,6 +45659,13 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/white/textured, /area/station/medical/medbay/central) +"xoP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "xpc" = ( /obj/machinery/door/airlock/public/glass{ name = "Conveyor Access" @@ -45831,6 +45802,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/service/hydroponics/upper) +"xsa" = ( +/obj/machinery/door/poddoor/preopen{ + id = "ceprivacy"; + name = "Privacy Shutter" + }, +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/structure/cable/industrial, +/turf/open/floor/plating, +/area/station/command/heads_quarters/ce) "xsd" = ( /obj/structure/disposalpipe/segment, /obj/effect/spawner/random/maintenance, @@ -45989,6 +45969,12 @@ }, /turf/open/floor/engine/o2, /area/station/engineering/atmos) +"xvk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "xvl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46006,6 +45992,16 @@ }, /turf/open/floor/iron/dark/textured, /area/station/commons/lounge) +"xvy" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stack/cable_coil, +/obj/item/multitool, +/obj/item/stock_parts/cell/high, +/turf/open/floor/engine, +/area/station/science/xenobiology) "xvF" = ( /obj/effect/turf_decal/stripes/full, /turf/open/floor/engine, @@ -46135,16 +46131,6 @@ "xxZ" = ( /turf/closed/wall/r_wall, /area/station/science/genetics) -"xyg" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/obj/machinery/iv_drip, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "xyp" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 8 @@ -46160,6 +46146,13 @@ /obj/structure/railing, /turf/open/floor/iron/dark/textured, /area/station/medical/medbay/lobby) +"xyG" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Escape-4"; + location = "Escape-3" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/exit/departure_lounge) "xyY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -46218,6 +46211,14 @@ /obj/machinery/telecomms/server/presets/science, /turf/open/floor/circuit, /area/station/tcommsat/server) +"xAh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/engine, +/area/station/cargo/miningoffice) "xAi" = ( /obj/structure/table/wood/fancy/black, /obj/machinery/door/firedoor, @@ -46225,6 +46226,13 @@ /obj/structure/window/plasma/spawner/directional/south, /turf/open/floor/carpet/neon/simple/green/nodots, /area/station/service/bar) +"xAk" = ( +/obj/structure/rack, +/obj/item/wrench, +/obj/item/crowbar/red, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "xBe" = ( /obj/structure/bed/maint, /turf/open/floor/iron/grimy, @@ -46235,6 +46243,11 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"xBo" = ( +/obj/structure/flora/rock/pile/jungle/style_random, +/obj/item/food/grown/banana, +/turf/open/misc/grass/jungle, +/area/station/maintenance/port/central) "xBF" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -46242,6 +46255,19 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/central) +"xBN" = ( +/obj/effect/turf_decal/trimline/brown/filled/warning{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/mid_joiner, +/turf/open/floor/iron/dark/diagonal, +/area/station/cargo/lobby) "xBV" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload) @@ -46258,26 +46284,16 @@ }, /turf/open/floor/plating, /area/station/commons/vacant_room/commissary) +"xCm" = ( +/obj/machinery/light_switch/directional/north{ + pixel_y = -21; + pixel_x = -21 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "xCp" = ( /turf/closed/wall/r_wall, /area/ruin/space/ks13/engineering/secure_storage) -"xCy" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/warning{ - dir = 4 - }, -/turf/open/floor/iron/dark/diagonal, -/area/station/cargo/lobby) "xCE" = ( /obj/effect/turf_decal/stripes/asteroid/line, /obj/effect/turf_decal/sand/plating, @@ -46388,6 +46404,38 @@ /obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) +"xGb" = ( +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay Clinic" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/turf/open/floor/iron/white/textured, +/area/station/medical/medbay/central) +"xGf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/white/warning{ + color = "#009dc4" + }, +/obj/effect/turf_decal/trimline/white/filled/warning{ + dir = 1; + color = "#009dc4" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-12"; + location = "Hall-11" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "xGw" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 4 @@ -46418,14 +46466,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/break_room) -"xGV" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/structure/rack, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse) "xHk" = ( /obj/structure/sink{ pixel_y = 11 @@ -46473,6 +46513,17 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/service/theater) +"xJP" = ( +/obj/machinery/duct/industrial/waste, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/aft) "xJU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46541,6 +46592,11 @@ /obj/structure/cable, /turf/open/floor/carpet/neon/simple/green/nodots, /area/station/service/bar) +"xKW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/closet/l3closet/virology, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "xLh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -46560,6 +46616,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/grass, /area/station/medical/virology) +"xLV" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/warehouse/upper) "xLW" = ( /obj/machinery/door/airlock/research{ glass = 1; @@ -46683,11 +46752,19 @@ /obj/effect/base_turf_modifier/pit, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) -"xNX" = ( -/turf/open/floor/iron/stairs{ - dir = 8 +"xNL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/green/corner, +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 9 }, -/area/station/science/xenobiology) +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=Hall-17"; + location = "Hall-16" + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "xOe" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/iron/dark, @@ -46813,13 +46890,6 @@ }, /turf/open/floor/iron/dark/diagonal, /area/station/cargo/sorting) -"xRd" = ( -/obj/structure/cable, -/obj/machinery/door/airlock{ - name = "Bedroom" - }, -/turf/open/floor/eighties, -/area/station/service/abandoned_gambling_den/gaming) "xRl" = ( /obj/machinery/light/directional/south, /turf/open/floor/iron/grimy, @@ -46849,6 +46919,16 @@ }, /turf/open/floor/iron/white/textured, /area/station/science/genetics) +"xSo" = ( +/obj/machinery/light/neon_lining{ + icon_state = "pink2_1" + }, +/obj/machinery/light/neon_lining{ + dir = 8; + icon_state = "pink2_1" + }, +/turf/open/ballpit, +/area/station/security/checkpoint/customs) "xSs" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/north{ @@ -46862,9 +46942,6 @@ /obj/effect/spawner/random/trash/bacteria, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"xSC" = ( -/turf/open/floor/iron/dark/textured, -/area/station/cargo/warehouse/upper) "xSK" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/corner{ @@ -47044,19 +47121,6 @@ }, /turf/open/floor/wood, /area/station/commons/fitness/recreation/entertainment) -"xWv" = ( -/obj/machinery/duct/industrial/waste, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/line, -/obj/machinery/status_display/evac/directional/north, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=Hall-1"; - location = "Escape-4" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/exit/departure_lounge) "xWF" = ( /obj/machinery/door/airlock/public/glass{ name = "Station Reception" @@ -47081,14 +47145,6 @@ "xXa" = ( /turf/closed/wall, /area/station/medical/treatment_center) -"xXc" = ( -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/machinery/holopad, -/turf/open/floor/iron/white/textured, -/area/station/medical/surgery/theatre) "xXz" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 4 @@ -47264,10 +47320,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/lobby) -"ycw" = ( -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/plating/ocean, -/area/station/ai_monitored/turret_protected/ai) "ycB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47331,17 +47383,6 @@ }, /turf/open/floor/wood/large, /area/station/command/bridge) -"ydU" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 - }, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron/dark, -/area/station/medical/virology) "yew" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -47491,6 +47532,26 @@ dir = 8 }, /area/station/engineering/main) +"yit" = ( +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/light_switch/directional/north, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/roller{ + pixel_y = 6 + }, +/obj/item/roller{ + pixel_y = 6 + }, +/obj/item/roller{ + pixel_y = 6 + }, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/iron/white/textured, +/area/station/medical/storage) "yiT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/tile/green/half/contrasted{ @@ -47615,6 +47676,16 @@ dir = 8 }, /area/station/commons/storage/emergency/starboard) +"ylP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/medical{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "ylS" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -61682,7 +61753,7 @@ vMQ eCB qRz vMQ -jlQ +fxS vvB eAI ydk @@ -61908,7 +61979,7 @@ pBO oSb uVc hdD -xiB +nLQ nBu pqp fbw @@ -62387,7 +62458,7 @@ gau gaM fue uRZ -kwc +qth rdt ryY eHP @@ -62458,13 +62529,13 @@ nWb bZS sgC bZS -vug +nYg mLC -rIq -cXc -mRF +uMh +evU +jtG mLC -abG +tJp rXi meJ meJ @@ -62715,13 +62786,13 @@ cGa vfM vfM jwY -rve -ake -bEl +mAg +noq +qfe fKI -xdw -ake -iUE +kWk +noq +jAu rXi rXi meJ @@ -62963,8 +63034,8 @@ eAY nij xDY afI -qpA -ouo +wZW +obX afI mLC hvE @@ -62973,13 +63044,13 @@ fKI ekq fKI iyv -wRN +rWm fKI -wRN +rWm fKI -wRN -vvO -jpi +rWm +qWf +lrK rXi meJ meJ @@ -63154,7 +63225,7 @@ wzI vwP iPh iPh -xRd +qzk iPh iPh lWJ @@ -63220,7 +63291,7 @@ aRZ iKE ofl afI -iAz +lbi xbx gVR mLC @@ -63230,13 +63301,13 @@ fKI fKI fKI fKI -qxh -qxh -qxh -nOx +jeA +jeA +jeA +qgp fKI -rph -qvN +lfY +jug rXi meJ meJ @@ -63487,13 +63558,13 @@ fKI fKI fKI fKI -wRN +rWm fKI -wRN +rWm fKI -bEQ -vDj -nHR +iDO +nEH +jEU rXi meJ meJ @@ -63728,11 +63799,11 @@ ope ydl sNP afI -erU +xfK kfc kmp -erU -erU +xfK +xfK afI yba aOq @@ -63743,19 +63814,19 @@ mUV fKI fKI fKI -ezr +slJ pQD -cxG -lZa -lZa -lZa -sWJ -kxu +qOl +jZW +jZW +jZW +dDv +fbj rXi meJ -puS -twO -puS +kxG +lAK +kxG meJ aah aah @@ -63932,7 +64003,7 @@ oHD vTm dls mnS -lVC +xNL lrZ lrZ lrZ @@ -63949,7 +64020,7 @@ jMq jMq lLz tJW -gun +nCE lrZ iHN mWP @@ -63984,35 +64055,35 @@ bSj afI pdU hdI -erU -gce -csw -sCM -jja -qLh -mrI +xfK +vGH +upo +neg +pom +xBN +uhe vto aOq lOa mLC -blk +sMF fKI fKI rUj fKI -dvq +qaY mLC mLC -ryM -mnJ -mnJ -iTd +pww +lYf +lYf +lgN mLC rXi meJ -puS -qeF -ixt +kxG +ipv +fru meJ meJ aah @@ -64182,7 +64253,7 @@ uLC vwP fue fue -gCN +hPK fue fue umh @@ -64241,35 +64312,35 @@ oTE afI pdU eTz -erU -kyM -jwO -vNp -lHr -ell -dyN +xfK +mpz +xoP +cAu +mcB +szU +kvV vto beO vUV -lwj -byv +ddE +ocg fKI iyv nyQ gCo wAI mLC -dqy -crT -pua -pua -qsJ -jkE -puS -twO -puS -hZV -puS +lBo +wEK +pJS +pJS +msT +dhx +kxG +lAK +kxG +kUi +kxG meJ meJ aah @@ -64442,7 +64513,7 @@ beP eQp wAH uGB -jqM +rRI bBP hJv kBt @@ -64499,16 +64570,16 @@ afI jLj fAd mBG -iao -jwO -sFn -lHr -oiq -rmf +dBg +xoP +fVz +mcB +msl +oPj yba aOq icx -ooa +eaZ kRV pQD cxM @@ -64516,17 +64587,17 @@ fCM amg eSW mLC -aOZ -clo -xSC -xSC -mbF -qyZ -puS -hZV -hon -hZV -puS +czC +gvn +oBZ +oBZ +oCO +toG +kxG +kUi +cYo +kUi +kxG meJ meJ aah @@ -64687,7 +64758,7 @@ vwP vwP vwP vwP -bvF +dml pcB kZH kZH @@ -64756,12 +64827,12 @@ afI vmz pGC xRb -iao -jwO -pFJ -sPH -tGT -qOf +dBg +xoP +ehA +rcZ +kKC +vLH yba aOq lOa @@ -64773,17 +64844,17 @@ mLC mLC mLC mLC -wYV -xim -gGj -gGj -aAJ -pEw -qnC -haA -tZZ -kkX -twO +sDJ +eKU +sQa +sQa +vln +kty +bqJ +mdl +czN +lAP +lAK meJ meJ aah @@ -64956,7 +65027,7 @@ ovT fBG bec uGB -frU +fKV tYL keE xwm @@ -65010,37 +65081,37 @@ tqP dPH lpu afI -jUd +guc dds afI -amR -hDP -rzQ -lMc -gre -qOf +wnJ +xlB +vdX +wEX +jGW +vLH jfI bpu mVB -qrZ -wfc -mKj -mKj -mKj -mKj -mKj -vqc -cfu -clo -xSC -oAr -mbF -bFI -puS -tFd -hon -hZV -puS +kNY +rbg +nwW +nwW +nwW +nwW +nwW +nuV +hZH +gvn +oBZ +bCi +oCO +jbP +kxG +nNX +cYo +kUi +kxG meJ meJ aah @@ -65267,37 +65338,37 @@ pug pug qKD afI -qxC -erU +ngJ +xfK afI -grB -xCy -nrV -qOf -qOf -qOf +bXE +vmt +ugY +vLH +vLH +vLH jfI tNT qhS -eDo -xgr -nWw -imV -kJB -mkz -rhP -vzu -gPp -mkz -lHT -lHT -jRR -bmq -puS -twO -puS -hZV -puS +mgA +hfF +rDC +vWG +xLV +hHx +snh +eoW +qYg +hHx +lrg +lrg +sEU +iXo +kxG +lAK +kxG +kUi +kxG meJ aah aah @@ -65533,7 +65604,7 @@ ugB vgy vgy vgy -apr +jQl rUH dWi qaa @@ -65545,16 +65616,16 @@ mNz qaa rkn rkn -hbm -blP -blP +tzt +sFa +sFa epV rkn ucv meJ -puS -qeF -ixt +kxG +ipv +fru meJ aah aah @@ -65758,7 +65829,7 @@ wDZ jgV pHV hPT -vAN +grX kAd bTn auj @@ -65778,7 +65849,7 @@ sTn sTn ltK qJW -wVt +uUC hzM sTn ngm @@ -65800,18 +65871,18 @@ cAf kBn mue qaa -dwP -cLu -oII -bZJ -bZJ -iON +hkH +ovH +uMp +cGL +cGL +vrF rrZ -fWk +cHj meJ -puS -twO -puS +kxG +lAK +kxG meJ meJ aah @@ -66019,7 +66090,7 @@ lNO gDA pXi hwW -ivC +lmI pXi mnD lmO @@ -66040,7 +66111,7 @@ iaP pam aMs whA -slD +xJP wlU tXl ifl @@ -66064,7 +66135,7 @@ jkc jkc ipq rCP -fWk +cHj meJ meJ meJ @@ -66297,7 +66368,7 @@ twN twN eBB twN -wJR +jns hCt bCM fXH @@ -66321,7 +66392,7 @@ aej aej fNr eBo -fWk +cHj meJ meJ meJ @@ -66551,21 +66622,21 @@ xJb iWZ iWZ twN -aFE -rqh -twN +kUY +wRx +gBj iWL -geD +fnB fXH fXH nca -lYm +oex twN jfI gtt bMR qaa -qry +mln jJI duv dYT @@ -66574,11 +66645,11 @@ qaa khq aej jzw -oSA -oSA +tLU +tLU jya aGj -fWk +cHj meJ meJ meJ @@ -66754,7 +66825,7 @@ hSs eiI uRG ewl -lhq +xGf rfc nxP ljv @@ -66828,14 +66899,14 @@ sfr dYT exF qaa -cfi +kaH jkc txG -oSA +tLU aej ygc rrZ -fWk +cHj meJ meJ meJ @@ -67068,7 +67139,7 @@ wXn mDR tYW rzP -rzP +kGm gPJ lOu itp @@ -67083,16 +67154,16 @@ weQ uVd mtb qNN -cDZ +bHk qaa bOK -xGV -xam -oSA +qCa +cAG +tLU aej ipq rCP -fWk +cHj meJ meJ meJ @@ -67254,7 +67325,7 @@ sCd nLV nLV nLV -myB +hQv uzV vMy uzV @@ -67289,8 +67360,8 @@ xCU csW csW syi -qEb -uFD +pwD +ogA xyY kFH iIX @@ -67344,12 +67415,12 @@ hCB hCB hCB hCB -whE +hlS txG aej ygc rrZ -fWk +cHj meJ meJ meJ @@ -67547,7 +67618,7 @@ xCU csW syi syi -mTs +bXl skl kMm dJB @@ -67587,7 +67658,7 @@ fMn jce fZG pEa -sYn +uhC mIK jfI ngm @@ -67601,12 +67672,12 @@ oCP qgd xAb hCB -whE +hlS jkc aej ipq rCP -fWk +cHj meJ meJ meJ @@ -67780,7 +67851,7 @@ uzV uzV wlx gIZ -iDY +fYu nMG mhY rfc @@ -67849,21 +67920,21 @@ twN aWe ngm uod -ukK -dEZ -tfI +wzq +eZF +wiA bNX bNX bNX bNX -ctS +hJH hCB -whE +hlS jkc aej fNr -cov -fWk +uLu +cHj meJ meJ aah @@ -68096,7 +68167,7 @@ bch ckl kXk iSl -qRY +wUo btg eGh eGh @@ -68107,20 +68178,20 @@ jfI fvY mLx hCB -cfE -aXp -hVc +hFr +cql +ddY xhY aRb bNX dfM hCB -ecI -pvw -uTG +avO +bmb +jMb jya aGj -fWk +cHj meJ meJ aah @@ -68334,7 +68405,7 @@ oiG dqA rgY hWe -kdI +tIS vdg lzc oWO @@ -68353,13 +68424,13 @@ hcx hcx dGk nip -qRY +wUo jpe -itp -hPo -pEa +wLx +uzc +ktm hOu -bnU +imE lBX asM mLx @@ -68369,7 +68440,7 @@ hCB hCB hCB hCB -cYi +hDR hCB hCB yex @@ -68610,10 +68681,10 @@ hcx hcx dGk nip -qRY -fUp -kLz -kLz +wUo +ust +ipR +ipR pEa acI twN @@ -68625,9 +68696,9 @@ hCB due vbW dVe -dHU +dBV wvF -hst +ecd hCB inf tDi @@ -68796,7 +68867,7 @@ qSI bMU nLV nLV -pzZ +ise uzV vMy uzV @@ -68867,10 +68938,10 @@ hcx hcx dGk htl -qRY -uPb -mwD -mwD +wUo +sRv +pmG +pmG tAI avq twN @@ -68882,7 +68953,7 @@ rsk vzp vzp vzp -dHU +dBV hwr xHE hCB @@ -69119,10 +69190,10 @@ wdT koQ jkJ twN -dGk -hcx +mAw +xAh hcx -dGk +mAw xBV xBV xBV @@ -69139,7 +69210,7 @@ hzR nUL pTo vzp -tEY +cGk ieu cOq hCB @@ -69376,10 +69447,10 @@ kND fQw qTc kND -dGk +mAw hcx hcx -dGk +mAw vSD iUK xUS @@ -69396,8 +69467,8 @@ rht lUX lUX lUX -dHU -sYg +dBV +gyE mAA hCB qWE @@ -69636,7 +69707,7 @@ kND twN wgE wgE -weC +twN vSD tIm ceU @@ -69650,11 +69721,11 @@ gfJ mLx hCB hCB -tyl +mCi pcy xbQ -dHU -iNX +dBV +kiM xgE hCB fcd @@ -69898,7 +69969,7 @@ vSD bCW ckb cDd -fjT +hux xBV xzw xBV @@ -69908,10 +69979,10 @@ mLx hCB hCB hCB -qDE -qDE -qDE -jUk +cmf +cmf +cmf +wZl hCB hCB ugj @@ -70153,7 +70224,7 @@ etN meJ vSD lvU -gBc +gAg eFa uDt xBV @@ -70677,9 +70748,9 @@ wgQ edn mLx rrB -geH +esM ylE -inW +nls rrB xuu wKX @@ -70924,7 +70995,7 @@ etN meJ vSD fPu -tfT +uzN hLW cOV xBV @@ -71183,7 +71254,7 @@ vSD iIl lOc byJ -pEl +mfz xBV rOd xBV @@ -71641,9 +71712,9 @@ iyS wDZ nxP tYA -nwZ +kbi iEa -pKF +bMY mSq wXG kND @@ -71702,7 +71773,7 @@ xBV tLD fSf byc -nYw +vJg ahE rrB atX @@ -71899,7 +71970,7 @@ cbq nxP tYA iEa -gMZ +igF cje mSq wXG @@ -72153,9 +72224,9 @@ uPg iGL lHo aal -kOL +vnm tYA -fya +xBo cje iEa mSq @@ -72402,7 +72473,7 @@ cvj sAx eJv lCz -vjG +otn meC tXC tXC @@ -72414,7 +72485,7 @@ xxK tYA cje hmX -fya +xBo mSq wXG kND @@ -72660,7 +72731,7 @@ lAM xoM vCn uhw -btR +oKa kUl hee rhL @@ -72669,9 +72740,9 @@ sED eqz vrM cIO -gMZ +igF iEa -nwZ +kbi mSq wXG kND @@ -72917,7 +72988,7 @@ eDM eDM ozO dPd -ljE +xGb wwy wad nvn @@ -73503,11 +73574,11 @@ xeT iiO diH fZn -clZ -nJP +pwA +lHR ddT opG -jtw +kuM ajQ sNA jzc @@ -74029,7 +74100,7 @@ nGh tPP vWi hhP -gZV +bDj rPr uMD vib @@ -74274,11 +74345,11 @@ aaC kjE diH fZn -clZ -eLO +pwA +fYV say vrl -rvv +riW ajQ uMq qRs @@ -74707,10 +74778,10 @@ btf cAB jaP jKo -cRm -mjS +fwV +sJx jyw -pMT +aFI wro jKo jKo @@ -74721,7 +74792,7 @@ xxZ xxZ eJv eJv -bsc +xoE dno kAH cIO @@ -74754,7 +74825,7 @@ dtc dgX gej fiM -gUE +kBA aYY meJ meJ @@ -74789,7 +74860,7 @@ iiO udW fZn hrp -egh +hHK maA mug ecF @@ -74802,8 +74873,8 @@ htr wsF gMj bLV -bgu -mTM +lRh +mIl tPP jwg qQL @@ -74964,12 +75035,12 @@ vQf cAB eSn jKo -pSS +wId itY vNB vdv -gfL -jMi +wgK +gXR tBQ uxI mon @@ -75012,7 +75083,7 @@ dEh bOR osG fAs -ycw +nzZ meJ meJ meJ @@ -75048,7 +75119,7 @@ fZn hrp dVI lEA -fte +asu lEA lEA lEA @@ -75222,7 +75293,7 @@ yaj yaj yaj yaj -bkC +uny pxZ iYt jYz @@ -75268,7 +75339,7 @@ cBf kDh xnz iBM -bsW +fHB fSk fSk fSk @@ -75479,11 +75550,11 @@ jmd qAg met yaj -tpo +bOO jvq -xXc +jWG jvq -pfW +iNI nhC sQl nvL @@ -75538,7 +75609,7 @@ meJ meJ meJ fXF -sXK +jzn asA dsr tVq @@ -75738,9 +75809,9 @@ jwu kUm kBH jvq -tVl +fZX pTU -pfW +iNI nhC wMO eeA @@ -75782,7 +75853,7 @@ oFf oFf hgK eHM -gUE +kBA aYY aYY meJ @@ -75800,7 +75871,7 @@ lSW cQR tVq vBW -mSN +cPy vUj eIa sPX @@ -75828,7 +75899,7 @@ rTk saU vnw eCT -kQD +ufN wEE hXY vzd @@ -75993,9 +76064,9 @@ nKc auP dFj yaj -pCy +xhq jvq -tVl +fZX jvq sMv nhC @@ -76250,11 +76321,11 @@ aIK cNq bbK yaj -tLu +mam spI htO -xyg -vDY +pTB +cnK tBQ dTv xPa @@ -76499,8 +76570,8 @@ qSI bMU hCQ fDX -fQo -xbZ +oUK +nAS pls tBQ tBQ @@ -76520,7 +76591,7 @@ uOF uOF eJv eJv -bsc +xoE dno kAH cIO @@ -76756,9 +76827,9 @@ qSI bMU fgS nhC -gPc -wPX -pbq +tCm +vaj +qwR rwu ord fDX @@ -76773,9 +76844,9 @@ nsM avv wYe dLY -uzC +ijh mFK -gMi +xgZ ybu pgJ dno @@ -77013,9 +77084,9 @@ qSI iqh djZ oft -vbA +bWB pkl -qrS +udg nrd ubZ wUi @@ -77029,11 +77100,11 @@ oMo oMo oMo oMo -xhf -rxg -cHC -hDO -dtJ +uAv +lJl +wiH +msQ +lzG adf fUj rLb @@ -77270,9 +77341,9 @@ qSI mFh mFh fDX -qJu -htZ -lmk +vwL +fvR +uFf gbq kKu fDX @@ -77287,11 +77358,11 @@ hXo cQI wil wil -cBY -cei -tEj -wsG -qlB +dPW +mko +rHY +ncf +lzS uDF kAH cIO @@ -77527,8 +77598,8 @@ qSI fgS fgS alR -jpS -jpS +hNg +hNg imy ksZ kge @@ -77544,7 +77615,7 @@ jjf wtT lgg ipa -dLA +imo vNG qNi jYw @@ -77802,7 +77873,7 @@ niS mFK oMo dYV -eAt +eTm uHW abL ikH @@ -78562,7 +78633,7 @@ laX feL oYu gTr -dnv +uCI xiD mrL gTr @@ -78819,7 +78890,7 @@ lfo nuX djK gTr -gXq +nOy nNs mMH fEm @@ -78835,7 +78906,7 @@ okd okd rbQ dRj -slt +kKP cIO ttR xmh @@ -79076,7 +79147,7 @@ gTr gTr gTr gTr -bAM +yit ehz nnN ehz @@ -79329,9 +79400,9 @@ fgS fgS bzW gTr -abb -lQe -oGE +vJu +abg +nTg rvQ dFu kfA @@ -79413,7 +79484,7 @@ sxv pla nsb jec -ioy +gDi vAv maY ylS @@ -79586,15 +79657,15 @@ mFh tAk mog gTr -eDD -lpY -whT +sXh +vFx +bKh lqs veM qhH veM -gcG -ilC +ejk +whB emO tku dpZ @@ -82171,7 +82242,7 @@ rdb rAT iEZ red -gNC +lPX omI xBe red @@ -83004,9 +83075,9 @@ xWF rAp qRJ qRJ -vQL -ezh -aNn +iOf +xaB +jve qRJ qRJ uEb @@ -83197,7 +83268,7 @@ rdb nRM nRM red -fuu +tet wCh rDG wUz @@ -83260,11 +83331,11 @@ fHa hAc mXx kLx -vQL +iOf jBo jBo jBo -lCu +xSo jMN gPk ydb @@ -83517,11 +83588,11 @@ qeK oHN aQx kLx -odT +dXR jBo jCm aIc -axu +rwN jMN vYQ pmk @@ -83774,11 +83845,11 @@ qeK pPR aQx kLx -sFl +rgn jBo jBo jBo -bZc +pQZ jMN gPk ydb @@ -84032,9 +84103,9 @@ pPR ccx qRJ qRJ -sFl -tLC -iEh +rgn +atn +nnb qRJ qRJ eGV @@ -84250,7 +84321,7 @@ mwr mwr mwr mwr -bHd +qui bpX lrt oUd @@ -85059,7 +85130,7 @@ fkl pPR vbq bcL -hbV +saX dLe dLe dLe @@ -85067,7 +85138,7 @@ dLe dLe dLe dBk -xfO +vZy uKT pFe fHe @@ -85261,7 +85332,7 @@ pCt pGv vEv nts -rIF +lYt sri bdj afB @@ -85299,7 +85370,7 @@ fet fet jNS cev -wMH +eRJ gXr fPy lXi @@ -85555,7 +85626,7 @@ xJU iAr vcm uyh -eLs +pay aqa qVr cUM @@ -85828,7 +85899,7 @@ kVT jFs xst lAh -hSy +pQX fuQ iFe aKn @@ -86042,7 +86113,7 @@ nmx nmx nmx naJ -ltW +bjl qJg pPi tXg @@ -86317,7 +86388,7 @@ xlI heQ heQ heQ -oTe +bPM lHk xGJ gFp @@ -87372,14 +87443,14 @@ gQC giY kDW nhj -vlm +vsA sgI sWi ccr ccr wrG sWi -wVs +ucj xhD nSA kEj @@ -87576,8 +87647,8 @@ xFc naS tmv xFc -khS -cwQ +dZw +kJA pPh adj ndO @@ -88122,7 +88193,7 @@ tCB bQC sgQ asg -sli +ssb dnj cpM yab @@ -88604,8 +88675,8 @@ cHQ deg jeT iMz -iGD -rCn +qCK +uSW nQI gCU mzV @@ -88892,7 +88963,7 @@ aNi qay fFQ jvI -jRw +poH auZ cbM xKz @@ -88912,7 +88983,7 @@ wLi tSn tSn tSn -xWv +iUj lRd bdo sWi @@ -88921,7 +88992,7 @@ ieG ieG ieG sWi -akn +xyG irL tSn meJ @@ -89399,7 +89470,7 @@ mMh rvJ bQI qSp -vDs +pLo aNi ijM fAb @@ -89660,8 +89731,8 @@ kmd aNi tQV qSp -veh -ejT +uHe +wnf qSp qSp qSp @@ -89669,9 +89740,9 @@ aBy aBy aBy aBy -oPs -mSO -kGA +xsa +qPi +wvh aBy aBy dGs @@ -89921,15 +89992,15 @@ rpa unh pDS dGs -bwi -tan -rdE -wte -rqi -voS -oDZ +xCm +pUV +mcL +qtl +hGs +sLg +nqv hCY -enB +vju aBy itt baG @@ -90180,13 +90251,13 @@ pDS dGs dGs aBy -wvg -aDo +wAo +snT hCY hCY gRe hCY -fGy +rqk aBy vPr lHK @@ -90433,16 +90504,16 @@ lwb tsb bku bdB -kcC +cXs dGs dGs aBy aBy -dGR -idl +hSt +tNI gRe gRe -oag +ilo aBy aBy vPr @@ -90688,8 +90759,8 @@ lCJ ltk ltk qSp -dsW -pVC +ahZ +rKC pDS dGs dGs @@ -90697,9 +90768,9 @@ dGs aBy aBy aBy -lXt -iGp -lXt +aZF +qoJ +aZF aBy dGs vPr @@ -90948,13 +91019,13 @@ meJ meJ meJ pDS -fRu +cmE dGs dGs eJV eJV eJV -nDE +vrW dGs dGs eXv @@ -91129,7 +91200,7 @@ bqT bqT bqT xrx -tfp +ouW meJ meJ bal @@ -91205,10 +91276,10 @@ meJ meJ meJ meJ -fRu -fRu -fRu -fRu +cmE +cmE +cmE +cmE pDS pDS che @@ -91487,7 +91558,7 @@ sWi jLr nBw wgN -aBn +kto meJ aah aah @@ -91744,8 +91815,8 @@ lZu fhk gKx wgN -qWy -qeu +gzY +fwW aah aah aah @@ -92001,7 +92072,7 @@ xQs jLr nBw wgN -aBn +kto meJ aah aah @@ -93965,7 +94036,7 @@ eqO foQ fPW ock -lQN +jJi uHA pYg dkJ @@ -94222,8 +94293,8 @@ cWz gyA iAR aRd -mKe -pfK +vYW +xeR lvw nLI aah @@ -96282,9 +96353,9 @@ nlQ fxe fxe uTC -obH -sEM -jNs +vrD +fhp +dzt ada xDV jZh @@ -96538,10 +96609,10 @@ xto cet fxe nIX -vgg -acG -cSM -sgF +xkw +wQz +pzQ +uHd daF vkl mWz @@ -96793,11 +96864,11 @@ swM eWH hhi jfa -ggD -kHV -tSv -ufy -ufy +qbI +cvJ +bAT +qkx +qkx oyB qTk bJM @@ -97051,10 +97122,10 @@ fxe fxe fxe fxe -nvS -biq -iLU -pDF +eha +gAb +cmt +bMd uxK uxK uxK @@ -97308,9 +97379,9 @@ gro dOc vwx tvt -lTI -biq -eih +sbF +gAb +kkl fxe uxK grG @@ -97565,9 +97636,9 @@ gro ahl gro tvt -pDw -biq -pDw +saQ +gAb +saQ fxe hef bGX @@ -97588,7 +97659,7 @@ acm aDn ngn uxK -giM +jId meJ meJ etN @@ -97822,9 +97893,9 @@ quZ kzi quZ tvt -uGF -biq -kHV +cOZ +gAb +cvJ geV rsS nyZ @@ -98079,9 +98150,9 @@ tvt lmv mkY fxe -uNh -biq -lfN +cOl +gAb +fTx fxe pHK rsS @@ -98335,10 +98406,10 @@ iri iri iri iri -vJM -kHV -biq -nsH +sZD +cvJ +gAb +lQT fxe teK rsS @@ -98592,10 +98663,10 @@ gKd gKd gKd gKd -qbT -nUK -biq -cUa +vhv +xvk +gAb +ntZ pIc xur tLz @@ -98608,7 +98679,7 @@ rsS ylx wCC uxK -sza +aDi rzU uxK uxK @@ -98841,7 +98912,7 @@ fxe xzr xzr wTY -ocd +nUz iri gCe jSL @@ -98849,10 +98920,10 @@ iri iri iri iri -tdG -jCH -kHV -lyz +ovm +lMM +cvJ +iyU fxe bik xWu @@ -99108,7 +99179,7 @@ tvt tvt fxe bfx -vlr +hDB bfx bfx bfx @@ -99370,13 +99441,13 @@ fxA dfB bfs imz -htk +xKW lvb bfx -uRB -iUt +ylP +urb bfx -ezn +hva fHm bfx bfx @@ -99627,16 +99698,16 @@ cOP pqT hJI bfx -kzJ -ydU +ted +uqy bfx -dqW -aaK +bHw +iMn bfx lNZ xwH uij -vbu +reh pUe bfx bfx @@ -99885,19 +99956,19 @@ kHX xLS xaC ajB -bfB +mCB bfx tZO -fnj +nRv bfx vdb -uyE +ipi dXQ dXQ -uyE -piW +ipi +xbH bfx -eDx +akV bBf bBf pIG @@ -100141,7 +100212,7 @@ tCC fzi qoI bfx -tQj +vJe kMl aTV qSk @@ -100385,7 +100456,7 @@ gro dNu tvt iri -iri +eQz iri tvt aZB @@ -100404,7 +100475,7 @@ bfx tZO hNZ bfx -sbM +qTd eUn dXQ lSZ @@ -100642,7 +100713,7 @@ ahl eRl wUP iri -iri +eQz iri atC gaz @@ -100655,18 +100726,18 @@ bUM dfB jcw bfx -cQS +agm ajB bfx -cQS +agm ajB bfx -lYV -uyE -gNL -agA -bht -btG +eUj +ipi +dFf +pFD +lEJ +jPF bfx wdc tlw @@ -100912,18 +100983,18 @@ bfx bfx bfx bfx -loR -iUt +isG +urb bfx -loR -iUt +isG +urb bfx -sVZ +ocP dXQ -auL -rLF -sIO -fXG +fXc +hFF +ahL +hmt bfx hhC yhu @@ -101155,9 +101226,9 @@ fxe fxe fxe fxe -dmc -xNX -ocv +jIO +vQy +suS fxe fxe fxe @@ -101411,11 +101482,11 @@ aah aah aah fxe -kEz -tpk -fYW -kHV -slU +ixG +thY +swq +cvJ +xAk fxe aah aah @@ -101668,11 +101739,11 @@ aah aah aah fxe -gNq -kCx -qkC -djC -gxq +jef +fPP +lvt +wdh +ilb fxe aah aah @@ -101924,13 +101995,13 @@ aah aah aah aah -bpK -nvC -bpK -mXO -bpK -nvC -eLH +pjg +mtQ +vkm +jRG +pjg +mtQ +bUk aah aah aah @@ -102184,7 +102255,7 @@ aah fxe gro gro -nAe +euD gro gro fxe @@ -102439,9 +102510,9 @@ aah aah aah fxe -iYs +sTz gro -nAe +euD gro gro fxe @@ -102696,11 +102767,11 @@ aah aah aah fxe -wvt +iZv gro -teO -hKs -lpP +dky +ubX +tvN fxe aah aah @@ -103211,9 +103282,9 @@ aah aah fxe fxe -fhv -oqT -qMR +xvy +hZz +eIs fxe fxe aah @@ -103466,13 +103537,13 @@ aah aah aah aah -atG +mUq fxe fxe fxe fxe fxe -atG +mUq aah aah aah diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index 682216193a5e..c96e55fd0c57 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -1147,6 +1147,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"er" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/airalarm/directional/east, +/obj/machinery/computer/quantum_console, +/turf/open/floor/iron, +/area/station/bitrunning/den) "es" = ( /obj/machinery/dna_scannernew, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -1846,6 +1853,10 @@ /obj/item/paper/guides/jobs/security/labor_camp, /turf/open/floor/iron, /area/station/security/brig) +"gU" = ( +/obj/effect/landmark/bitrunning/station_reward_spawn, +/turf/open/floor/circuit/green, +/area/station/bitrunning/den) "gW" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/radiation/rad_area/directional/north, @@ -1928,6 +1939,11 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"lT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/iron, +/area/station/bitrunning/den) "lX" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -1939,6 +1955,16 @@ /obj/machinery/chem_mass_spec, /turf/open/floor/iron, /area/station/medical/chemistry) +"mU" = ( +/obj/machinery/door/airlock, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/iron, +/area/station/bitrunning/den) +"nk" = ( +/obj/machinery/netpod, +/turf/open/floor/iron, +/area/station/bitrunning/den) "nn" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -1973,6 +1999,9 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/iron, /area/station/medical/chemistry) +"pl" = ( +/turf/closed/wall/r_wall, +/area/station/bitrunning/den) "pv" = ( /obj/machinery/light/directional/north, /turf/open/floor/iron, @@ -2017,11 +2046,23 @@ /obj/machinery/door/airlock/shell, /turf/open/floor/iron/dark, /area/station/construction) +"su" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/item/storage/part_replacer/bluespace/tier4, +/turf/open/floor/iron, +/area/station/bitrunning/den) "sH" = ( /obj/structure/table, /obj/item/storage/box/shipping, /turf/open/floor/iron, /area/station/commons/storage/primary) +"tB" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/bitrunning/den) "tE" = ( /obj/machinery/door/airlock/research, /turf/open/floor/iron/dark, @@ -2134,12 +2175,22 @@ "wU" = ( /turf/closed/wall/r_wall, /area/station/science/explab) +"yl" = ( +/obj/machinery/quantum_server, +/turf/open/floor/iron, +/area/station/bitrunning/den) "yA" = ( /obj/docking_port/stationary/laborcamp_home{ dir = 8 }, /turf/open/space/basic, /area/space) +"yG" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "yK" = ( /obj/structure/fans/tiny/invisible, /obj/effect/turf_decal/stripes/line{ @@ -2213,6 +2264,10 @@ /obj/structure/rack, /turf/open/floor/iron/dark, /area/station/science/explab) +"Dy" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/bitrunning/den) "DW" = ( /obj/machinery/computer/scan_consolenew{ dir = 1 @@ -2302,6 +2357,9 @@ /obj/machinery/light/directional/south, /turf/open/floor/plating, /area/station/engineering/atmos) +"Lq" = ( +/turf/open/floor/circuit/green, +/area/station/bitrunning/den) "Ly" = ( /obj/machinery/chem_dispenser/chem_synthesizer, /turf/open/floor/iron/dark, @@ -2373,6 +2431,10 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"Qr" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/bitrunning/den) "Qt" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -2396,6 +2458,11 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/entry) +"Rl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "RM" = ( /obj/structure/closet/secure_closet/hop{ locked = 0 @@ -2403,6 +2470,9 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron, /area/station/command/bridge) +"RW" = ( +/turf/open/floor/iron, +/area/station/bitrunning/den) "Sj" = ( /obj/structure/table/optable, /obj/effect/turf_decal/tile/blue{ @@ -3060,12 +3130,12 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa +pl +pl +pl +pl +pl +pl aa aa aa @@ -3152,12 +3222,12 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa +pl +gU +Lq +RW +nk +pl aa aa aa @@ -3244,12 +3314,12 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa +pl +gU +Lq +RW +nk +pl aa aa aa @@ -3336,12 +3406,12 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa +pl +yl +RW +su +nk +pl aa aa aa @@ -3428,12 +3498,12 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa +pl +er +Dy +lT +tB +pl aa aa aa @@ -3520,12 +3590,12 @@ em em em em -em -em -em -dY -en -dY +pl +pl +pl +mU +Qr +pl Tj Tj Tj @@ -3615,7 +3685,7 @@ rK rK vy em -eh +Rl eh LW lc @@ -3707,7 +3777,7 @@ qQ qQ ME em -eh +Rl eh LW lc @@ -3799,7 +3869,7 @@ qQ qQ ME em -eh +Rl eh LW lc @@ -3891,7 +3961,7 @@ qQ qQ CQ em -eh +yG eh LW lc @@ -3983,7 +4053,7 @@ qQ qQ ME em -eh +Rl eh LW lc @@ -4075,7 +4145,7 @@ qQ qQ YL em -eh +Rl eh LW lc @@ -4167,7 +4237,7 @@ II gl gD kj -wM +Rl wM LW lc diff --git a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_1.dmm b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_1.dmm index a34ab0e6fcf3..eab9280b8fa7 100644 --- a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_1.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_1.dmm @@ -1845,10 +1845,10 @@ gb gb gb gb -gb -gb -gb -gb +eJ +eJ +eJ +eJ eJ eJ eJ @@ -1882,10 +1882,10 @@ gb gb gb gb -gb -gb -gb -gb +eJ +eJ +eJ +eJ eJ eJ eJ @@ -1918,7 +1918,7 @@ eJ gb gb gb -eJ +gb eJ eJ eJ diff --git a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_2.dmm b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_2.dmm index b5273b4c845f..ea1beb34cb0d 100644 --- a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_2.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_2.dmm @@ -2004,10 +2004,10 @@ se se se se -se -se -se -se +dx +dx +dx +dx dx dx dx @@ -2041,10 +2041,10 @@ se se se se -se -se -se -se +dx +dx +dx +dx dx dx dx @@ -2077,7 +2077,7 @@ dx se se se -dx +se dx dx dx diff --git a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_3.dmm b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_3.dmm index 63b18a69e752..775e31e6b9d8 100644 --- a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_3.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_3.dmm @@ -1918,10 +1918,10 @@ cK cK cK cK -cK -cK -cK -cK +Hu +Hu +Hu +Hu Hu Hu Hu @@ -1955,10 +1955,10 @@ cK cK cK cK -cK -cK -cK -cK +Hu +Hu +Hu +Hu Hu Hu Hu @@ -1991,7 +1991,7 @@ Hu cK cK cK -Hu +cK Hu Hu Hu diff --git a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_1.dmm b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_1.dmm index 202e850684a5..ae78ae6731f9 100644 --- a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_1.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_1.dmm @@ -1079,10 +1079,10 @@ V V V V -V -V -V -V +l +l +l +l l l l @@ -1105,10 +1105,10 @@ V V V V -V -V -V -V +l +l +l +l l l l diff --git a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_2.dmm b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_2.dmm index 939d8bb0aafc..0e8deac0a590 100644 --- a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_2.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_2.dmm @@ -1013,10 +1013,10 @@ V V l V -V -V -V -V +b +b +b +b b b b @@ -1039,10 +1039,10 @@ V V V V -V -V -V -V +b +b +b +b b b b diff --git a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_3.dmm b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_3.dmm index 5831bc047d39..e110ecac03b6 100644 --- a/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_3.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/barcargoupper_cave_3.dmm @@ -79,6 +79,10 @@ /obj/item/clothing/head/utility/hardhat, /turf/open/misc/asteroid, /area/station/asteroid) +"r" = ( +/obj/item/gps/mining, +/turf/open/misc/asteroid/dug, +/area/station/asteroid) "s" = ( /obj/machinery/conveyor{ id = "tram_mining" @@ -113,10 +117,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"y" = ( -/obj/item/gps/mining, -/turf/open/misc/asteroid, -/area/station/asteroid) "z" = ( /obj/item/storage/bag/ore{ pixel_x = 6; @@ -1048,7 +1048,7 @@ b i i I -I +r Y i Y @@ -1100,10 +1100,10 @@ B I I P -y -i -i -i +Q +Q +Q +Q Q Q Q @@ -1126,10 +1126,10 @@ Y Y I Y -i -i -i -i +Q +Q +Q +Q Q Q Q diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index ba14c8c9b5e2..ffca395da9c2 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -1621,18 +1621,28 @@ /turf/open/misc/asteroid/airless, /area/station/asteroid) "aeA" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - location = "QM #2" +/obj/effect/turf_decal/tile/brown/fourcorners, +/obj/effect/turf_decal/box/corners{ + dir = 8 }, -/mob/living/simple_animal/bot/mulebot{ - home_destination = "QM #2"; - suffix = "#2" +/obj/effect/turf_decal/box/corners{ + dir = 1 }, -/obj/effect/turf_decal/tile/brown/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/storage) +/obj/effect/decal/cleanable/oil/streak, +/obj/structure/sign/poster/random/directional/north, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/effect/landmark/bitrunning/station_reward_spawn, +/obj/machinery/light/neon_lining{ + dir = 8; + icon_state = "pink2_1" + }, +/obj/machinery/light/neon_lining{ + dir = 1; + icon_state = "pink2_1" + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/bitrunning/den) "aeB" = ( /obj/machinery/airalarm/directional/south, /obj/structure/cable, @@ -1803,18 +1813,23 @@ /turf/open/floor/iron, /area/station/cargo/miningdock) "afk" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - location = "QM #1" +/obj/effect/turf_decal/tile/brown/fourcorners, +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 4 }, -/mob/living/simple_animal/bot/mulebot{ - home_destination = "QM #1"; - suffix = "#1" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/landmark/bitrunning/station_reward_spawn, +/obj/machinery/light/neon_lining{ + dir = 4; + icon_state = "pink2_1" }, -/obj/effect/turf_decal/tile/brown/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/storage) +/obj/machinery/light/neon_lining{ + dir = 1; + icon_state = "pink2_1" + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/bitrunning/den) "afl" = ( /obj/machinery/door/airlock/mining/glass{ name = "Mining Dock" @@ -4266,6 +4281,9 @@ /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 8 }, +/obj/structure/chair{ + dir = 4 + }, /turf/open/floor/iron, /area/station/cargo/storage) "axG" = ( @@ -4298,7 +4316,12 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, -/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/light/dim/directional/north, /turf/open/floor/iron, /area/station/cargo/warehouse) "axO" = ( @@ -4309,6 +4332,12 @@ pixel_x = -4 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + location = "QM #4" + }, +/obj/effect/turf_decal/tile/brown/fourcorners, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) "axS" = ( @@ -6963,6 +6992,17 @@ }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) +"aTR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/bitrunner, +/obj/machinery/light/neon_lining{ + dir = 4; + icon_state = "pink2_1" + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "aTT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -8222,9 +8262,6 @@ /obj/effect/turf_decal/trimline/dark_red/warning{ dir = 6 }, -/obj/structure/railing{ - dir = 4 - }, /obj/structure/industrial_lift/public, /turf/open/floor/plating/elevatorshaft, /area/station/hallway/secondary/construction/engineering) @@ -8366,6 +8403,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/checkpoint/supply) +"bub" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/bitrunning/den) "bug" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 5 @@ -9459,11 +9500,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/dark, /area/station/security/courtroom/holding) -"bLq" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/basic/spider/maintenance, -/turf/open/floor/iron/smooth, -/area/station/cargo/drone_bay) "bLA" = ( /obj/structure/table/wood, /obj/item/folder{ @@ -10940,9 +10976,6 @@ /obj/effect/turf_decal/trimline/dark_red/warning{ dir = 5 }, -/obj/structure/railing{ - dir = 4 - }, /obj/structure/industrial_lift/public, /turf/open/floor/plating/elevatorshaft, /area/station/hallway/secondary/construction/engineering) @@ -11908,6 +11941,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/lobby) +"cyO" = ( +/obj/machinery/elevator_control_panel{ + layer = 3.1; + linked_elevator_id = "tram_xeno_lift"; + pixel_y = 2; + preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") + }, +/turf/closed/wall/r_wall, +/area/station/science/xenobiology) "cyU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -13019,6 +13061,20 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/department/medical) +"cSc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + location = "QM #3" + }, +/obj/effect/turf_decal/tile/brown/fourcorners, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #3"; + suffix = "#3" + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/drone_bay) "cSe" = ( /obj/machinery/light/directional/east, /turf/open/floor/glass/reinforced, @@ -13471,14 +13527,21 @@ /obj/effect/turf_decal/trimline/dark_red/warning{ dir = 4 }, -/obj/structure/railing{ - dir = 4 - }, /obj/structure/industrial_lift/public, /obj/machinery/elevator_control_panel/directional/east{ linked_elevator_id = "tram_lower_center_lift"; preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark_red/warning{ + dir = 4 + }, +/obj/machinery/elevator_control_panel/directional/east{ + linked_elevator_id = "tram_lower_center_lift"; + preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") + }, /turf/open/floor/plating/elevatorshaft, /area/station/hallway/secondary/construction/engineering) "cZT" = ( @@ -15350,9 +15413,6 @@ dir = 1 }, /obj/structure/industrial_lift/public, -/obj/structure/railing{ - dir = 4 - }, /turf/open/floor/plating/elevatorshaft, /area/station/security/execution/transfer) "dHD" = ( @@ -16438,6 +16498,12 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) "eaf" = ( @@ -17948,12 +18014,16 @@ /turf/open/floor/iron, /area/station/maintenance/tram/left) "eyl" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/crate_empty, -/obj/effect/spawner/random/maintenance/two, -/turf/open/floor/iron/smooth, -/area/station/maintenance/department/cargo) +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/light/neon_lining{ + dir = 8; + icon_state = "pink2_1" + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "eyy" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -18515,6 +18585,13 @@ linked_elevator_id = "tram_sci_lift"; preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") }, +/obj/effect/turf_decal/trimline/dark_red/warning{ + dir = 9 + }, +/obj/machinery/elevator_control_panel/directional/west{ + linked_elevator_id = "tram_sci_lift"; + preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") + }, /turf/open/floor/plating/elevatorshaft, /area/station/science/lower) "eJZ" = ( @@ -20281,7 +20358,16 @@ /area/station/security/checkpoint/science) "foa" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/basic/spider/giant, +/obj/effect/turf_decal/delivery, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + location = "QM #2" + }, +/obj/effect/turf_decal/tile/brown/fourcorners, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #2"; + suffix = "#2" + }, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) "fof" = ( @@ -20373,6 +20459,8 @@ /area/station/science/ordnance) "foU" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/storage) "foY" = ( @@ -22207,9 +22295,6 @@ /obj/effect/turf_decal/trimline/dark_red/warning{ dir = 10 }, -/obj/structure/railing{ - dir = 8 - }, /obj/structure/industrial_lift/public, /turf/open/floor/plating/elevatorshaft, /area/station/hallway/secondary/construction/engineering) @@ -23081,6 +23166,17 @@ /obj/structure/destructible/cult/item_dispenser/archives/library, /turf/open/floor/engine/cult, /area/station/service/library) +"gmI" = ( +/obj/machinery/quantum_server, +/obj/machinery/light/neon_lining{ + icon_state = "pink2_1" + }, +/obj/machinery/light/neon_lining{ + dir = 4; + icon_state = "pink2_1" + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "gmN" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -24020,9 +24116,6 @@ /turf/open/floor/iron/smooth, /area/station/hallway/primary/tram/center) "gEE" = ( -/obj/structure/railing{ - dir = 1 - }, /obj/machinery/elevator_control_panel/directional/north{ linked_elevator_id = "tram_upper_center_lift"; preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") @@ -24031,6 +24124,13 @@ dir = 1 }, /obj/structure/industrial_lift/public, +/obj/machinery/elevator_control_panel/directional/north{ + linked_elevator_id = "tram_upper_center_lift"; + preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") + }, +/obj/effect/turf_decal/trimline/dark_red/warning{ + dir = 1 + }, /turf/open/floor/plating/elevatorshaft, /area/station/hallway/secondary/service) "gEK" = ( @@ -25008,7 +25108,6 @@ dir = 10 }, /obj/structure/industrial_lift/public, -/obj/structure/railing, /turf/open/floor/plating/elevatorshaft, /area/station/security/execution/transfer) "gTw" = ( @@ -25106,6 +25205,8 @@ "gUL" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) "gUO" = ( @@ -26264,9 +26365,6 @@ /obj/effect/turf_decal/trimline/dark_red/warning{ dir = 9 }, -/obj/structure/railing{ - dir = 8 - }, /obj/structure/industrial_lift/public, /turf/open/floor/plating/elevatorshaft, /area/station/hallway/secondary/construction/engineering) @@ -26925,7 +27023,6 @@ /obj/effect/turf_decal/siding/thinplating/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/storage) "hEb" = ( @@ -27632,9 +27729,6 @@ /turf/open/floor/iron, /area/station/command/heads_quarters/qm) "hQz" = ( -/obj/structure/railing{ - dir = 8 - }, /obj/effect/turf_decal/trimline/dark_red/warning{ dir = 8 }, @@ -28589,6 +28683,15 @@ "igy" = ( /turf/closed/wall, /area/station/engineering/supermatter/room) +"igG" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "igL" = ( /obj/machinery/computer/operating{ dir = 8 @@ -28772,9 +28875,17 @@ /obj/effect/landmark/lift_id{ specific_lift_id = "tram_cargo_lift" }, -/obj/structure/railing{ +/obj/effect/landmark/lift_id{ + specific_lift_id = "tram_cargo_lift" + }, +/obj/effect/turf_decal/trimline/dark_red/warning{ dir = 8 }, +/obj/machinery/elevator_control_panel/directional/west{ + linked_elevator_id = "tram_cargo_lift"; + preset_destination_names = list("2"="Lower Deck","3"="Upper Deck"); + req_access = list("mining") + }, /turf/open/floor/plating/elevatorshaft, /area/station/cargo/miningdock) "iko" = ( @@ -29575,7 +29686,6 @@ dir = 10 }, /obj/structure/industrial_lift/public, -/obj/structure/railing, /turf/open/floor/plating/elevatorshaft, /area/station/commons/dorms) "ixq" = ( @@ -29596,11 +29706,15 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/port/central) "ixs" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/crate_empty, -/turf/open/floor/iron/smooth, -/area/station/maintenance/department/cargo) +/obj/machinery/light/neon_lining{ + icon_state = "pink2_1" + }, +/obj/machinery/light/neon_lining{ + dir = 8; + icon_state = "pink2_1" + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "ixu" = ( /obj/structure/closet/crate/science{ name = "MOD core crate" @@ -30790,6 +30904,9 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science) +"iTi" = ( +/turf/closed/wall, +/area/station/bitrunning/den) "iTm" = ( /obj/structure/table/glass, /obj/item/storage/pill_bottle/mannitol, @@ -31425,6 +31542,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison/safe) +"jcJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + location = "QM #1" + }, +/obj/effect/turf_decal/tile/brown/fourcorners, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #1"; + suffix = "#1" + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/drone_bay) "jcM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/yellow/warning{ @@ -31495,9 +31626,6 @@ dir = 9 }, /obj/structure/industrial_lift/public, -/obj/structure/railing{ - dir = 9 - }, /turf/open/floor/plating/elevatorshaft, /area/station/cargo/miningdock) "jdZ" = ( @@ -32930,7 +33058,6 @@ /turf/open/floor/iron, /area/station/security/prison) "jAH" = ( -/obj/structure/railing, /obj/effect/turf_decal/trimline/dark_red/warning{ dir = 10 }, @@ -33556,7 +33683,6 @@ /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "jMr" = ( -/obj/structure/railing, /obj/effect/turf_decal/trimline/dark_red/warning, /obj/structure/industrial_lift/public, /turf/open/floor/plating/elevatorshaft, @@ -33995,12 +34121,17 @@ /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/lesser) "jTQ" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 +/obj/structure/railing{ + layer = 3.1; + dir = 4 }, -/obj/effect/turf_decal/trimline/brown/filled/line, -/turf/open/floor/iron, -/area/station/cargo/storage) +/obj/machinery/netpod, +/obj/machinery/light/neon_lining{ + dir = 1; + icon_state = "pink2_1" + }, +/turf/open/floor/carpet/neon/simple/purple/nodots, +/area/station/bitrunning/den) "jUa" = ( /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 4 @@ -35473,14 +35604,15 @@ /turf/open/floor/iron, /area/station/hallway/secondary/service) "ksx" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=1"; - location = "QM #5" +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 1 }, -/obj/effect/turf_decal/tile/brown/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/storage) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/neon_lining{ + icon_state = "pink2_1" + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "ksP" = ( /obj/effect/turf_decal/siding/thinplating/corner{ dir = 1 @@ -35676,8 +35808,11 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/table, /obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/warehouse) "kye" = ( @@ -36137,9 +36272,6 @@ dir = 6 }, /obj/structure/industrial_lift/public, -/obj/structure/railing{ - dir = 6 - }, /turf/open/floor/plating/elevatorshaft, /area/station/commons/dorms) "kFJ" = ( @@ -37962,14 +38094,31 @@ /turf/open/floor/iron, /area/station/hallway/secondary/entry) "leN" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=1"; - location = "QM #4" +/obj/structure/table/reinforced, +/obj/item/reagent_containers/cup/glass/mug/coco{ + pixel_x = -7; + pixel_y = 7 }, -/obj/effect/turf_decal/tile/brown/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/storage) +/obj/item/reagent_containers/cup/glass/mug/coco{ + pixel_x = -6; + pixel_y = -1 + }, +/obj/item/folder/yellow{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/pen{ + pixel_x = 6 + }, +/obj/machinery/light/neon_lining{ + icon_state = "pink2_1" + }, +/obj/machinery/light/neon_lining{ + dir = 4; + icon_state = "pink2_1" + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "leV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/maintenance_hatch, @@ -39592,6 +39741,16 @@ }, /obj/structure/sign/clock/directional/west, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + location = "QM #6" + }, +/obj/effect/turf_decal/tile/brown/fourcorners, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #6"; + suffix = "#6" + }, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) "lIQ" = ( @@ -40275,6 +40434,9 @@ /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) "lTP" = ( @@ -46119,6 +46281,16 @@ "nPe" = ( /turf/open/floor/carpet, /area/station/medical/psychology) +"nPj" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "nPp" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -46207,13 +46379,17 @@ dir = 1 }, /obj/structure/industrial_lift/public, -/obj/structure/railing{ - dir = 8 - }, /obj/machinery/elevator_control_panel/directional/west{ linked_elevator_id = "tram_perma_lift"; preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") }, +/obj/effect/turf_decal/caution/stand_clear/red{ + dir = 1 + }, +/obj/machinery/elevator_control_panel/directional/west{ + linked_elevator_id = "tram_perma_lift"; + preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") + }, /turf/open/floor/plating/elevatorshaft, /area/station/security/execution/transfer) "nQo" = ( @@ -46376,6 +46552,15 @@ }, /turf/open/floor/iron/white, /area/station/security/medical) +"nSC" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "nSI" = ( /turf/closed/wall/r_wall, /area/station/commons/vacant_room/commissary) @@ -46608,7 +46793,6 @@ /obj/effect/turf_decal/siding/thinplating{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/storage) "nXn" = ( @@ -47524,7 +47708,6 @@ dir = 5 }, /obj/structure/industrial_lift/public, -/obj/structure/railing, /turf/open/floor/plating/elevatorshaft, /area/station/commons/dorms) "onc" = ( @@ -48586,19 +48769,17 @@ /turf/open/floor/iron/freezer, /area/station/commons/toilet) "oHi" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=1"; - location = "QM #6" +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 }, -/mob/living/simple_animal/bot/mulebot{ - home_destination = "QM #6"; - suffix = "#6" +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/bitrunner, +/obj/machinery/light/neon_lining{ + icon_state = "pink2_1" }, -/obj/effect/turf_decal/tile/brown/fourcorners, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron, -/area/station/cargo/storage) +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "oHp" = ( /obj/structure/bookcase/random/nonfiction, /turf/open/floor/wood/large, @@ -51584,7 +51765,6 @@ dir = 6 }, /obj/structure/industrial_lift/public, -/obj/structure/railing, /turf/open/floor/plating/elevatorshaft, /area/station/cargo/miningdock) "pFw" = ( @@ -52427,6 +52607,16 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"pSk" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/effect/landmark/start/bitrunner, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "pSr" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 9 @@ -53221,6 +53411,16 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/crew_quarters/dorms) +"qgM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/drone_bay) "qgP" = ( /obj/structure/table, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -56397,18 +56597,9 @@ /area/station/science/xenobiology) "rec" = ( /obj/effect/turf_decal/delivery, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=2"; - location = "QM #3" - }, -/mob/living/simple_animal/bot/mulebot{ - home_destination = "QM #3"; - suffix = "#3" - }, /obj/effect/turf_decal/tile/brown/fourcorners, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron, -/area/station/cargo/storage) +/turf/closed/wall, +/area/station/bitrunning/den) "rem" = ( /obj/machinery/button/door/directional/west{ id = "private_e"; @@ -56450,7 +56641,6 @@ dir = 10 }, /obj/structure/industrial_lift/public, -/obj/structure/railing, /turf/open/floor/plating/elevatorshaft, /area/station/cargo/miningdock) "rfk" = ( @@ -58511,6 +58701,12 @@ }, /obj/structure/sign/calendar/directional/west, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + location = "QM #5" + }, +/obj/effect/turf_decal/tile/brown/fourcorners, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) "rPc" = ( @@ -58950,13 +59146,14 @@ /turf/open/floor/iron, /area/station/commons/fitness/recreation) "rXQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Cargo Storage Maintenance Hatch" +/obj/machinery/netpod, +/obj/item/radio/intercom/directional/north, +/obj/machinery/light/neon_lining{ + dir = 1; + icon_state = "pink2_1" }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/iron/smooth, -/area/station/maintenance/department/cargo) +/turf/open/floor/carpet/neon/simple/purple/nodots, +/area/station/bitrunning/den) "rYd" = ( /obj/structure/bodycontainer/morgue{ dir = 2 @@ -59676,9 +59873,6 @@ /turf/open/floor/iron, /area/station/cargo/storage) "skh" = ( -/obj/structure/railing{ - dir = 1 - }, /obj/effect/turf_decal/siding/thinplating{ dir = 4 }, @@ -60153,6 +60347,13 @@ "ssA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/light/small/directional/north, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) "ssC" = ( @@ -60495,9 +60696,6 @@ }, /area/station/service/chapel) "sxL" = ( -/obj/structure/railing{ - dir = 8 - }, /obj/effect/turf_decal/trimline/dark_red/warning{ dir = 8 }, @@ -63524,7 +63722,9 @@ /turf/open/floor/iron, /area/station/engineering/engine_smes) "tte" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, /turf/open/floor/iron, /area/station/cargo/storage) "tth" = ( @@ -63764,10 +63964,13 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "txd" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/maintenance/department/cargo) +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil/streak, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "txh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -64570,12 +64773,14 @@ /turf/open/floor/iron, /area/station/tcommsat/computer) "tLu" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/crate_empty, -/obj/effect/spawner/random/maintenance/three, -/turf/open/floor/iron/smooth, -/area/station/maintenance/department/cargo) +/obj/machinery/computer/quantum_console{ + dir = 1 + }, +/obj/machinery/light/neon_lining{ + icon_state = "pink2_1" + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "tLz" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, @@ -65064,6 +65269,23 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"tUd" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/neon_lining{ + dir = 8; + icon_state = "pink2_1" + }, +/obj/machinery/light/neon_lining{ + dir = 1; + icon_state = "pink2_1" + }, +/obj/machinery/computer/order_console/bitrunning, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/bitrunning/den) "tUH" = ( /obj/structure/rack, /obj/item/clothing/under/color/blue, @@ -67413,9 +67635,6 @@ dir = 5 }, /obj/structure/industrial_lift/public, -/obj/structure/railing{ - dir = 1 - }, /turf/open/floor/plating/elevatorshaft, /area/station/cargo/miningdock) "uHb" = ( @@ -68648,7 +68867,6 @@ /turf/open/floor/iron, /area/station/commons/fitness/recreation) "uZy" = ( -/obj/structure/railing, /obj/effect/turf_decal/siding/thinplating{ dir = 4 }, @@ -70049,6 +70267,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/foyer) +"vsN" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/door/airlock/mining/glass{ + name = "MULE Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "vsU" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -70210,6 +70441,15 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron, /area/station/cargo/office) +"vwc" = ( +/obj/machinery/elevator_control_panel{ + layer = 3.1; + linked_elevator_id = "tram_xeno_lift"; + pixel_y = 2; + preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") + }, +/turf/closed/wall, +/area/station/science/xenobiology) "vwd" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 10 @@ -70281,9 +70521,6 @@ dir = 4 }, /obj/structure/industrial_lift/public, -/obj/structure/railing{ - dir = 4 - }, /turf/open/floor/plating/elevatorshaft, /area/station/commons/dorms) "vyo" = ( @@ -71806,9 +72043,6 @@ dir = 9 }, /obj/structure/industrial_lift/public, -/obj/structure/railing{ - dir = 1 - }, /turf/open/floor/plating/elevatorshaft, /area/station/commons/dorms) "vUu" = ( @@ -73486,9 +73720,6 @@ dir = 6 }, /obj/structure/industrial_lift/public, -/obj/structure/railing{ - dir = 6 - }, /obj/effect/landmark/lift_id{ specific_lift_id = "tram_perma_lift" }, @@ -74258,9 +74489,6 @@ /turf/open/floor/iron, /area/station/command/heads_quarters/ce) "wIt" = ( -/obj/structure/railing{ - dir = 9 - }, /obj/effect/turf_decal/trimline/dark_red/warning{ dir = 9 }, @@ -75408,7 +75636,11 @@ linked_elevator_id = "tram_dorm_lift"; preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") }, -/obj/structure/railing, +/obj/effect/turf_decal/trimline/dark_red/warning, +/obj/machinery/elevator_control_panel/directional/south{ + linked_elevator_id = "tram_dorm_lift"; + preset_destination_names = list("2"="Lower Deck","3"="Upper Deck") + }, /turf/open/floor/plating/elevatorshaft, /area/station/commons/dorms) "xhd" = ( @@ -76159,6 +76391,18 @@ "xvl" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/foyer) +"xvv" = ( +/obj/machinery/netpod, +/obj/machinery/airalarm/directional/north, +/obj/machinery/light/neon_lining{ + dir = 1; + icon_state = "pink2_1" + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/carpet/neon/simple/purple/nodots, +/area/station/bitrunning/den) "xvC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/garbage, @@ -76653,16 +76897,19 @@ /turf/closed/wall, /area/station/security/processing) "xDW" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "MULE Storage" - }, /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 }, /obj/effect/turf_decal/trimline/brown/filled/line, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/mining/glass{ + name = "Bitrunning Den" + }, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, /turf/open/floor/iron, -/area/station/cargo/storage) +/area/station/bitrunning/den) "xEo" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/captain) @@ -77720,9 +77967,6 @@ dir = 1 }, /obj/structure/industrial_lift/public, -/obj/structure/railing{ - dir = 1 - }, /turf/open/floor/plating/elevatorshaft, /area/station/commons/dorms) "xXL" = ( @@ -124401,7 +124645,7 @@ hDT keT iEF fof -jiQ +vwc sXX akC kMh @@ -186525,11 +186769,11 @@ aaa aaa aaa aaa -lZW -lZW -lZW -lZW -lZW +iTi +iTi +iTi +iTi +iTi aaa aaa aaa @@ -186782,11 +187026,11 @@ aaa aaa aaa aaa -lZW -ixs +iTi +tUd eyl ixs -lZW +iTi lZW lZW lZW @@ -187039,11 +187283,11 @@ aaa aaa aaa aaa -lZW -sAO +iTi +xvv txd tLu -lZW +iTi vSI vSI vSI @@ -187295,12 +187539,12 @@ aac aaa aaa aaa -cTU -cTU +aaa +iTi rXQ -cTU -cTU -cTU +nPj +gmI +iTi vSI vSI vSI @@ -187552,12 +187796,12 @@ aaa aaa aaa aaa -cTU +iTi rec jTQ oHi -cTU -cTU +iTi +iTi ohS eaI ohS @@ -187809,11 +188053,11 @@ aac aaa aaa aaa -cTU +iTi aeA -jTQ +nSC ksx -cTU +iTi exr pZA uax @@ -188066,11 +188310,11 @@ aac aac aaa aaa -cTU +iTi afk -jTQ +aTR leN -cTU +iTi kqy pZA uax @@ -188323,11 +188567,11 @@ aac aaa aaa cTU -cTU -ohS +iTi +bub xDW -ohS -cTU +bub +iTi nnb pZA ayr @@ -188583,7 +188827,7 @@ cTU aSo tAJ lTM -axF +pSk axF rwo dij @@ -188839,11 +189083,11 @@ aaa akr tjS hFV -gDr -uax -uax -uax -uax +igG +dzw +dzw +dzw +dzw gUL foU dzw @@ -189683,7 +189927,7 @@ eJQ bNx aSt aSt -qVr +cyO aaa aaa aaa @@ -191406,10 +191650,10 @@ aac aac aac xxZ -cTU -cTU -cTU -cTU +udQ +udQ +udQ +udQ udQ axN pxD @@ -191922,9 +192166,9 @@ aac xxZ mhQ ssA -bLq +qgM eab -udQ +vsN kyc kXr aye @@ -192179,8 +192423,8 @@ aac xxZ mhQ foa -mhQ -mhQ +cSc +jcJ udQ kSa cDP @@ -192693,7 +192937,7 @@ aac xxZ mhQ mhQ -bLq +mhQ mhQ xxZ xxZ diff --git a/_maps/multiz_debug.json b/_maps/multiz_debug.json index eaa71b7e2208..b380a2b7fd0a 100644 --- a/_maps/multiz_debug.json +++ b/_maps/multiz_debug.json @@ -5,17 +5,17 @@ "map_file": "multiz.dmm", "traits": [ { - "Up": 1, + "Up": true, "Linkage": "Cross" }, { - "Up": 1, - "Down": -1, + "Up": true, + "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" }, { - "Down": -1, + "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" } diff --git a/_maps/northstar.json b/_maps/northstar.json index c4b6915c646d..0dc25fd0df2f 100644 --- a/_maps/northstar.json +++ b/_maps/northstar.json @@ -14,23 +14,23 @@ "space_empty_levels": 2, "traits": [ { - "Up": 1, + "Up": true, "Linkage": "Cross" }, { - "Up": 1, - "Down": -1, + "Up": true, + "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" }, { - "Up": 1, - "Down": -1, + "Up": true, + "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" }, { - "Down": -1, + "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" } diff --git a/_maps/safehouses/README.md b/_maps/safehouses/README.md new file mode 100644 index 000000000000..8027ea38e211 --- /dev/null +++ b/_maps/safehouses/README.md @@ -0,0 +1,17 @@ +# Safe House + +## Creating a new safe house + +1. Create a new map inside the `_maps\safe_houses` folder using the TGM format. +2. Create a new dm file inside `modules\bitrunning\virtual_domain\safe_houses` folder.. +4. Place exit and goal landmarks (obj/effect/landmark/bitrunning/..). Generally, 3 exits and 2 goals are ok. +5. Ideally, leave 3 spaces for gear. This has usually been xy [1x1] [1x2] [1x3] + +## Notes + +- Safe houses are intended to be 7x6 in size. You're not technically limited to this, but consider maps other maps might be using this size if you want it to be modular. +- Consider that avatars are not invincible and still require air. If you're making a safe house, it should start with an area that accommodates for this. +- For compatibility, your safe house should have a route open from the top center xy [3x0] of the map. +- If you want a custom safehouse for a custom map with no modularity, no problem. Make whatever sizes you want, just ensure there are exit and goal effects placed. +- Some maps can alter what is spawned into the safehouse by placing objects in the safehouse area. I'm using the left corner, starting from the top, for things like space gear. + diff --git a/_maps/safehouses/TEMPLATES/TEMPLATE.dmm b/_maps/safehouses/TEMPLATES/TEMPLATE.dmm new file mode 100644 index 000000000000..c8e5059f0d01 --- /dev/null +++ b/_maps/safehouses/TEMPLATES/TEMPLATE.dmm @@ -0,0 +1,82 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"c" = ( +/obj/effect/mapping_helpers/airlock/access/all, +/obj/machinery/door/airlock/external/glass, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"p" = ( +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"v" = ( +/obj/effect/bitrunning/exit_spawn, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"N" = ( +/obj/effect/bitrunning/goal_turf, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"R" = ( +/turf/closed/wall, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +R +R +a +a +R +R +"} +(2,1,1) = {" +a +p +p +p +p +R +"} +(3,1,1) = {" +R +p +p +p +v +a +"} +(4,1,1) = {" +c +p +p +p +v +R +"} +(5,1,1) = {" +R +p +p +p +v +a +"} +(6,1,1) = {" +a +p +N +N +p +R +"} +(7,1,1) = {" +R +R +a +a +R +R +"} diff --git a/_maps/safehouses/den.dmm b/_maps/safehouses/den.dmm new file mode 100644 index 000000000000..8fcbf95f552f --- /dev/null +++ b/_maps/safehouses/den.dmm @@ -0,0 +1,217 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/south, +/turf/open/floor/pod, +/area/virtual_domain/safehouse) +"c" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/east, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"e" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/spawner/random/food_or_drink/snack{ + pixel_x = 4; + pixel_y = 2 + }, +/turf/open/floor/pod/dark, +/area/virtual_domain/safehouse) +"i" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "safehouseshutter" + }, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"p" = ( +/turf/open/floor/pod, +/area/virtual_domain/safehouse) +"r" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 9 + }, +/turf/open/floor/pod/dark, +/area/virtual_domain/safehouse) +"u" = ( +/obj/structure/railing, +/obj/effect/turf_decal/siding/dark, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"z" = ( +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 4 + }, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/pod/light, +/area/virtual_domain/safehouse) +"C" = ( +/turf/closed/wall, +/area/virtual_domain/safehouse) +"D" = ( +/obj/effect/decal/cleanable/generic, +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 1 + }, +/turf/open/floor/pod, +/area/virtual_domain/safehouse) +"E" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/generic, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/pod/light, +/area/virtual_domain/safehouse) +"G" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "safehouseshutter" + }, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"I" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 5 + }, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/pod/light, +/area/virtual_domain/safehouse) +"J" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "safehouseshutter" + }, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"K" = ( +/obj/effect/spawner/random/vending/colavend, +/obj/machinery/light/small/directional/south, +/turf/open/floor/pod, +/area/virtual_domain/safehouse) +"M" = ( +/turf/open/floor/pod/dark, +/area/virtual_domain/safehouse) +"O" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/virtual_domain/safehouse) +"R" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/virtual_domain/safehouse) +"U" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/departments/cargo/directional/west, +/obj/machinery/light/small/directional/west, +/turf/open/floor/pod, +/area/virtual_domain/safehouse) +"W" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "safehouseshutter" + }, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"X" = ( +/obj/machinery/door/airlock/grunge, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"Y" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/button/door{ + pixel_x = 4; + pixel_y = 4; + id = "safehouseshutter" + }, +/obj/effect/spawner/random/food_or_drink/refreshing_beverage{ + pixel_y = 6; + pixel_x = -10 + }, +/turf/open/floor/pod/dark, +/area/virtual_domain/safehouse) +"Z" = ( +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +C +C +C +G +G +C +"} +(2,1,1) = {" +W +U +p +M +K +C +"} +(3,1,1) = {" +C +r +O +O +E +i +"} +(4,1,1) = {" +X +D +Z +R +z +i +"} +(5,1,1) = {" +C +M +M +e +I +i +"} +(6,1,1) = {" +W +c +u +Y +a +C +"} +(7,1,1) = {" +C +C +C +J +J +C +"} diff --git a/_maps/safehouses/dig.dmm b/_maps/safehouses/dig.dmm new file mode 100644 index 000000000000..7fbbd3e55493 --- /dev/null +++ b/_maps/safehouses/dig.dmm @@ -0,0 +1,165 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/siding/yellow/corner, +/obj/effect/turf_decal/sand/plating, +/obj/item/flashlight/glowstick{ + on = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"c" = ( +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 8 + }, +/turf/open/misc/asteroid, +/area/virtual_domain/safehouse) +"h" = ( +/obj/effect/turf_decal/loading_area, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"i" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/decal/remains/xeno/larva, +/turf/open/misc/asteroid, +/area/virtual_domain/safehouse) +"l" = ( +/obj/structure/table, +/obj/item/coin/gold{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/flashlight/lantern{ + pixel_y = 8; + pixel_x = 4; + on = 1 + }, +/turf/open/misc/asteroid, +/area/virtual_domain/safehouse) +"o" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/misc/asteroid, +/area/virtual_domain/safehouse) +"u" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow, +/obj/effect/decal/cleanable/oil/streak, +/turf/open/misc/asteroid, +/area/virtual_domain/safehouse) +"x" = ( +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"A" = ( +/turf/closed/wall/rock, +/area/virtual_domain/safehouse) +"B" = ( +/turf/open/misc/asteroid, +/area/virtual_domain/safehouse) +"H" = ( +/turf/closed/mineral/asteroid, +/area/virtual_domain/safehouse) +"I" = ( +/obj/machinery/door/airlock/maintenance/glass, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"M" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/decal/remains/xeno, +/turf/open/misc/asteroid, +/area/virtual_domain/safehouse) +"N" = ( +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/sand/plating, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"S" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/loading_area, +/obj/effect/turf_decal/box/corners, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"T" = ( +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/misc/asteroid, +/area/virtual_domain/safehouse) +"U" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/turf/open/misc/asteroid, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +H +H +A +A +H +H +"} +(2,1,1) = {" +A +N +x +a +H +A +"} +(3,1,1) = {" +A +i +U +u +h +A +"} +(4,1,1) = {" +I +B +B +M +S +A +"} +(5,1,1) = {" +A +l +B +c +o +H +"} +(6,1,1) = {" +A +A +T +T +T +A +"} +(7,1,1) = {" +H +A +H +H +A +A +"} diff --git a/_maps/safehouses/ice.dmm b/_maps/safehouses/ice.dmm new file mode 100644 index 000000000000..34b8affaaafa --- /dev/null +++ b/_maps/safehouses/ice.dmm @@ -0,0 +1,251 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/effect/spawner/structure/window/ice, +/turf/open/floor/plating/snowed, +/area/virtual_domain/safehouse) +"c" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/east, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"f" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/snowed, +/area/virtual_domain/safehouse) +"g" = ( +/obj/effect/spawner/structure/window/ice, +/obj/structure/barricade/wooden/crude/snow, +/turf/open/floor/plating/snowed, +/area/virtual_domain/safehouse) +"i" = ( +/turf/closed/wall/ice, +/area/virtual_domain/safehouse) +"m" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 1 + }, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/pod, +/area/virtual_domain/safehouse) +"n" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/rack, +/obj/item/grown/log, +/obj/item/grown/log, +/obj/item/grown/log, +/obj/item/hatchet/wooden, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"o" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"p" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"u" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"v" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 5 + }, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/pod, +/area/virtual_domain/safehouse) +"x" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/vending/coffee, +/turf/open/floor/plating/snowed, +/area/virtual_domain/safehouse) +"z" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating/snowed, +/area/virtual_domain/safehouse) +"A" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/snowed, +/area/virtual_domain/safehouse) +"B" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/snowed, +/area/virtual_domain/safehouse) +"C" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = 7; + pixel_y = 13 + }, +/obj/item/reagent_containers/cup/glass/coffee/no_lid{ + pixel_x = -4; + pixel_y = 14 + }, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"D" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/generic, +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 9 + }, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/pod, +/area/virtual_domain/safehouse) +"I" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"L" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/west, +/obj/machinery/smartfridge/drying_rack, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"O" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/airlock/freezer, +/obj/structure/fans/tiny, +/turf/open/floor/plating/snowed, +/area/virtual_domain/safehouse) +"S" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/wood, +/obj/item/trash/chips{ + pixel_x = 8; + pixel_y = 15 + }, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"W" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/crate/internals, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"Z" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +i +i +g +a +i +i +"} +(2,1,1) = {" +i +L +n +W +Z +i +"} +(3,1,1) = {" +a +x +u +I +D +i +"} +(4,1,1) = {" +O +z +B +I +m +i +"} +(5,1,1) = {" +a +f +A +C +v +i +"} +(6,1,1) = {" +i +o +p +S +c +i +"} +(7,1,1) = {" +i +i +g +g +i +i +"} diff --git a/_maps/safehouses/lavaland_boss.dmm b/_maps/safehouses/lavaland_boss.dmm new file mode 100644 index 000000000000..c40463dcd775 --- /dev/null +++ b/_maps/safehouses/lavaland_boss.dmm @@ -0,0 +1,239 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 1 + }, +/area/virtual_domain/safehouse) +"f" = ( +/turf/closed/wall, +/area/virtual_domain/safehouse) +"p" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 5 + }, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/iron/dark, +/area/virtual_domain/safehouse) +"v" = ( +/obj/structure/table, +/obj/item/borg/upgrade/modkit/damage{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/borg/upgrade/modkit/damage{ + pixel_y = 4; + pixel_x = 8 + }, +/obj/item/borg/upgrade/modkit/damage{ + pixel_x = 8 + }, +/obj/item/borg/upgrade/modkit/range{ + pixel_y = 8 + }, +/obj/item/borg/upgrade/modkit/range{ + pixel_y = 4 + }, +/obj/item/borg/upgrade/modkit/range, +/obj/item/borg/upgrade/modkit/cooldown{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/borg/upgrade/modkit/cooldown{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/borg/upgrade/modkit/cooldown{ + pixel_x = -8 + }, +/obj/item/reagent_containers/hypospray/medipen/survival/luxury{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/reagent_containers/hypospray/medipen/survival/luxury{ + pixel_x = 6 + }, +/turf/open/floor/iron/dark/textured_large, +/area/virtual_domain/safehouse) +"w" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/structure/railing, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"A" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/dark/smooth_edge, +/area/virtual_domain/safehouse) +"B" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 10 + }, +/obj/structure/table, +/obj/item/flashlight/lantern{ + pixel_x = 8; + pixel_y = null + }, +/obj/item/flashlight/lantern{ + pixel_y = 4 + }, +/obj/item/flashlight/lantern{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/clothing/glasses/meson/night, +/obj/item/clothing/glasses/meson/night, +/obj/item/clothing/glasses/meson/night, +/turf/open/floor/iron/dark, +/area/virtual_domain/safehouse) +"C" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/structure/closet, +/obj/item/gun/ballistic/rocketlauncher/unrestricted, +/obj/item/energy_katana, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, +/area/virtual_domain/safehouse) +"H" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Mining External Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all, +/obj/structure/fans/tiny, +/turf/open/floor/iron/dark/textured_large, +/area/virtual_domain/safehouse) +"K" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_edge, +/area/virtual_domain/safehouse) +"O" = ( +/obj/item/gun/energy/recharge/kinetic_accelerator{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/gun/energy/recharge/kinetic_accelerator{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/gun/energy/recharge/kinetic_accelerator{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/structure/closet, +/obj/item/kinetic_crusher, +/obj/item/kinetic_crusher, +/turf/open/floor/iron/dark/textured_large, +/area/virtual_domain/safehouse) +"P" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"S" = ( +/turf/open/floor/iron/dark/textured_large, +/area/virtual_domain/safehouse) +"T" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/structure/sign/departments/cargo/directional/south, +/obj/structure/closet, +/obj/item/gun/ballistic/automatic/l6_saw/unrestricted, +/obj/item/ammo_box/magazine/sniper_rounds, +/obj/item/gun/ballistic/rifle/sniper_rifle, +/turf/open/floor/iron/dark, +/area/virtual_domain/safehouse) +"X" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/virtual_domain/safehouse) +"Y" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/mining, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/virtual_domain/safehouse) +"Z" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/iron/dark, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +f +f +f +P +P +f +"} +(2,1,1) = {" +P +Z +Y +X +B +f +"} +(3,1,1) = {" +f +A +S +S +a +P +"} +(4,1,1) = {" +H +K +O +v +a +P +"} +(5,1,1) = {" +f +A +S +S +a +P +"} +(6,1,1) = {" +P +p +w +C +T +f +"} +(7,1,1) = {" +f +f +f +P +P +f +"} diff --git a/_maps/safehouses/mine.dmm b/_maps/safehouses/mine.dmm new file mode 100644 index 000000000000..551e2ca0c001 --- /dev/null +++ b/_maps/safehouses/mine.dmm @@ -0,0 +1,164 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 1 + }, +/area/virtual_domain/safehouse) +"f" = ( +/turf/closed/wall, +/area/virtual_domain/safehouse) +"p" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 5 + }, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/iron/dark, +/area/virtual_domain/safehouse) +"w" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"B" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 10 + }, +/obj/structure/table, +/obj/item/flashlight/lantern{ + pixel_x = 8; + pixel_y = null + }, +/obj/item/flashlight/lantern{ + pixel_y = 4 + }, +/obj/item/flashlight/lantern{ + pixel_x = -8; + pixel_y = 8 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain/safehouse) +"C" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/structure/railing, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"H" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Mining External Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all, +/obj/structure/fans/tiny, +/turf/open/floor/iron/dark/textured_large, +/area/virtual_domain/safehouse) +"K" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_edge, +/area/virtual_domain/safehouse) +"P" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"S" = ( +/turf/open/floor/iron/dark/textured_large, +/area/virtual_domain/safehouse) +"T" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/item/kirbyplants/random, +/obj/structure/sign/departments/cargo/directional/south, +/turf/open/floor/iron/dark, +/area/virtual_domain/safehouse) +"X" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/virtual_domain/safehouse) +"Y" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/mining, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/virtual_domain/safehouse) +"Z" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/obj/machinery/suit_storage_unit/mining, +/turf/open/floor/iron/dark, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +f +f +f +P +P +f +"} +(2,1,1) = {" +P +Z +Y +X +B +f +"} +(3,1,1) = {" +f +K +S +S +a +P +"} +(4,1,1) = {" +H +K +S +S +a +P +"} +(5,1,1) = {" +f +K +S +S +a +P +"} +(6,1,1) = {" +P +p +w +C +T +f +"} +(7,1,1) = {" +f +f +f +P +P +f +"} diff --git a/_maps/safehouses/shuttle.dmm b/_maps/safehouses/shuttle.dmm new file mode 100644 index 000000000000..92228c95bd3c --- /dev/null +++ b/_maps/safehouses/shuttle.dmm @@ -0,0 +1,228 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/wall/mineral/titanium, +/area/virtual_domain/safehouse) +"e" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"f" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"g" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"i" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"k" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"l" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"q" = ( +/obj/effect/turf_decal/stripes/end, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"r" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"t" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/virtual_domain/safehouse) +"u" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"x" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"y" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/airlock/shuttle/glass, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/sand/volcanic, +/obj/structure/fans/tiny, +/turf/open/floor/iron/white, +/area/virtual_domain/safehouse) +"A" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/computer{ + dir = 8; + name = "shuttle console"; + icon_screen = "shuttle" + }, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"E" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/decal/cleanable/generic, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"G" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"H" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"I" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/table/reinforced, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/clothing/mask/gas, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"L" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/effect/turf_decal/sand/volcanic, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"M" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"T" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"X" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +a +t +e +e +t +a +"} +(2,1,1) = {" +e +L +i +q +l +a +"} +(3,1,1) = {" +a +x +r +u +g +e +"} +(4,1,1) = {" +y +f +r +H +E +a +"} +(5,1,1) = {" +a +M +X +H +T +e +"} +(6,1,1) = {" +e +k +A +I +G +a +"} +(7,1,1) = {" +a +a +e +e +a +a +"} diff --git a/_maps/safehouses/shuttle_space.dmm b/_maps/safehouses/shuttle_space.dmm new file mode 100644 index 000000000000..a5afaa475c65 --- /dev/null +++ b/_maps/safehouses/shuttle_space.dmm @@ -0,0 +1,231 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"b" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"c" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"i" = ( +/turf/closed/wall/mineral/titanium/overspace, +/area/virtual_domain/safehouse) +"l" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"n" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/computer{ + dir = 8; + name = "shuttle console"; + icon_screen = "shuttle" + }, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"o" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"q" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"r" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"z" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"A" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/effect/turf_decal/sand/volcanic, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"B" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"D" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"E" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/airlock/shuttle/glass, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/sand/volcanic, +/obj/structure/fans/tiny, +/turf/open/floor/iron/white, +/area/virtual_domain/safehouse) +"G" = ( +/turf/closed/wall/mineral/titanium, +/area/virtual_domain/safehouse) +"H" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"I" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"L" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/table/reinforced, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 3 + }, +/obj/item/clothing/mask/gas, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"N" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/virtual_domain/safehouse) +"O" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"U" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"W" = ( +/obj/effect/turf_decal/stripes/end, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) +"Y" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/decal/cleanable/generic, +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/iron, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +i +N +a +a +N +i +"} +(2,1,1) = {" +a +A +o +W +D +G +"} +(3,1,1) = {" +G +I +H +U +r +a +"} +(4,1,1) = {" +E +z +H +b +Y +G +"} +(5,1,1) = {" +G +c +O +b +l +a +"} +(6,1,1) = {" +a +q +n +L +B +G +"} +(7,1,1) = {" +i +G +a +a +G +i +"} diff --git a/_maps/safehouses/test_only_safehouse.dmm b/_maps/safehouses/test_only_safehouse.dmm new file mode 100644 index 000000000000..c23f8c4a22b4 --- /dev/null +++ b/_maps/safehouses/test_only_safehouse.dmm @@ -0,0 +1,29 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/effect/landmark/bitrunning/cache_goal_turf, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"d" = ( +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"u" = ( +/turf/open/floor/plating, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +u +d +"} +(2,1,1) = {" +u +d +"} +(3,1,1) = {" +u +d +"} +(4,1,1) = {" +u +a +"} diff --git a/_maps/safehouses/wood.dmm b/_maps/safehouses/wood.dmm new file mode 100644 index 000000000000..441730c67cd4 --- /dev/null +++ b/_maps/safehouses/wood.dmm @@ -0,0 +1,110 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/indestructible/hotelwood, +/area/virtual_domain/safehouse) +"i" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"o" = ( +/turf/open/floor/carpet/green, +/area/virtual_domain/safehouse) +"s" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"v" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/table/wood, +/obj/item/newspaper, +/turf/open/indestructible/hotelwood, +/area/virtual_domain/safehouse) +"z" = ( +/obj/structure/sign/poster/random/directional/east, +/turf/open/indestructible/hotelwood, +/area/virtual_domain/safehouse) +"G" = ( +/turf/closed/wall/mineral/wood, +/area/virtual_domain/safehouse) +"J" = ( +/obj/structure/railing, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"T" = ( +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/indestructible/hotelwood, +/area/virtual_domain/safehouse) +"X" = ( +/obj/machinery/door/airlock/wood/glass, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/virtual_domain/safehouse) +"Z" = ( +/obj/machinery/light/small/directional/west, +/turf/open/indestructible/hotelwood, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +G +G +i +G +G +G +"} +(2,1,1) = {" +i +Z +a +a +Z +i +"} +(3,1,1) = {" +G +a +o +o +T +G +"} +(4,1,1) = {" +X +a +o +o +T +G +"} +(5,1,1) = {" +G +a +o +o +T +G +"} +(6,1,1) = {" +i +s +J +z +v +i +"} +(7,1,1) = {" +G +G +i +G +G +G +"} diff --git a/_maps/templates/lazy_templates/abductor_ships.dmm b/_maps/templates/lazy_templates/abductor_ships.dmm index 0e33b8d39224..4c7d2e172ff2 100644 --- a/_maps/templates/lazy_templates/abductor_ships.dmm +++ b/_maps/templates/lazy_templates/abductor_ships.dmm @@ -1,4 +1,10 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/open/water, +/area/awaymission/beach) +"ab" = ( +/turf/open/lava, +/area/awaymission/caves) "bX" = ( /turf/closed/indestructible/abductor{ icon_state = "alien11" @@ -592,3 +598,515 @@ bX Zf Xy "} + +(1,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(5,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(6,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(7,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,2) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} + +(1,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(2,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(3,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(4,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(5,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(6,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(7,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(8,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(9,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(10,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(11,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(12,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(13,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(14,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} +(15,1,3) = {" +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +"} diff --git a/_maps/tramstation.json b/_maps/tramstation.json index d580a7b832a2..4968e18e41b6 100644 --- a/_maps/tramstation.json +++ b/_maps/tramstation.json @@ -11,12 +11,12 @@ }, "traits": [ { - "Up": 1, + "Up": true, "Baseturf": "/turf/open/misc/asteroid/airless", "Linkage": "Cross" }, { - "Down": -1, + "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" } diff --git a/_maps/virtual_domains/README.md b/_maps/virtual_domains/README.md new file mode 100644 index 000000000000..a02d43e1575e --- /dev/null +++ b/_maps/virtual_domains/README.md @@ -0,0 +1,32 @@ +# Making new virtual domains + +## From scratch + +1. Create a new map using TGM format. It can be any size, but please, consider limiting to 75x75 max. +2. Ensure that the map has ONE tile marked with the safehouse bottom left landmark. If you're using modular safehouses, it will need to be a 7x6 area. +4. Provide a way for players to enter your new map via the north door, which is 4th tile over. +5. Enclose your area with a single wall binary closed wall. + +## From an existing map + +1. Create a new map using the existing map's size - give yourself enough room to enclose it with a binary wall. There's no need for any space outside of it, so ensure that it fits and is enclosed, nothing outside of this. +2. Copy and paste the existing map into it. +3. Find an accessible area for a safehouse, 7x6 - or with a custom, just ensure the necessary landmarks are placed. +4. Place a bottom left safehouse landmark somewhere on the map to load the safehouse. + +## BOTH. +1. You need to have one (1) way that the encrypted cache can spawn. This can be from a mob drop, a landmark (place a few, it'll pick one), or a signable landmark if you have a points system. +2. Make note of the size of the map. Make sure this is in the dm file. +3. Create the dm file that defines the map qualities. Examples are in the bitrunning file. + +### Notes + +You shouldn't need to fully enclose your map in 15 tiles of binary filler. Using one solid wall should do the trick. + +Adding some open tile padding around the safehouse is a good touch. About 7 tiles West/East for the visual effect of a larger map. + +If you want to add prep gear, you can do so within the safehouse's area as long you don't overlap with goal turfs or exit spawners. The top left corner is a good spot for this, with respect for the walls, therefore [1, 1], [1, 2], [1, 3] + +You can also create safehouses if you find yourself needing the same gear over and over again. There is a readme for that as well. + +Boss zones should give players pretty ample space, I've been using a 23x23 minimum area. diff --git a/_maps/virtual_domains/ash_drake.dmm b/_maps/virtual_domains/ash_drake.dmm new file mode 100644 index 000000000000..50fbac8696ab --- /dev/null +++ b/_maps/virtual_domains/ash_drake.dmm @@ -0,0 +1,1750 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"c" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"e" = ( +/obj/structure/marker_beacon/cerulean, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"f" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"g" = ( +/obj/structure/marker_beacon/lime, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"h" = ( +/obj/machinery/light/small/blacklight/directional/south, +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain/powered) +"i" = ( +/obj/structure/marker_beacon/jade, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"j" = ( +/obj/structure/marker_beacon/teal, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"l" = ( +/obj/structure/marker_beacon/bronze, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"q" = ( +/mob/living/simple_animal/hostile/megafauna/dragon/virtual_domain, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"s" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"u" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"v" = ( +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"G" = ( +/obj/structure/marker_beacon/purple, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"J" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"L" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"P" = ( +/obj/structure/marker_beacon/fuchsia, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Z" = ( +/obj/effect/mob_spawn/corpse/human/miner, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) + +(1,1,1) = {" +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +u +"} +(2,1,1) = {" +v +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +v +"} +(3,1,1) = {" +v +s +s +s +s +J +J +s +s +J +J +s +s +J +J +J +J +s +s +s +J +J +J +s +s +s +s +s +s +s +s +s +s +J +J +s +s +s +J +J +s +s +J +J +s +v +"} +(4,1,1) = {" +v +s +s +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +a +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +s +v +"} +(5,1,1) = {" +v +s +s +J +a +J +J +J +J +a +J +J +J +J +a +a +J +J +J +J +J +a +a +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +s +s +v +"} +(6,1,1) = {" +v +s +s +J +a +J +J +a +a +a +a +a +a +a +a +a +a +a +a +J +a +a +a +a +a +J +J +J +a +a +J +J +J +a +a +J +a +J +a +a +J +J +J +s +s +v +"} +(7,1,1) = {" +v +s +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +J +s +v +"} +(8,1,1) = {" +v +s +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +s +v +"} +(9,1,1) = {" +v +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +i +a +a +a +a +a +Z +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(10,1,1) = {" +v +s +J +J +J +a +a +a +a +a +a +G +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(11,1,1) = {" +v +s +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(12,1,1) = {" +v +s +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +J +s +v +"} +(13,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +a +a +g +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(14,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(15,1,1) = {" +v +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +c +c +c +c +c +L +a +a +J +J +s +v +"} +(16,1,1) = {" +v +s +J +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +c +c +c +c +c +c +a +a +J +J +s +v +"} +(17,1,1) = {" +v +s +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +l +a +a +c +c +c +c +c +c +a +a +J +J +s +v +"} +(18,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +q +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +c +c +c +c +c +c +a +J +J +s +s +v +"} +(19,1,1) = {" +v +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +c +c +c +c +c +c +a +a +J +J +s +v +"} +(20,1,1) = {" +v +s +J +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +c +c +c +c +c +c +a +a +J +J +s +v +"} +(21,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +e +a +a +a +a +a +a +a +a +a +a +a +a +h +c +c +c +c +c +f +a +a +J +s +s +v +"} +(22,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +s +s +v +"} +(23,1,1) = {" +v +s +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +s +s +v +"} +(24,1,1) = {" +v +s +J +J +a +a +a +a +j +a +a +a +a +a +P +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(25,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +J +s +v +"} +(26,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(27,1,1) = {" +v +s +s +J +J +J +a +a +a +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +a +a +a +a +a +a +a +J +J +s +v +"} +(28,1,1) = {" +v +s +J +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +J +s +v +"} +(29,1,1) = {" +v +s +J +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +s +v +"} +(30,1,1) = {" +v +s +s +J +J +J +J +a +a +J +J +J +a +a +a +a +J +J +J +a +a +a +J +J +J +a +a +a +J +J +a +a +a +a +a +a +J +J +a +a +a +J +J +s +s +v +"} +(31,1,1) = {" +v +s +s +a +J +J +J +J +J +J +J +J +J +a +a +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +a +a +a +J +J +J +J +J +J +J +J +J +s +v +"} +(32,1,1) = {" +v +s +s +a +J +J +J +J +J +J +J +J +J +J +J +J +J +a +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +s +v +"} +(33,1,1) = {" +v +s +s +s +s +s +J +J +s +s +s +s +J +J +s +s +s +s +s +s +J +J +s +s +s +s +J +J +s +s +s +s +J +J +J +s +s +s +s +s +s +J +J +J +s +v +"} +(34,1,1) = {" +v +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +v +"} +(35,1,1) = {" +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +"} diff --git a/_maps/virtual_domains/beach_bar.dmm b/_maps/virtual_domains/beach_bar.dmm new file mode 100644 index 000000000000..c64b07f12421 --- /dev/null +++ b/_maps/virtual_domains/beach_bar.dmm @@ -0,0 +1,2863 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ag" = ( +/turf/open/floor/carpet/red, +/area/virtual_domain/powered) +"as" = ( +/obj/structure/closet/crate/bin, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/trash/candy, +/obj/item/toy/talking/owl, +/obj/effect/turf_decal/sand, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"aw" = ( +/obj/machinery/grill, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"aE" = ( +/turf/open/floor/pod/light, +/area/virtual_domain/powered) +"aZ" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/closet/crate{ + name = "fuel crate" + }, +/obj/item/stack/sheet/mineral/coal/ten, +/obj/item/stack/sheet/mineral/coal/ten, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"bf" = ( +/mob/living/basic/crab{ + name = "Jonny" + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"bC" = ( +/obj/effect/turf_decal/sand, +/mob/living/basic/crab{ + name = "James" + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"bM" = ( +/mob/living/basic/crab{ + name = "Jon" + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"bQ" = ( +/obj/structure/fluff/beach_umbrella/cap, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"bZ" = ( +/obj/item/stack/sheet/iron/fifty, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"cb" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/pill/lsd, +/obj/item/reagent_containers/pill/lsd, +/obj/item/reagent_containers/pill/lsd, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"cv" = ( +/turf/open/floor/carpet/royalblue, +/area/virtual_domain/powered) +"cG" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/water/beach, +/area/virtual_domain/powered) +"db" = ( +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/vending_refill/cigarette, +/obj/item/vending_refill/boozeomat, +/obj/structure/closet/secure_closet{ + icon_state = "cabinet"; + name = "booze storage"; + req_access = list("bar") + }, +/obj/item/storage/backpack/duffelbag, +/obj/item/etherealballdeployer, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/colocup, +/obj/item/reagent_containers/cup/glass/colocup, +/obj/item/reagent_containers/cup/glass/colocup, +/obj/item/reagent_containers/cup/glass/colocup, +/obj/item/reagent_containers/cup/glass/colocup, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"di" = ( +/obj/machinery/vending/boozeomat, +/obj/effect/mapping_helpers/atom_injector/obj_flag{ + inject_flags = 1; + target_type = /obj/machinery/vending/boozeomat + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"dx" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/turf/open/floor/sepia, +/area/virtual_domain/powered) +"dI" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"ed" = ( +/obj/machinery/atmospherics/components/tank/air{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"er" = ( +/obj/structure/noticeboard/staff, +/turf/closed/wall/mineral/wood/nonmetal, +/area/virtual_domain/powered) +"es" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"eT" = ( +/obj/structure/table/wood/poker, +/obj/item/storage/dice, +/obj/item/stack/spacecash/c1000, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"eU" = ( +/turf/open/misc/beach/sand/coastline_b, +/area/virtual_domain/powered) +"fc" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/pill/happy, +/obj/item/toy/figure/bartender{ + pixel_x = -8; + pixel_y = -1 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain{ + pixel_y = 8; + pixel_x = 5 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"fr" = ( +/obj/item/melee/skateboard/hoverboard, +/obj/machinery/light/directional/west, +/turf/open/floor/pod/light, +/area/virtual_domain/powered) +"gh" = ( +/obj/structure/flora/bush/stalky/style_random, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/water/beach, +/area/virtual_domain/powered) +"gl" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"hk" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/pod/light, +/area/virtual_domain/powered) +"hx" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/wall/mineral/sandstone, +/area/virtual_domain/powered) +"hE" = ( +/obj/structure/sign/departments/restroom/directional/east, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"hG" = ( +/obj/machinery/door/airlock/sandstone{ + name = "Surfer Shack 1" + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"iz" = ( +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"iR" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/barman_recipes, +/obj/item/reagent_containers/cup/glass/shaker, +/obj/item/reagent_containers/cup/rag, +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"jc" = ( +/turf/open/floor/iron/stairs/right, +/area/virtual_domain/powered) +"jg" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/iron/grimy, +/area/virtual_domain/powered) +"jl" = ( +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"jy" = ( +/obj/effect/turf_decal/sand{ + density = 1 + }, +/obj/effect/decal/fakelattice, +/turf/open/floor/pod/light{ + density = 1 + }, +/area/virtual_domain/powered) +"ke" = ( +/obj/structure/marker_beacon/bronze, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"kn" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/obj/structure/chair/stool/bar/directional/west, +/turf/open/floor/sepia, +/area/virtual_domain/powered) +"kv" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"kG" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"kT" = ( +/obj/structure/chair/stool/bar/directional/south, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"lq" = ( +/obj/item/melee/skateboard/hoverboard, +/turf/open/floor/pod/light, +/area/virtual_domain/powered) +"lB" = ( +/obj/item/toy/seashell, +/obj/effect/turf_decal/sand, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"lS" = ( +/turf/open/floor/light/colour_cycle/dancefloor_a, +/area/virtual_domain/powered) +"ml" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"mG" = ( +/obj/structure/easel, +/obj/item/canvas/twentythree_twentythree, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"oP" = ( +/obj/structure/table/wood, +/obj/machinery/reagentgrinder, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"pr" = ( +/turf/template_noop, +/area/template_noop) +"pC" = ( +/obj/machinery/computer/arcade/battle, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"pT" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"qc" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"qW" = ( +/obj/item/melee/skateboard/hoverboard, +/mob/living/basic/chicken{ + name = "Chicken Joe" + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"rc" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"ri" = ( +/obj/structure/sign/poster/official/fruit_bowl, +/turf/closed/wall/mineral/wood/nonmetal, +/area/virtual_domain/powered) +"rm" = ( +/obj/item/storage/crayons, +/obj/structure/closet/crate/wooden, +/obj/item/canvas/twentythree_twentythree, +/obj/item/canvas/twentythree_twentythree, +/obj/item/canvas/twentythree_twentythree, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"rL" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"rT" = ( +/obj/item/toy/seashell, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"sj" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/pod/light, +/area/virtual_domain/powered) +"sT" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"tj" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Resort Lobby" + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"tZ" = ( +/obj/structure/toilet, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"ug" = ( +/obj/structure/closet/secure_closet{ + icon_state = "cabinet"; + name = "bartender's closet"; + req_access = list("bar") + }, +/obj/item/clothing/shoes/sandal{ + desc = "A very fashionable pair of flip-flops."; + name = "flip-flops" + }, +/obj/item/clothing/neck/beads, +/obj/item/clothing/glasses/sunglasses/reagent, +/obj/item/clothing/suit/costume/hawaiian, +/obj/machinery/light/small/directional/east, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"uk" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/shovel/spade, +/obj/item/reagent_containers/cup/bucket, +/obj/item/cultivator, +/turf/open/floor/iron/grimy, +/area/virtual_domain/powered) +"uq" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain, +/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain{ + pixel_x = -4; + pixel_y = 8 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"uI" = ( +/obj/structure/sign/warning/gas_mask/directional/west, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"uU" = ( +/obj/effect/turf_decal/sand, +/turf/open/floor/sepia, +/area/virtual_domain/powered) +"vq" = ( +/obj/machinery/oven/range, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"vv" = ( +/obj/structure/chair/stool/directional/south, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"vC" = ( +/obj/machinery/chem_dispenser/drinks/fullupgrade{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/machinery/light/small/directional/east, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"vN" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/pill/morphine, +/obj/item/reagent_containers/pill/morphine, +/obj/item/reagent_containers/pill/morphine, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"wb" = ( +/obj/structure/closet/crate/freezer{ + name = "Cooler" + }, +/obj/item/reagent_containers/cup/glass/ice, +/obj/item/reagent_containers/cup/glass/colocup, +/obj/item/reagent_containers/cup/glass/colocup, +/obj/item/reagent_containers/cup/glass/bottle/beer{ + desc = "Beer advertised to be the best in space."; + name = "Masterbrand Beer" + }, +/obj/item/reagent_containers/cup/glass/bottle/beer{ + desc = "Beer advertised to be the best in space."; + name = "Masterbrand Beer" + }, +/obj/item/reagent_containers/cup/glass/bottle/beer{ + desc = "Beer advertised to be the best in space."; + name = "Masterbrand Beer" + }, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/obj/item/reagent_containers/cup/glass/bottle/beer/light, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"wm" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Resort Casino" + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"wo" = ( +/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{ + dir = 1 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"ws" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Supply Room" + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"wD" = ( +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"xb" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"xq" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/megaphone, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"xw" = ( +/turf/open/floor/pod/dark, +/area/virtual_domain/powered) +"xJ" = ( +/obj/structure/closet/cabinet, +/obj/item/storage/backpack/duffelbag, +/obj/item/clothing/under/shorts/blue, +/obj/item/clothing/shoes/sandal{ + desc = "A very fashionable pair of flip-flops."; + name = "flip-flops" + }, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/neck/beads, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"xR" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north{ + layer = 2.9 + }, +/obj/structure/chair/stool/directional/south, +/obj/item/storage/backpack/duffelbag, +/obj/item/clothing/under/shorts/red, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"xW" = ( +/turf/open/space/basic, +/area/space) +"ya" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/pill/zoom, +/obj/item/reagent_containers/pill/zoom, +/obj/item/reagent_containers/pill/zoom, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"yi" = ( +/obj/structure/sink/kitchen/directional/west{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink" + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"yl" = ( +/obj/item/reagent_containers/cup/glass/colocup{ + pixel_x = -7; + pixel_y = -2 + }, +/obj/item/reagent_containers/cup/glass/colocup{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/glass/bottle/rum{ + pixel_x = 4; + pixel_y = -3 + }, +/turf/open/floor/carpet/red, +/area/virtual_domain/powered) +"ys" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/light/directional/east, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"yv" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/food_cart, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"yB" = ( +/obj/item/instrument/guitar, +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"yF" = ( +/obj/item/bedsheet/dorms{ + dir = 4 + }, +/obj/structure/bed{ + dir = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"yQ" = ( +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo"; + pixel_x = -4 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"yU" = ( +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"yX" = ( +/obj/structure/chair/stool/bar/directional/south, +/turf/open/floor/carpet/red, +/area/virtual_domain/powered) +"zw" = ( +/obj/structure/punching_bag, +/turf/open/floor/pod/dark, +/area/virtual_domain/powered) +"zI" = ( +/obj/structure/marker_beacon/indigo, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"zU" = ( +/obj/structure/flora/rock/pile/style_random, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Ae" = ( +/obj/structure/chair, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Al" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors/virtual_domain) +"An" = ( +/obj/structure/marker_beacon/yellow, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Au" = ( +/obj/structure/fluff/beach_umbrella/science, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"AI" = ( +/obj/structure/table/reinforced, +/obj/machinery/reagentgrinder, +/turf/open/floor/pod/light, +/area/virtual_domain/powered) +"Bk" = ( +/obj/structure/urinal/directional/north, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Br" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck/cas{ + pixel_x = -6 + }, +/obj/item/toy/cards/deck/cas/black{ + pixel_x = -6; + pixel_y = 2 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Bw" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"BD" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/condiment/saltshaker, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"BM" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/virtual_domain/powered) +"Cb" = ( +/obj/machinery/light/directional/north, +/mob/living/basic/crab{ + name = "Eddie" + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Cv" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/iron/grimy, +/area/virtual_domain/powered) +"CA" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/mob_spawn/ghost_role/human/beach/lifeguard, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"CG" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"CO" = ( +/obj/machinery/vending/dinnerware, +/obj/machinery/light/directional/east, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Db" = ( +/obj/machinery/barsign/all_access, +/turf/closed/wall/mineral/wood/nonmetal, +/area/virtual_domain/powered) +"Dk" = ( +/obj/structure/sign/warning/secure_area, +/turf/closed/wall/mineral/sandstone, +/area/virtual_domain/powered) +"Em" = ( +/obj/item/reagent_containers/condiment/enzyme{ + layer = 5 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 5 + }, +/obj/structure/table, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Eq" = ( +/obj/effect/mob_spawn/ghost_role/human/bartender{ + dir = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Ev" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"EH" = ( +/obj/machinery/deepfryer, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Fn" = ( +/turf/closed/wall/mineral/sandstone, +/area/virtual_domain/powered) +"FM" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"FQ" = ( +/obj/structure/table/reinforced, +/obj/item/secateurs, +/obj/item/reagent_containers/cup/bottle/nutrient/ez, +/turf/open/floor/pod/light, +/area/virtual_domain/powered) +"FS" = ( +/obj/effect/turf_decal/sand, +/obj/structure/sign/warning/no_smoking/circle/directional/east, +/obj/machinery/light/directional/east, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"FY" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Gt" = ( +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawcutlet, +/obj/item/food/meat/rawcutlet, +/obj/item/food/meat/slab/rawcrab, +/obj/item/food/meat/slab/rawcrab, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Gz" = ( +/obj/structure/flora/tree/palm, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"GA" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/item/bikehorn/airhorn, +/obj/structure/table/wood, +/obj/item/storage/medkit/regular, +/obj/item/storage/medkit/brute, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"GV" = ( +/obj/machinery/light/directional/south, +/turf/open/misc/beach/sand/coastline_b, +/area/virtual_domain/powered) +"Hs" = ( +/obj/machinery/shower/directional/west, +/turf/open/floor/iron/white, +/area/virtual_domain/powered) +"Ii" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/iron/stairs/left, +/area/virtual_domain/powered) +"Ir" = ( +/obj/machinery/vending/cola, +/obj/effect/turf_decal/sand, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Iv" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/condiment/peppermill, +/obj/item/reagent_containers/condiment/soysauce, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"IH" = ( +/obj/item/toy/beach_ball, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"IM" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/grimy, +/area/virtual_domain/powered) +"IP" = ( +/obj/machinery/vending/snack, +/obj/effect/turf_decal/sand, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Jt" = ( +/obj/item/reagent_containers/cup/glass/bottle/beer, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"JC" = ( +/obj/structure/fluff/beach_umbrella/engine, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"JY" = ( +/obj/structure/flora/rock/style_random, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"KZ" = ( +/obj/structure/flora/bush/stalky/style_random, +/turf/open/water/beach, +/area/virtual_domain/powered) +"Ll" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/structure/railing, +/turf/open/floor/sepia, +/area/virtual_domain/powered) +"Lu" = ( +/obj/machinery/light/directional/east, +/turf/open/misc/beach/sand/coastline_b, +/area/virtual_domain/powered) +"LD" = ( +/turf/open/floor/plating, +/area/virtual_domain/powered) +"LP" = ( +/obj/effect/turf_decal/sand, +/obj/structure/railing, +/turf/open/floor/sepia, +/area/virtual_domain/powered) +"LW" = ( +/obj/item/storage/cans/sixbeer, +/turf/open/floor/carpet/orange, +/area/virtual_domain/powered) +"Mp" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain{ + pixel_y = 7; + pixel_x = 4 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Mw" = ( +/obj/structure/chair/sofa/right/brown, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Mz" = ( +/obj/structure/chair/sofa/left/brown, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"MS" = ( +/obj/structure/mineral_door/wood{ + name = "Croupier's Booth" + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Ng" = ( +/obj/effect/spawner/structure/window, +/obj/structure/curtain, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Nr" = ( +/obj/machinery/light/directional/north, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"NM" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/food/grown/ambrosia/vulgaris, +/obj/item/food/grown/ambrosia/vulgaris, +/obj/item/food/grown/ambrosia/vulgaris, +/obj/item/food/grown/ambrosia/vulgaris, +/obj/item/food/grown/ambrosia/vulgaris, +/obj/item/food/grown/ambrosia/vulgaris, +/obj/item/food/grown/ambrosia/vulgaris, +/obj/item/food/grown/ambrosia/vulgaris, +/obj/item/food/grown/ambrosia/vulgaris, +/obj/item/food/grown/ambrosia/vulgaris, +/turf/open/floor/iron/grimy, +/area/virtual_domain/powered) +"NX" = ( +/obj/effect/landmark/bitrunning/loot_signal, +/turf/open/floor/light/colour_cycle/dancefloor_a, +/area/virtual_domain/powered) +"OE" = ( +/obj/effect/mob_spawn/ghost_role/human/beach{ + dir = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"OK" = ( +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"OR" = ( +/obj/machinery/light/directional/south, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"OW" = ( +/obj/structure/sink/kitchen/directional/east{ + desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; + name = "old sink" + }, +/turf/open/floor/pod/light, +/area/virtual_domain/powered) +"OZ" = ( +/obj/structure/marker_beacon/teal, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Pc" = ( +/obj/structure/chair/wood, +/obj/machinery/light/directional/west, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Pk" = ( +/obj/item/toy/dodgeball, +/obj/item/toy/dodgeball, +/obj/item/toy/dodgeball, +/obj/item/toy/dodgeball, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"PM" = ( +/obj/machinery/door/airlock/external/ruin, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Qb" = ( +/obj/machinery/griddle, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Qu" = ( +/obj/structure/curtain, +/turf/open/floor/iron/white, +/area/virtual_domain/powered) +"QO" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"QP" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Rx" = ( +/turf/open/floor/iron/stairs/medium, +/area/virtual_domain/powered) +"RL" = ( +/obj/structure/closet/cabinet, +/obj/item/storage/backpack/duffelbag, +/obj/item/clothing/under/shorts/purple, +/obj/item/clothing/shoes/cookflops{ + desc = "A very fashionable pair of flip flops."; + name = "flip-flops" + }, +/obj/item/clothing/glasses/sunglasses/big, +/obj/item/clothing/neck/beads, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"St" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/misc/beach/sand/coastline_b, +/area/virtual_domain/powered) +"SB" = ( +/obj/machinery/door/airlock/sandstone{ + name = "Resort Bathroom" + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"SD" = ( +/obj/machinery/door/airlock/sandstone{ + name = "Bar Access" + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"SY" = ( +/obj/machinery/door/airlock/sandstone{ + name = "Surfer Shack 2" + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"TG" = ( +/turf/open/floor/wood, +/area/virtual_domain/powered) +"TJ" = ( +/obj/structure/fluff/beach_umbrella/security, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"TN" = ( +/obj/structure/mirror/directional/west, +/obj/structure/sink/kitchen/directional/south, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"TR" = ( +/turf/open/floor/iron/grimy, +/area/virtual_domain/powered) +"Ud" = ( +/obj/effect/turf_decal/sand, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Uh" = ( +/turf/open/floor/iron/stairs/old, +/area/virtual_domain/powered) +"Uq" = ( +/obj/structure/weightmachine/weightlifter, +/turf/open/floor/pod/dark, +/area/virtual_domain/powered) +"UU" = ( +/obj/structure/flora/bush/large/style_random, +/obj/structure/flora/bush/jungle/a/style_random, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Ve" = ( +/obj/machinery/processor, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Vt" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/virtual_domain/powered) +"VA" = ( +/obj/machinery/computer/slot_machine, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"VH" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"VX" = ( +/obj/structure/flora/bush/large/style_random, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"We" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/cooking_to_serve_man, +/obj/item/clothing/suit/apron/chef, +/obj/item/clothing/head/utility/chefhat, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Wg" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Ww" = ( +/turf/open/water/beach, +/area/virtual_domain/powered) +"WA" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/sand, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"WL" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"WO" = ( +/obj/structure/flora/bush/jungle/a/style_random, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"WP" = ( +/obj/machinery/light/directional/north, +/obj/machinery/washing_machine, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"WW" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/icecream_vat, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"WX" = ( +/obj/item/toy/plush/lizard_plushie/green{ + name = "Soaks-The-Rays" + }, +/turf/open/floor/carpet/orange, +/area/virtual_domain/powered) +"Xv" = ( +/obj/structure/table/wood, +/obj/structure/bedsheetbin, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"XL" = ( +/obj/machinery/light/directional/east, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"XP" = ( +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"XT" = ( +/obj/effect/turf_decal/sand, +/obj/structure/sign/departments/botany/directional/south, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Yi" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/item/toy/seashell, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Yq" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"YJ" = ( +/turf/open/floor/carpet/purple, +/area/virtual_domain/powered) +"YL" = ( +/obj/machinery/vending/cigarette/beach, +/obj/effect/turf_decal/sand, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"YN" = ( +/obj/effect/turf_decal/sand, +/obj/machinery/light/directional/west, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Zg" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Zp" = ( +/obj/machinery/light/directional/east, +/obj/structure/chair/stool/bar/directional/south, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Zt" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/pill/morphine, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"ZI" = ( +/obj/effect/turf_decal/sand, +/obj/item/coin/gold, +/obj/structure/railing, +/obj/machinery/media/jukebox, +/turf/open/floor/sepia, +/area/virtual_domain/powered) +"ZS" = ( +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/mayonnaise, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/turf/open/floor/wood, +/area/virtual_domain/powered) + +(1,1,1) = {" +pr +pr +pr +pr +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +kv +"} +(2,1,1) = {" +pr +pr +pr +pr +iz +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +iz +"} +(3,1,1) = {" +pr +pr +pr +pr +iz +Al +gl +gl +gl +gl +gl +Al +Al +gl +gl +gl +gl +gl +Al +Al +gl +gl +gl +Al +gl +gl +gl +gl +Al +Al +gl +gl +gl +Al +Al +gl +gl +gl +gl +Al +iz +"} +(4,1,1) = {" +pr +pr +pr +pr +iz +Al +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +Al +iz +"} +(5,1,1) = {" +pr +pr +pr +pr +iz +Al +gl +gl +gl +gl +gl +gl +gl +gl +gl +zI +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +Al +iz +"} +(6,1,1) = {" +pr +pr +pr +pr +iz +Al +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +OZ +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +Al +iz +"} +(7,1,1) = {" +pr +pr +pr +pr +iz +Al +gl +gl +gl +An +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +ke +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +ml +ml +ml +ml +ml +FM +gl +Al +iz +"} +(8,1,1) = {" +pr +pr +pr +pr +iz +Al +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +ml +ml +ml +ml +ml +ml +gl +Al +iz +"} +(9,1,1) = {" +pr +pr +pr +pr +iz +Al +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +gl +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +gl +gl +ml +ml +ml +ml +ml +ml +gl +Al +iz +"} +(10,1,1) = {" +pr +pr +pr +pr +iz +Al +Al +Al +Al +xb +xb +Vt +Al +Al +gl +gl +gl +Al +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Al +gl +gl +ml +ml +ml +ml +ml +ml +gl +Al +iz +"} +(11,1,1) = {" +iz +iz +iz +iz +iz +Al +Al +Al +Fn +PM +PM +Fn +Fn +Al +Al +Al +Fn +Fn +Fn +Pc +bf +Bw +Fn +Ev +Eq +iR +kG +di +Fn +hx +Al +gl +ml +ml +ml +ml +ml +ml +gl +Al +iz +"} +(12,1,1) = {" +iz +Al +Al +Al +Al +Al +Al +Al +Fn +pT +LD +LD +Fn +Fn +Dk +Fn +Fn +bQ +cv +wD +Bw +JY +Fn +db +TG +TG +TG +TG +wo +Fn +Al +gl +ml +ml +ml +ml +ml +ml +gl +Al +iz +"} +(13,1,1) = {" +iz +Al +Fn +Fn +Fn +Fn +Fn +Fn +Fn +LD +pT +LD +uI +LD +pT +PM +wD +wD +cv +wD +wD +OR +Fn +ug +TG +TG +TG +TG +vC +Fn +Al +gl +ml +ml +ml +ml +ml +sT +gl +Al +iz +"} +(14,1,1) = {" +iz +Al +Fn +VA +kT +TG +TG +Fn +Fn +Fn +yU +LD +QO +LD +LD +PM +wD +wD +wD +wD +wD +qc +Fn +Fn +SD +Mp +uq +fc +Fn +Fn +Al +gl +gl +gl +gl +gl +gl +gl +gl +Al +iz +"} +(15,1,1) = {" +iz +Al +Fn +VA +yX +ag +kT +Br +TG +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Gz +wD +Bw +rm +wD +wD +wD +Ii +dx +kn +kn +kn +Ll +Fn +Al +gl +gl +gl +gl +gl +gl +gl +gl +Al +iz +"} +(16,1,1) = {" +iz +Al +Fn +pC +yX +ag +kT +CG +kT +Fn +as +YL +Ir +IP +YN +wD +wD +wD +wD +mG +vv +Bw +wD +Rx +uU +lS +lS +lS +LP +Fn +Al +gl +gl +gl +gl +gl +gl +gl +gl +Al +iz +"} +(17,1,1) = {" +iz +Al +Fn +Mw +ag +ag +Zp +eT +TG +Fn +Ud +Ud +bC +Ud +Ud +wD +IH +wD +wD +Bw +wD +wD +wD +Rx +uU +lS +NX +lS +ZI +Fn +Al +gl +gl +gl +gl +gl +gl +gl +gl +Al +iz +"} +(18,1,1) = {" +iz +Al +Fn +Mz +TG +TG +Fn +Fn +MS +Fn +wD +wD +wD +Bw +wD +VX +wD +UU +wD +wD +wD +wD +wD +Rx +uU +lS +lS +lS +LP +Fn +Al +gl +gl +gl +gl +gl +gl +gl +gl +Al +iz +"} +(19,1,1) = {" +iz +Al +Fn +Fn +wm +wm +Fn +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +jc +uU +uU +uU +uU +LP +Fn +Fn +gl +gl +gl +gl +gl +gl +gl +gl +Al +iz +"} +(20,1,1) = {" +iz +Al +Fn +zU +wD +wD +wD +wD +WA +Ud +Ud +Ud +Ud +Ud +Ud +Ud +ys +wD +wD +TJ +wb +wD +wD +St +St +St +St +St +St +GV +Fn +gl +gl +Al +Al +gl +gl +Al +gl +Al +iz +"} +(21,1,1) = {" +iz +Al +Fn +wD +wD +Bw +wD +wD +BM +BM +BM +We +Zt +BD +Iv +BM +Db +Nr +wD +yl +ag +wD +wD +eU +KZ +Ww +Ww +Ww +cG +eU +Fn +Al +Al +Al +Al +Al +Al +Al +Al +Al +iz +"} +(22,1,1) = {" +iz +Al +Fn +Fn +wD +wD +wD +wD +BM +Zg +VH +TG +TG +TG +TG +Gt +BM +wD +wD +Au +wD +rT +wD +eU +Ww +Ww +Ww +Ww +Ww +eU +Fn +Al +iz +iz +iz +iz +iz +iz +iz +iz +iz +"} +(23,1,1) = {" +iz +Al +xb +Fn +Cb +wD +JC +wD +BM +EH +TG +ZS +BM +aw +TG +TG +ya +wD +wD +YJ +YJ +wD +wD +eU +Ww +Ww +Ww +Ww +Ww +eU +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(24,1,1) = {" +iz +Al +xb +Fn +wD +Gz +WX +wD +BM +Em +TG +TG +ri +Qb +TG +TG +cb +wD +wD +bQ +wD +wD +wD +eU +Ww +Ww +KZ +KZ +Ww +GV +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(25,1,1) = {" +iz +Al +xb +Fn +OK +Gz +LW +wD +BM +yQ +TG +oP +BM +vq +TG +TG +vN +wD +wD +XP +yB +wD +wD +eU +KZ +Ww +KZ +gh +Ww +eU +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(26,1,1) = {" +iz +Al +xb +Fn +Nr +wD +wD +wD +BM +Ve +rc +yi +TG +TG +TG +CO +BM +wD +Yi +XL +wD +wD +wD +eU +Ww +Ww +Ww +Ww +Ww +eU +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(27,1,1) = {" +iz +Al +Fn +Fn +Bw +wD +wD +wD +BM +BM +BM +BM +FY +BM +BM +BM +er +wD +GA +xq +jy +wD +wD +eU +Ww +cG +Ww +Ww +KZ +eU +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(28,1,1) = {" +iz +Al +Fn +Nr +wD +wD +Bw +wD +YN +Ud +WW +yv +Ud +Ud +Ud +Ud +YN +wD +xR +CA +Uh +wD +qW +eU +Ww +Ww +Ww +Ww +Ww +GV +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(29,1,1) = {" +iz +Al +Fn +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +wD +Jt +eU +eU +Lu +eU +eU +eU +eU +eU +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(30,1,1) = {" +iz +Al +Fn +tj +tj +Fn +VX +wD +wD +wD +wD +wD +XL +wD +wD +wD +wD +wD +wD +wD +wD +XT +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(31,1,1) = {" +iz +Al +Fn +TG +TG +Fn +Fn +jl +Fn +Fn +Ng +Fn +Fn +WO +wD +Bw +wD +wD +wD +wD +bM +Ud +aE +aE +aE +lq +fr +hk +Fn +Al +Al +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(32,1,1) = {" +iz +Al +Fn +TG +TG +TG +Fn +Fn +Fn +es +OE +yF +Fn +Fn +Ng +Fn +Fn +wD +wD +wD +Ae +Ud +zw +xw +Uq +aE +aE +aE +Fn +Fn +Al +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(33,1,1) = {" +iz +Al +Fn +WP +TG +TG +TG +TG +hG +TG +TG +TG +Fn +es +OE +yF +Fn +Gz +wD +wD +wD +Ud +xw +xw +xw +aE +aE +aE +OW +Fn +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(34,1,1) = {" +iz +Al +Fn +Xv +TG +hE +TG +TG +Fn +Wg +rc +xJ +Fn +TG +TG +dI +Fn +wD +wD +Bw +wD +lB +zw +xw +Uq +aE +FQ +aE +aE +jg +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(35,1,1) = {" +iz +Al +Fn +Fn +SB +Fn +WL +TG +Fn +Fn +Fn +Fn +Fn +Wg +TG +RL +Fn +Ud +Ud +Ud +Ud +FS +aE +aE +aE +aE +AI +sj +aE +NM +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(36,1,1) = {" +iz +Al +Fn +TN +TG +Fn +TG +TG +TG +TG +TG +TG +Fn +Fn +SY +Fn +Fn +tj +tj +Fn +ws +Fn +Fn +Fn +TR +aE +aE +aE +aE +uk +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(37,1,1) = {" +iz +Al +Fn +Bk +dI +Fn +Fn +Fn +QP +TG +TG +TG +TG +TG +TG +TG +TG +TG +TG +Fn +Pk +bZ +ed +Fn +Cv +Cv +IM +Cv +Cv +Fn +Fn +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(38,1,1) = {" +iz +Al +Fn +tZ +TG +Qu +Hs +Fn +Fn +Fn +TG +rc +TG +TG +TG +rL +rc +TG +TG +Fn +Yq +aZ +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Al +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(39,1,1) = {" +iz +Al +Fn +Fn +Fn +Fn +Fn +Fn +Al +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Al +Al +Al +Al +Al +Al +Al +Al +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(40,1,1) = {" +iz +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} +(41,1,1) = {" +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +iz +pr +pr +pr +pr +pr +pr +pr +xW +"} diff --git a/_maps/virtual_domains/blood_drunk_miner.dmm b/_maps/virtual_domains/blood_drunk_miner.dmm new file mode 100644 index 000000000000..c3369a1c822d --- /dev/null +++ b/_maps/virtual_domains/blood_drunk_miner.dmm @@ -0,0 +1,1887 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"b" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"c" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"d" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"f" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/block/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"h" = ( +/obj/machinery/light/small/blacklight/directional/south, +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain/powered) +"i" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"j" = ( +/obj/structure/marker_beacon/jade, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"k" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"l" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"m" = ( +/obj/structure/marker_beacon/olive, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"n" = ( +/obj/structure/marker_beacon/cerulean, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"o" = ( +/obj/structure/marker_beacon/yellow, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"q" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"r" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"s" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"t" = ( +/obj/structure/marker_beacon/indigo, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"u" = ( +/obj/structure/stone_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"v" = ( +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"w" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"x" = ( +/obj/structure/stone_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"y" = ( +/obj/structure/marker_beacon/violet, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"z" = ( +/obj/structure/stone_tile/block, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"A" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"C" = ( +/obj/effect/mob_spawn/corpse/human/miner, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"G" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"H" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"I" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"J" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"K" = ( +/obj/structure/marker_beacon/teal, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"L" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"O" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"P" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"S" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 6 + }, +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/virtual_domain, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"T" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"W" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"X" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Y" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Z" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) + +(1,1,1) = {" +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +d +"} +(2,1,1) = {" +v +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +v +"} +(3,1,1) = {" +v +s +s +s +s +J +J +s +s +J +J +s +s +J +J +J +J +s +s +s +J +J +J +s +s +s +s +s +s +s +s +s +s +J +J +s +s +s +J +J +s +s +J +J +s +v +"} +(4,1,1) = {" +v +s +s +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +a +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +s +v +"} +(5,1,1) = {" +v +s +s +J +a +J +J +J +J +a +J +J +J +J +a +a +J +J +J +J +J +a +a +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +s +s +v +"} +(6,1,1) = {" +v +s +s +J +a +J +J +a +a +a +a +a +a +a +a +a +a +a +a +J +a +a +a +a +a +J +J +J +a +a +J +J +J +a +a +J +a +J +a +a +J +J +J +s +s +v +"} +(7,1,1) = {" +v +s +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +J +s +v +"} +(8,1,1) = {" +v +s +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +s +v +"} +(9,1,1) = {" +v +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(10,1,1) = {" +v +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +t +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(11,1,1) = {" +v +s +s +J +J +J +a +a +a +y +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(12,1,1) = {" +v +s +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +C +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +J +s +v +"} +(13,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(14,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +T +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(15,1,1) = {" +v +s +J +J +J +a +a +a +a +a +a +a +a +a +a +X +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +c +c +c +c +c +L +a +a +J +J +s +v +"} +(16,1,1) = {" +v +s +J +J +J +J +a +a +a +a +a +a +a +T +W +a +r +a +i +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +c +c +c +c +c +c +a +a +J +J +s +v +"} +(17,1,1) = {" +v +s +s +J +J +J +a +a +a +a +a +a +a +a +I +b +k +l +x +a +T +k +a +a +a +m +a +a +a +a +a +o +a +a +c +c +c +c +c +c +a +a +J +J +s +v +"} +(18,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +a +P +S +A +O +u +r +k +a +a +a +a +a +a +a +a +a +a +a +c +c +c +c +c +c +a +J +J +s +s +v +"} +(19,1,1) = {" +v +s +J +J +J +a +a +a +a +a +a +a +a +k +G +H +x +f +k +a +Y +T +u +a +a +a +a +a +a +a +a +a +a +a +c +c +c +c +c +c +a +a +J +J +s +v +"} +(20,1,1) = {" +v +s +J +J +J +J +a +a +a +a +a +a +a +Y +x +a +Z +a +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +c +c +c +c +c +c +a +a +J +J +s +v +"} +(21,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +a +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +c +c +c +c +c +q +a +a +J +s +s +v +"} +(22,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +w +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +s +s +v +"} +(23,1,1) = {" +v +s +J +J +a +a +a +a +a +a +n +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +s +s +v +"} +(24,1,1) = {" +v +s +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +C +a +a +a +a +a +J +J +s +v +"} +(25,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +J +s +v +"} +(26,1,1) = {" +v +s +s +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +K +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(27,1,1) = {" +v +s +s +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +a +a +a +a +a +a +a +a +a +J +J +s +v +"} +(28,1,1) = {" +v +s +J +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +J +s +v +"} +(29,1,1) = {" +v +s +J +J +J +J +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +J +J +s +s +v +"} +(30,1,1) = {" +v +s +s +J +J +J +J +a +a +J +J +J +a +a +a +a +J +J +J +a +a +a +J +J +J +a +a +a +J +J +a +a +a +a +a +a +J +J +a +a +a +J +J +s +s +v +"} +(31,1,1) = {" +v +s +s +a +J +J +J +J +J +J +J +J +J +a +a +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +a +a +a +J +J +J +J +J +J +J +J +J +s +v +"} +(32,1,1) = {" +v +s +s +a +J +J +J +J +J +J +J +J +J +J +J +J +J +a +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +J +s +v +"} +(33,1,1) = {" +v +s +s +s +s +s +J +J +s +s +s +s +J +J +s +s +s +s +s +s +J +J +s +s +s +s +J +J +s +s +s +s +J +J +J +s +s +s +s +s +s +J +J +J +s +v +"} +(34,1,1) = {" +v +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +s +v +"} +(35,1,1) = {" +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +"} diff --git a/_maps/virtual_domains/bubblegum.dmm b/_maps/virtual_domains/bubblegum.dmm new file mode 100644 index 000000000000..3381b1735398 --- /dev/null +++ b/_maps/virtual_domains/bubblegum.dmm @@ -0,0 +1,2250 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"c" = ( +/obj/effect/mob_spawn/corpse/human/miner, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"d" = ( +/obj/structure/marker_beacon/jade, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"f" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"g" = ( +/obj/structure/marker_beacon/teal, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"p" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"r" = ( +/obj/structure/marker_beacon/fuchsia, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"w" = ( +/obj/machinery/light/small/blacklight/directional/south, +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain/powered) +"x" = ( +/obj/structure/marker_beacon/olive, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"z" = ( +/obj/structure/marker_beacon/purple, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"A" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"C" = ( +/mob/living/simple_animal/hostile/megafauna/bubblegum/virtual_domain, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"F" = ( +/turf/open/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"G" = ( +/obj/structure/marker_beacon/violet, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"I" = ( +/obj/structure/marker_beacon/bronze, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"M" = ( +/obj/structure/marker_beacon/indigo, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"R" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"S" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"T" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"W" = ( +/obj/structure/marker_beacon/cerulean, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"X" = ( +/obj/structure/marker_beacon/lime, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Y" = ( +/obj/structure/marker_beacon/yellow, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Z" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) + +(1,1,1) = {" +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +R +"} +(2,1,1) = {" +F +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +F +"} +(3,1,1) = {" +F +Z +a +a +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +a +a +a +a +a +a +a +a +Z +Z +a +a +a +a +a +a +Z +Z +Z +F +"} +(4,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(5,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +p +Z +F +"} +(6,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +G +a +a +a +a +a +a +a +a +a +a +a +a +p +p +Z +F +"} +(7,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +x +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +a +a +a +a +p +Z +F +"} +(8,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +a +a +a +Z +Z +F +"} +(9,1,1) = {" +F +Z +a +a +a +a +a +a +p +p +p +p +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +F +"} +(10,1,1) = {" +F +Z +Z +a +a +a +a +a +Z +Z +Z +p +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +F +"} +(11,1,1) = {" +F +Z +Z +a +a +a +a +a +Z +Z +Z +p +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +a +a +a +a +a +a +a +a +p +p +a +a +a +a +a +Z +F +"} +(12,1,1) = {" +F +Z +Z +a +a +a +a +a +p +Z +p +p +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +a +a +a +a +a +a +a +p +a +a +a +a +a +Z +F +"} +(13,1,1) = {" +F +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +a +a +a +a +a +M +a +a +a +a +a +a +a +Z +F +"} +(14,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(15,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +c +a +a +a +a +a +a +Z +F +"} +(16,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +I +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(17,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(18,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(19,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(20,1,1) = {" +F +Z +a +a +a +a +a +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(21,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +w +S +S +S +S +S +T +a +Z +F +"} +(22,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +S +S +S +S +S +S +a +Z +F +"} +(23,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +C +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +S +S +S +S +S +S +a +Z +F +"} +(24,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +X +a +a +S +S +S +S +S +S +a +Z +F +"} +(25,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +S +S +S +S +S +S +a +Z +F +"} +(26,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +S +S +S +S +S +S +a +Z +F +"} +(27,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +w +S +S +S +S +S +A +a +Z +F +"} +(28,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +f +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(29,1,1) = {" +F +Z +a +a +a +a +a +a +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +r +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(30,1,1) = {" +F +Z +a +a +a +a +a +a +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(31,1,1) = {" +F +Z +a +a +a +a +a +a +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(32,1,1) = {" +F +Z +a +a +a +a +a +a +a +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(33,1,1) = {" +F +Z +a +a +a +a +a +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +d +a +a +a +a +a +a +a +Z +F +"} +(34,1,1) = {" +F +Z +Z +a +a +a +a +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(35,1,1) = {" +F +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +X +a +a +a +a +a +a +a +a +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(36,1,1) = {" +F +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(37,1,1) = {" +F +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +F +"} +(38,1,1) = {" +F +Z +a +a +a +p +p +a +a +a +a +a +g +a +a +a +a +Z +a +a +a +a +a +a +p +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +F +"} +(39,1,1) = {" +F +Z +a +a +a +p +p +a +a +a +a +a +a +a +a +a +Z +Z +Z +a +a +a +a +a +p +p +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(40,1,1) = {" +F +Z +a +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(41,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Y +a +a +a +a +a +a +a +Z +F +"} +(42,1,1) = {" +F +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +F +"} +(43,1,1) = {" +F +Z +a +Z +Z +Z +Z +a +a +a +a +a +Z +Z +Z +Z +a +a +a +Z +Z +Z +Z +Z +a +a +a +a +a +a +Z +Z +Z +Z +a +a +a +a +a +a +Z +Z +a +a +Z +F +"} +(44,1,1) = {" +F +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +F +"} +(45,1,1) = {" +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +F +"} diff --git a/_maps/virtual_domains/clown_planet.dmm b/_maps/virtual_domains/clown_planet.dmm new file mode 100644 index 000000000000..01d7b88a5efb --- /dev/null +++ b/_maps/virtual_domains/clown_planet.dmm @@ -0,0 +1,2323 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ai" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"aI" = ( +/obj/item/bikehorn/airhorn, +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"aM" = ( +/obj/item/bikehorn, +/turf/open/indestructible/honk, +/area/virtual_domain/powered) +"aP" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/food/pie_smudge, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"ba" = ( +/obj/structure/mecha_wreckage/honker, +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"bi" = ( +/obj/item/bikehorn, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"bp" = ( +/turf/open/indestructible/light, +/area/virtual_domain/powered) +"bq" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"by" = ( +/turf/closed/wall/r_wall, +/area/lavaland/surface/outdoors/virtual_domain) +"bQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"bR" = ( +/obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/hope, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/mapping_helpers/no_lava, +/turf/open/floor/noslip, +/area/virtual_domain/powered) +"bU" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"cw" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"cM" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"cW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"ed" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/obj/machinery/light/small/directional/west, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"eE" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"fh" = ( +/obj/effect/mob_spawn/corpse/human/damaged, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"gr" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"gy" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"gH" = ( +/obj/item/bikehorn, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/honk, +/area/virtual_domain/powered) +"gK" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"hK" = ( +/obj/item/clothing/head/cone, +/obj/effect/mapping_helpers/no_lava, +/turf/open/floor/noslip, +/area/virtual_domain/powered) +"hY" = ( +/turf/template_noop, +/area/template_noop) +"ij" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 4 + }, +/turf/open/floor/noslip, +/area/virtual_domain/powered) +"ik" = ( +/turf/open/lava/smooth, +/area/virtual_domain/powered) +"iR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"ki" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"kn" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"lj" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/delivery_chute{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"lm" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/light/small/directional/east, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"lr" = ( +/obj/item/bikehorn, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"lx" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"ly" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"lP" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"mD" = ( +/turf/open/floor/plating, +/area/virtual_domain/powered) +"mE" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"mF" = ( +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"nE" = ( +/obj/effect/mapping_helpers/no_lava, +/turf/closed/wall/r_wall, +/area/virtual_domain/powered) +"oA" = ( +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"oI" = ( +/obj/structure/table/glass, +/obj/item/grown/bananapeel/bluespace, +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"pl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"ps" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"qM" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"rg" = ( +/obj/item/coin/bananium, +/obj/item/coin/bananium, +/obj/item/coin/bananium, +/obj/item/coin/bananium, +/obj/machinery/light/small/directional/west, +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"rh" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"rr" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"rH" = ( +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"rT" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"sq" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"sT" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1 + }, +/obj/effect/mapping_helpers/mail_sorting/supply/qm_office, +/turf/closed/wall/r_wall, +/area/virtual_domain/powered) +"tq" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"tt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible/light, +/area/virtual_domain/powered) +"tv" = ( +/obj/effect/mob_spawn/corpse/human/damaged, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"tF" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"tI" = ( +/obj/item/coin/bananium, +/obj/item/coin/bananium, +/obj/item/coin/bananium, +/obj/item/coin/bananium, +/obj/machinery/light/small/directional/east, +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"uX" = ( +/obj/effect/mapping_helpers/no_lava, +/mob/living/basic/clown, +/turf/open/floor/noslip, +/area/virtual_domain/powered) +"uY" = ( +/turf/closed/mineral/bananium, +/area/virtual_domain/powered) +"uZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/structure/table, +/obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/escape, +/obj/item/pen/fourcolor, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"wz" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/mapping_helpers/no_lava, +/mob/living/basic/clown, +/turf/open/floor/noslip, +/area/virtual_domain/powered) +"xt" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"yd" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"yz" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/virtual_domain/powered) +"yS" = ( +/obj/structure/marker_beacon/yellow, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"yZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"zm" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"zA" = ( +/obj/structure/statue/bananium/clown, +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"zF" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/turf/open/floor/noslip, +/area/virtual_domain/powered) +"Aa" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"Bi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"Cp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/machinery/light/small/directional/west, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"Cs" = ( +/obj/item/bikehorn, +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"Dh" = ( +/turf/closed/wall/r_wall, +/area/virtual_domain/powered) +"Do" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"DL" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/item/bikehorn, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"Ex" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"FI" = ( +/obj/item/reagent_containers/cup/glass/trophy/gold_cup, +/obj/structure/table/glass, +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"Gg" = ( +/obj/structure/table/glass, +/obj/item/gun/magic/staff/honk, +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"Hq" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Hr" = ( +/obj/structure/table/glass, +/obj/item/clothing/shoes/clown_shoes/banana_shoes, +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"HQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"Ie" = ( +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"Iz" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"IN" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/virtual_domain/powered) +"IY" = ( +/turf/open/indestructible/honk, +/area/virtual_domain/powered) +"Jv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/honk, +/area/virtual_domain/powered) +"JB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"Ka" = ( +/obj/effect/decal/cleanable/food/pie_smudge, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"Kh" = ( +/obj/effect/mob_spawn/corpse/human/damaged, +/obj/effect/decal/cleanable/blood/old, +/turf/open/indestructible/honk, +/area/virtual_domain/powered) +"KG" = ( +/obj/item/pickaxe, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"KI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/closed/wall/r_wall, +/area/lavaland/surface/outdoors/virtual_domain) +"Lv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/machinery/light/small/directional/east, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"Nv" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/indestructible/honk, +/area/virtual_domain/powered) +"NB" = ( +/obj/machinery/disposal/delivery_chute, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"NL" = ( +/obj/machinery/disposal/delivery_chute{ + desc = "The following is engraved upon the chute: A FATE WORSE THAN DEATH LIES WITHIN"; + dir = 1; + name = "THE TRIAL OF HONKITUDE" + }, +/obj/structure/disposalpipe/trunk, +/obj/effect/mapping_helpers/no_lava, +/turf/open/floor/noslip, +/area/virtual_domain/powered) +"NW" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/spray/waterflower/superlube, +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"Ok" = ( +/obj/item/bikehorn, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"Ov" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"PJ" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/turf/open/floor/noslip, +/area/virtual_domain/powered) +"PM" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"PQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/item/pickaxe, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"QP" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"QX" = ( +/obj/structure/closet/crate/secure/bitrunning/encrypted, +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"Rh" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"Rx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/structure/table, +/obj/item/flashlight/lamp/bananalamp, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"RU" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"Sg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/decal/cleanable/food/pie_smudge, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"Sm" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/virtual_domain/powered) +"Tm" = ( +/obj/effect/decal/cleanable/food/pie_smudge, +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"Tx" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"TH" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"TK" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/turf/closed/wall/r_wall, +/area/virtual_domain/powered) +"Ug" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet, +/area/virtual_domain/powered) +"UL" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"UN" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"UQ" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"UY" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"Vv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/closed/wall/r_wall, +/area/virtual_domain/powered) +"Vx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"VI" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"VQ" = ( +/turf/open/floor/noslip, +/area/virtual_domain/powered) +"Ww" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/indestructible/permalube, +/area/virtual_domain/powered) +"WB" = ( +/obj/machinery/disposal/delivery_chute{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"WT" = ( +/obj/machinery/door/airlock/bananium, +/turf/open/indestructible/honk, +/area/virtual_domain/powered) +"WX" = ( +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"Xp" = ( +/obj/machinery/light/directional/south, +/turf/open/indestructible/honk, +/area/virtual_domain/powered) +"XB" = ( +/obj/machinery/light/directional/north, +/turf/open/indestructible/honk, +/area/virtual_domain/powered) +"Yb" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/indestructible/honk, +/area/virtual_domain/powered) +"YP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/open/indestructible/white, +/area/virtual_domain/powered) +"ZR" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) + +(1,1,1) = {" +Ie +Ie +rT +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +rr +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(2,1,1) = {" +Ie +Ie +Vx +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(3,1,1) = {" +Ie +Ie +Vx +Ie +Ie +Ie +Ie +Ie +Dh +Dh +Dh +Dh +Dh +Dh +Dh +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Dh +Dh +Dh +Dh +Dh +Ie +Ie +Ie +Ie +Ie +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(4,1,1) = {" +Ie +Ie +Vx +Ie +Ie +Ie +Dh +Dh +Dh +ik +ik +ik +ik +ik +Dh +Dh +Ie +Ie +Ie +Ie +Ie +Dh +Dh +ik +ik +ik +Dh +Dh +Dh +Ie +Ie +Ie +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(5,1,1) = {" +Ie +Ie +Vx +Ie +Ie +Dh +Dh +ik +ik +ik +Hq +Sm +Hq +Sm +ik +Dh +Dh +Ie +Ie +Ie +Dh +Dh +ik +ik +tq +mD +ik +ik +Dh +Dh +Ie +Ie +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(6,1,1) = {" +Ie +Ie +Vx +Ie +Dh +Dh +ik +ik +IN +Tx +bU +ai +yZ +aP +Sm +ik +Dh +Dh +Dh +Dh +Dh +Nv +IY +tq +ik +ik +ik +ik +ik +Dh +Dh +Ie +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(7,1,1) = {" +Ie +Ie +Vx +Ie +Dh +ik +ik +Dh +Bi +cw +UQ +lr +UQ +UY +Vv +ik +Dh +IY +Jv +IY +Dh +IY +Jv +Kh +IY +tq +ik +tq +ik +ik +Dh +Ie +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(8,1,1) = {" +Ie +Ie +Vx +Dh +Dh +ik +IN +Tm +lx +Ww +cw +UQ +Sm +Vv +Vv +Dh +zm +oA +IY +Jv +Jv +IY +Jv +IY +IY +IY +Dh +ik +mD +ik +Dh +Dh +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(9,1,1) = {" +Ie +Ie +Vx +Dh +ik +ik +UN +UQ +UY +Ww +Vv +TH +Vv +YP +Cp +uY +Dh +sq +oA +IY +Dh +Dh +Jv +Dh +IY +IY +IY +tq +ik +ik +ik +Dh +Ie +Vx +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +tF +"} +(10,1,1) = {" +Ie +Ie +Vx +Dh +ik +IN +UQ +UQ +yZ +Do +Do +Vv +YP +YP +YP +KG +uY +Dh +Dh +oA +IY +IY +Jv +IY +IY +gH +Jv +Xp +Dh +ik +ik +Dh +by +KI +by +by +by +by +by +by +by +by +by +Ie +"} +(11,1,1) = {" +Ie +Ie +Vx +Dh +ik +yz +fh +UQ +UY +Vv +Ww +Vv +YP +YP +tt +bp +WX +oA +oA +oA +IY +Dh +IY +IY +Jv +Jv +IY +IY +ik +tq +ik +Dh +by +iR +PM +PM +PM +PM +PM +PM +PM +PM +by +Ie +"} +(12,1,1) = {" +Ie +Ie +Vx +Dh +ik +Hq +TK +qM +yZ +Ww +Ww +Vv +YP +PQ +tt +bp +uY +Dh +oA +oA +IY +IY +Dh +IY +IY +IY +IY +Jv +ik +tq +ik +ik +by +iR +yS +PM +PM +PM +PM +PM +yS +PM +by +Ie +"} +(13,1,1) = {" +Ie +Ie +Vx +Dh +ik +UN +UQ +UQ +DL +Ww +yz +lx +Vv +YP +Lv +WX +Dh +Dh +oA +IY +IY +Dh +Dh +IY +IY +Dh +IY +Jv +ik +mD +tq +ik +by +iR +PM +PM +PM +PM +PM +PM +PM +PM +by +Ie +"} +(14,1,1) = {" +Ie +Dh +Vv +nE +nE +mD +cw +UQ +lx +Ex +Tm +UQ +lx +Vv +Vv +ps +TK +Sm +Dh +Dh +Dh +zA +rg +Dh +XB +IY +Jv +gH +IY +ik +tq +ik +by +iR +PM +QP +QP +QP +QP +QP +xt +PM +by +Ie +"} +(15,1,1) = {" +Ie +Dh +ij +hK +nE +Dh +yz +UQ +UQ +UQ +UQ +bi +UQ +yZ +Do +Iz +kn +Ww +Dh +Dh +FI +mF +mF +mF +Dh +IY +Jv +Jv +IY +ik +tq +ik +by +ZR +PM +QP +QP +QP +QP +QP +QP +PM +by +Ie +"} +(16,1,1) = {" +Ie +Dh +VQ +uX +NL +TK +Tx +UQ +TK +UQ +cW +TK +Tm +UQ +yZ +pl +Do +Ex +UY +Dh +Ug +oI +NW +mF +Dh +Dh +Jv +IY +IY +ik +tq +ik +by +PM +PM +QP +QP +QP +QP +QP +QP +PM +by +Ie +"} +(17,1,1) = {" +Ie +Dh +VQ +bR +wz +Dh +Hq +UQ +Sm +cw +UY +cw +UQ +UQ +Tx +gy +Ex +UY +Iz +TK +NB +mF +aI +mF +WT +IY +Jv +IY +Dh +ik +tq +ik +by +PM +PM +QP +QP +QP +QP +QP +QP +PM +by +Ie +"} +(18,1,1) = {" +Ie +Dh +VQ +uX +PJ +TK +sT +kn +Do +Do +Vv +Do +Ov +UQ +UY +Ok +mE +rH +pl +Dh +mF +Hr +Gg +mF +Dh +IY +IY +IY +IY +ik +tq +ik +by +PM +PM +QP +QP +QP +QP +QP +QP +PM +by +Ie +"} +(19,1,1) = {" +Ie +Dh +zF +uX +nE +Dh +Dh +Ww +Ww +Ww +Do +Do +Do +lP +Ex +UY +Ka +Vv +tv +Dh +FI +mF +mF +QX +Dh +IY +IY +IY +IY +ik +tq +ik +by +lj +PM +QP +QP +QP +QP +QP +QP +PM +by +Ie +"} +(20,1,1) = {" +Ie +Dh +Vv +nE +nE +ik +Dh +Ww +Ww +Cs +Do +Do +Vv +Dh +Dh +bQ +Dh +ba +Dh +IY +Dh +zA +tI +Dh +XB +IY +Jv +Jv +IY +ik +tq +ik +by +iR +PM +QP +QP +QP +QP +QP +gr +PM +by +Ie +"} +(21,1,1) = {" +Ie +Ie +Vx +Dh +ik +Dh +Dh +Do +Do +Do +Ww +Do +Vv +rh +ed +gK +Dh +UL +Sm +IY +IY +Dh +Dh +Kh +IY +IY +Jv +IY +ik +tq +mD +ik +by +iR +PM +PM +PM +PM +PM +PM +PM +PM +by +Ie +"} +(22,1,1) = {" +Ie +Ie +Vx +Dh +ik +Dh +Dh +JB +Sg +Vv +Ww +Vv +uZ +YP +bp +bp +uY +Dh +bQ +oA +IY +IY +Dh +IY +Jv +IY +IY +IY +ik +tq +ik +ik +by +iR +PM +PM +yS +PM +PM +PM +PM +PM +by +Ie +"} +(23,1,1) = {" +Ie +Ie +Vx +Dh +ik +cM +eE +lx +Vv +ki +Ww +Vv +Rx +YP +bp +bp +WB +TK +Aa +Dh +IY +IY +Jv +Jv +Jv +IY +aM +Xp +Dh +tq +ik +Dh +by +iR +PM +PM +PM +PM +PM +PM +PM +PM +by +Ie +"} +(24,1,1) = {" +Ie +Ie +Vx +Dh +ik +Dh +Dh +lP +Do +Do +Cs +bQ +YP +bq +Rh +WX +uY +Dh +oA +oA +IY +IY +Jv +Jv +IY +IY +Dh +Dh +ik +mD +ik +Dh +by +KI +by +by +by +by +by +by +by +by +by +Ie +"} +(25,1,1) = {" +Ie +Ie +Vx +Dh +ik +Dh +Dh +pl +Do +Vv +Do +Vv +Vv +rh +lm +uY +Dh +sq +oA +IY +IY +IY +IY +IY +Dh +IY +IY +ik +mD +ik +ik +Dh +Ie +Vx +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +"} +(26,1,1) = {" +Ie +Ie +Vx +Dh +ik +ik +Dh +yd +Do +Do +Do +Ex +lx +Vv +Dh +Dh +oA +oA +IY +IY +IY +Jv +aM +IY +IY +IY +Dh +ik +tq +ik +Dh +Dh +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(27,1,1) = {" +Ie +Ie +Vx +Dh +Dh +ik +Dh +Dh +Ex +lx +HQ +UQ +UQ +bU +Dh +ik +Dh +Yb +IY +IY +Dh +IY +IY +Dh +IY +IY +ik +mD +ik +ik +Dh +Ie +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(28,1,1) = {" +Ie +Ie +Vx +Ie +Dh +Dh +ik +ik +Dh +mD +Dh +Ka +lP +mD +Dh +ik +Dh +Dh +Dh +Dh +Dh +IY +IY +IY +ik +ik +ik +ik +ik +Dh +Dh +Ie +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(29,1,1) = {" +Ie +Ie +Vx +Ie +Ie +Dh +Dh +ik +ik +ik +tq +tq +tq +Dh +ik +Dh +Dh +Ie +Ie +Ie +Dh +Dh +ik +ik +mD +tq +ik +ik +Dh +Dh +Ie +Ie +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(30,1,1) = {" +Ie +Ie +Vx +Ie +Ie +Ie +Dh +Dh +Dh +ik +ik +ik +ik +ik +Dh +Dh +Ie +Ie +Ie +Ie +Ie +Dh +Dh +ik +ik +ik +Dh +Dh +Dh +Ie +Ie +Ie +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(31,1,1) = {" +Ie +Ie +Vx +Ie +Ie +Ie +Ie +Ie +Dh +Dh +Dh +Dh +Dh +Dh +Dh +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Dh +Dh +Dh +Dh +Dh +Ie +Ie +Ie +Ie +Ie +Ie +Vx +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(32,1,1) = {" +Ie +Ie +VI +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +RU +ly +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(33,1,1) = {" +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +Ie +hY +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} diff --git a/_maps/virtual_domains/colossus.dmm b/_maps/virtual_domains/colossus.dmm new file mode 100644 index 000000000000..a9c3c6e6d79e --- /dev/null +++ b/_maps/virtual_domains/colossus.dmm @@ -0,0 +1,2250 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"c" = ( +/obj/structure/marker_beacon/olive, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"e" = ( +/obj/structure/marker_beacon/bronze, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"j" = ( +/obj/structure/marker_beacon/cerulean, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"k" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"l" = ( +/obj/structure/marker_beacon/lime, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"m" = ( +/obj/structure/marker_beacon/violet, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"o" = ( +/obj/effect/mob_spawn/corpse/human/miner, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"p" = ( +/mob/living/simple_animal/hostile/megafauna/colossus/virtual_domain, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"q" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"r" = ( +/obj/machinery/light/small/blacklight/directional/south, +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain/powered) +"s" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"u" = ( +/obj/structure/marker_beacon/indigo, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"v" = ( +/turf/open/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"x" = ( +/obj/structure/marker_beacon/purple, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"z" = ( +/obj/structure/marker_beacon/jade, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"B" = ( +/obj/structure/marker_beacon/teal, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"D" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"L" = ( +/obj/structure/marker_beacon/yellow, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"N" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"T" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"U" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"W" = ( +/obj/structure/marker_beacon/fuchsia, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) + +(1,1,1) = {" +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +q +"} +(2,1,1) = {" +v +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +v +"} +(3,1,1) = {" +v +k +a +a +k +k +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +k +k +a +a +a +a +a +a +a +a +k +k +a +a +a +a +a +a +k +k +k +v +"} +(4,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(5,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +s +k +v +"} +(6,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +m +a +a +a +a +a +a +a +a +a +a +a +a +s +s +k +v +"} +(7,1,1) = {" +v +k +a +a +a +a +o +a +a +a +a +a +a +a +a +a +c +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +a +a +a +a +s +k +v +"} +(8,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +k +a +a +a +k +k +v +"} +(9,1,1) = {" +v +k +a +a +a +a +a +a +s +s +s +s +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +k +v +"} +(10,1,1) = {" +v +k +k +a +a +a +a +a +k +k +k +s +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +k +v +"} +(11,1,1) = {" +v +k +k +a +a +a +a +a +k +k +k +s +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +k +a +a +a +a +a +a +a +a +s +s +a +a +a +a +a +k +v +"} +(12,1,1) = {" +v +k +k +a +a +a +a +a +s +k +s +s +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +k +a +a +a +a +a +a +a +s +a +a +a +a +a +k +v +"} +(13,1,1) = {" +v +k +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +k +k +a +a +a +a +a +u +a +a +a +a +a +a +a +k +v +"} +(14,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +k +k +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(15,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(16,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +e +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(17,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(18,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(19,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(20,1,1) = {" +v +k +a +a +a +a +a +x +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(21,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +r +U +U +U +U +U +N +a +k +v +"} +(22,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +U +U +U +a +k +v +"} +(23,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +p +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +U +U +U +a +k +v +"} +(24,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +l +a +a +U +U +U +U +U +U +a +k +v +"} +(25,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +U +U +U +a +k +v +"} +(26,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +U +U +U +U +U +U +a +k +v +"} +(27,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +o +a +r +U +U +U +U +U +D +a +k +v +"} +(28,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +T +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(29,1,1) = {" +v +k +a +a +a +a +a +a +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(30,1,1) = {" +v +k +a +a +a +a +a +a +k +k +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(31,1,1) = {" +v +k +a +a +a +a +a +a +k +k +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(32,1,1) = {" +v +k +a +a +a +a +a +a +a +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(33,1,1) = {" +v +k +a +a +a +a +a +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +a +a +a +a +a +a +a +k +v +"} +(34,1,1) = {" +v +k +k +a +a +a +a +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(35,1,1) = {" +v +k +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +l +a +a +a +a +a +a +a +a +k +k +k +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(36,1,1) = {" +v +k +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +k +k +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(37,1,1) = {" +v +k +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +k +v +"} +(38,1,1) = {" +v +k +a +a +a +s +s +a +a +a +a +a +B +a +a +a +a +k +a +a +a +a +a +a +s +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +k +v +"} +(39,1,1) = {" +v +k +a +a +a +s +s +a +a +a +a +a +a +a +a +a +k +k +k +a +a +a +a +a +s +s +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(40,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(41,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +a +a +a +a +a +a +a +k +v +"} +(42,1,1) = {" +v +k +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +k +v +"} +(43,1,1) = {" +v +k +a +k +k +k +k +a +a +a +a +a +k +k +k +k +a +a +a +k +k +k +k +k +a +a +a +a +a +a +k +k +k +k +a +a +a +a +a +a +k +k +a +a +k +v +"} +(44,1,1) = {" +v +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +k +v +"} +(45,1,1) = {" +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +"} diff --git a/_maps/virtual_domains/gondola_asteroid.dmm b/_maps/virtual_domains/gondola_asteroid.dmm new file mode 100644 index 000000000000..0fcd583ef25d --- /dev/null +++ b/_maps/virtual_domains/gondola_asteroid.dmm @@ -0,0 +1,1784 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/binary, +/area/ruin/space/has_grav/powered/virtual_domain) +"c" = ( +/turf/open/space/basic, +/area/space) +"e" = ( +/turf/open/misc/asteroid/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"g" = ( +/obj/structure/marker_beacon{ + light_color = "#FFE8AA"; + light_outer_range = 20 + }, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"h" = ( +/turf/closed/mineral/random, +/area/ruin/space/has_grav/powered/virtual_domain) +"m" = ( +/obj/structure/closet/crate/secure/bitrunning/encrypted/gondola, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"n" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"o" = ( +/turf/template_noop, +/area/template_noop) +"q" = ( +/obj/structure/flora/tree/palm, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"r" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"s" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"t" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"w" = ( +/obj/structure/water_source/puddle, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"y" = ( +/obj/structure/flora/bush/stalky/style_random, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"z" = ( +/mob/living/simple_animal/pet/gondola/virtual_domain, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"A" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/template_noop, +/area/virtual_domain/safehouse) +"C" = ( +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"D" = ( +/obj/structure/flora/bush/flowers_br/style_random, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"F" = ( +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"I" = ( +/obj/structure/flora/bush/reed/style_random, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"J" = ( +/obj/structure/flora/bush/flowers_yw/style_random, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"K" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/ruin/space/has_grav/powered/virtual_domain) +"M" = ( +/obj/structure/table/wood, +/obj/item/storage/bag/tray, +/obj/item/kitchen/fork, +/obj/item/knife/kitchen, +/turf/template_noop, +/area/virtual_domain/safehouse) +"N" = ( +/obj/structure/flora/bush/large/style_random, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"O" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"Q" = ( +/obj/structure/flora/bush/lavendergrass/style_random, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"T" = ( +/obj/structure/flora/bush/sunny/style_random, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"V" = ( +/obj/structure/flora/coconuts, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) +"W" = ( +/obj/structure/flora/bush/ferny/style_random, +/turf/open/floor/grass, +/area/ruin/space/has_grav/powered/virtual_domain) + +(1,1,1) = {" +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +a +a +a +a +a +a +a +a +o +o +o +o +o +o +o +o +o +o +"} +(2,1,1) = {" +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +a +a +a +h +h +h +h +h +h +a +a +o +o +o +o +o +o +o +o +o +"} +(3,1,1) = {" +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +a +a +a +a +a +h +h +h +h +h +h +h +h +h +a +a +K +o +o +o +o +o +o +o +"} +(4,1,1) = {" +o +o +o +o +o +o +o +o +o +o +o +o +o +o +a +a +a +a +a +a +a +h +h +h +h +h +h +h +h +h +h +h +h +h +e +a +o +o +o +o +o +o +o +"} +(5,1,1) = {" +o +o +o +o +o +o +o +o +o +o +o +o +o +a +a +h +h +h +h +h +h +h +h +h +h +h +h +h +h +C +h +h +h +h +h +a +o +o +o +o +o +o +o +"} +(6,1,1) = {" +o +o +o +o +o +o +o +o +a +a +a +a +a +a +h +h +h +h +h +h +h +h +h +h +h +C +C +C +C +C +C +C +h +h +h +a +o +o +o +o +o +o +o +"} +(7,1,1) = {" +o +o +o +o +o +o +o +a +a +h +h +h +h +h +h +h +h +h +h +h +h +h +h +C +C +C +C +J +C +C +C +z +C +h +h +a +o +o +o +o +o +o +o +"} +(8,1,1) = {" +o +o +o +o +o +a +a +a +h +h +h +h +h +h +h +h +h +h +h +h +h +C +C +C +C +Q +C +q +C +h +h +h +h +h +e +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +o +o +o +o +a +a +h +h +h +h +h +h +h +h +h +h +C +h +C +C +C +C +C +C +C +C +V +C +C +C +C +h +h +h +e +c +c +c +c +c +c +c +a +"} +(10,1,1) = {" +o +o +a +a +a +h +h +h +h +h +h +h +h +C +q +C +C +W +C +C +V +C +C +q +C +C +C +C +F +C +C +h +h +h +e +c +c +c +c +c +c +c +a +"} +(11,1,1) = {" +o +a +a +h +h +h +h +h +h +h +h +h +h +h +h +C +C +C +C +C +N +C +C +C +C +C +C +s +C +C +C +h +h +h +e +c +c +c +c +c +c +c +a +"} +(12,1,1) = {" +o +a +h +h +h +h +h +h +h +h +h +h +h +h +C +s +I +J +C +C +g +C +C +V +C +z +C +y +C +g +C +h +h +h +e +c +c +c +c +c +c +c +a +"} +(13,1,1) = {" +a +a +h +h +h +h +h +h +h +h +h +h +C +C +C +C +Q +Q +C +z +C +C +C +C +C +C +C +s +Q +C +C +h +h +h +e +c +c +c +c +c +c +c +a +"} +(14,1,1) = {" +a +h +h +h +h +h +h +h +h +h +h +h +C +C +w +C +s +C +W +C +C +C +C +C +C +N +C +C +C +C +h +h +h +h +e +c +c +c +c +c +c +c +a +"} +(15,1,1) = {" +a +h +h +h +h +h +h +h +h +h +h +z +C +C +C +C +y +C +C +C +F +s +C +C +C +C +C +w +C +h +h +h +h +h +e +c +c +c +c +c +c +c +a +"} +(16,1,1) = {" +a +h +h +h +h +h +h +h +h +h +h +h +h +h +h +C +C +C +C +C +s +Q +C +C +C +C +C +C +C +C +h +h +h +h +e +c +c +c +c +c +c +c +a +"} +(17,1,1) = {" +a +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +C +C +C +Q +D +C +C +C +C +q +C +C +C +C +h +h +h +h +t +t +t +t +t +O +c +a +"} +(18,1,1) = {" +a +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +C +n +I +C +C +C +C +C +C +C +C +C +C +C +h +h +h +t +t +M +M +t +t +c +a +"} +(19,1,1) = {" +a +h +h +h +h +h +h +h +h +h +C +n +C +h +h +h +h +h +C +C +C +C +C +C +s +T +C +C +C +s +C +C +h +C +C +t +t +A +A +t +t +c +a +"} +(20,1,1) = {" +a +h +h +h +h +h +h +h +h +C +C +C +C +C +C +h +h +h +C +C +q +V +C +C +C +J +C +C +C +C +C +C +C +C +C +t +t +t +t +t +t +c +a +"} +(21,1,1) = {" +a +e +h +h +h +h +h +h +h +z +C +C +g +C +C +C +C +C +C +C +C +C +C +C +C +C +C +C +C +C +C +C +C +C +C +t +t +t +t +t +t +c +a +"} +(22,1,1) = {" +a +e +e +h +h +h +h +h +h +C +C +C +q +C +s +s +C +C +W +C +m +C +C +C +g +C +z +C +C +C +C +C +h +h +h +t +t +t +t +t +t +c +a +"} +(23,1,1) = {" +a +e +e +h +h +h +h +h +h +C +C +C +C +C +C +y +C +C +C +C +C +C +C +C +C +C +C +C +C +q +C +C +h +h +h +t +t +t +t +t +r +c +a +"} +(24,1,1) = {" +a +e +e +h +h +h +h +h +h +C +C +V +C +C +C +C +C +C +C +w +C +z +N +C +C +C +N +C +C +C +C +C +h +h +h +c +c +c +c +c +c +c +a +"} +(25,1,1) = {" +a +a +e +e +h +h +h +h +n +C +C +C +C +C +z +C +C +C +C +C +C +C +C +C +F +C +C +C +C +C +C +C +h +h +h +c +c +c +c +c +c +c +a +"} +(26,1,1) = {" +o +a +e +e +h +h +h +C +C +C +C +C +C +C +C +C +s +y +C +C +C +C +C +C +I +F +C +C +C +C +C +h +h +h +c +c +c +c +c +c +c +c +a +"} +(27,1,1) = {" +o +a +e +e +h +h +h +C +C +C +w +C +C +C +C +F +D +s +C +J +C +C +C +C +C +C +q +C +C +V +C +h +h +h +c +c +c +c +c +c +c +c +a +"} +(28,1,1) = {" +o +a +e +e +h +h +h +h +C +C +C +C +C +C +C +C +C +C +C +g +F +s +C +C +C +C +C +C +C +C +h +h +h +c +c +c +c +c +c +c +c +c +a +"} +(29,1,1) = {" +o +a +a +e +e +h +h +h +C +C +C +C +C +n +C +C +C +C +C +C +s +y +D +C +C +C +C +w +C +h +h +h +h +c +c +c +c +c +c +c +c +c +a +"} +(30,1,1) = {" +o +o +a +e +e +h +h +C +C +C +n +C +C +C +C +C +C +C +C +C +C +C +C +C +C +s +C +C +C +h +h +h +e +e +c +c +c +c +c +c +c +c +a +"} +(31,1,1) = {" +o +o +a +e +h +h +C +g +J +C +s +C +C +C +h +C +C +C +C +C +V +C +C +C +C +C +C +C +h +h +h +e +e +e +c +c +c +c +c +c +c +c +a +"} +(32,1,1) = {" +o +o +a +h +h +h +h +C +C +C +C +C +C +h +h +h +C +C +C +q +C +C +C +C +C +C +h +h +h +h +e +e +e +h +h +a +a +a +a +a +a +a +a +"} +(33,1,1) = {" +o +o +a +h +h +h +C +C +C +C +C +C +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +e +e +h +h +h +a +o +o +o +o +o +o +o +"} +(34,1,1) = {" +o +o +a +h +h +C +C +C +C +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +a +a +h +h +h +a +a +o +o +o +o +o +o +o +"} +(35,1,1) = {" +o +o +a +h +h +h +h +h +h +h +h +h +h +h +e +e +e +e +e +h +h +h +h +h +a +a +a +a +a +a +a +h +h +h +a +a +o +o +o +o +o +o +o +"} +(36,1,1) = {" +o +o +a +a +h +h +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +o +o +o +o +o +a +a +a +a +a +o +o +o +o +o +o +o +o +"} +(37,1,1) = {" +o +o +o +a +a +a +a +a +a +a +a +a +a +a +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +"} diff --git a/_maps/virtual_domains/hierophant.dmm b/_maps/virtual_domains/hierophant.dmm new file mode 100644 index 000000000000..02b11ad4e1ef --- /dev/null +++ b/_maps/virtual_domains/hierophant.dmm @@ -0,0 +1,1066 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/indestructible/hierophant, +/area/lavaland/surface/outdoors/virtual_domain) +"c" = ( +/obj/effect/light_emitter{ + set_cap = 3; + set_luminosity = 5 + }, +/turf/open/indestructible/hierophant/two, +/area/lavaland/surface/outdoors/virtual_domain) +"h" = ( +/obj/effect/light_emitter{ + set_cap = 3; + set_luminosity = 5 + }, +/turf/open/indestructible/hierophant, +/area/lavaland/surface/outdoors/virtual_domain) +"n" = ( +/obj/structure/marker_beacon/indigo, +/turf/open/indestructible/hierophant, +/area/lavaland/surface/outdoors/virtual_domain) +"o" = ( +/turf/template_noop, +/area/template_noop) +"r" = ( +/turf/closed/indestructible/riveted/hierophant, +/area/lavaland/surface/outdoors/virtual_domain) +"u" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"w" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"y" = ( +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"E" = ( +/mob/living/simple_animal/hostile/megafauna/hierophant/virtual_domain, +/turf/open/indestructible/hierophant/two, +/area/lavaland/surface/outdoors/virtual_domain) +"H" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"K" = ( +/turf/open/indestructible/hierophant/two, +/area/lavaland/surface/outdoors/virtual_domain) +"N" = ( +/obj/machinery/light/small/blacklight/directional/south, +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/indestructible/hierophant, +/area/virtual_domain/powered) +"S" = ( +/obj/effect/mob_spawn/corpse/human/miner, +/turf/open/indestructible/hierophant, +/area/lavaland/surface/outdoors/virtual_domain) +"W" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"Y" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) + +(1,1,1) = {" +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +o +o +y +y +y +y +y +y +y +y +y +y +W +"} +(2,1,1) = {" +y +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +y +o +o +y +Y +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(3,1,1) = {" +y +r +a +a +a +a +a +a +a +a +a +a +h +a +a +a +a +a +a +a +a +a +a +r +y +o +o +y +Y +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(4,1,1) = {" +y +r +a +a +a +h +h +a +a +a +r +a +a +a +r +a +a +a +h +h +a +a +a +r +y +y +y +y +Y +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(5,1,1) = {" +y +r +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +r +r +y +y +Y +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(6,1,1) = {" +y +r +a +h +a +r +r +a +h +n +a +a +h +a +a +a +h +a +r +r +a +h +a +a +a +a +r +y +Y +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(7,1,1) = {" +y +r +a +h +a +r +r +a +h +a +a +a +h +a +a +a +h +a +r +r +a +h +a +a +a +a +a +r +Y +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(8,1,1) = {" +y +r +a +a +a +a +a +K +K +K +K +K +K +K +K +K +K +K +a +a +a +n +a +a +r +a +a +a +r +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(9,1,1) = {" +y +r +a +a +a +h +h +K +K +K +r +K +K +K +r +K +K +K +h +h +a +a +a +r +y +r +S +a +a +r +Y +Y +Y +Y +Y +Y +Y +y +"} +(10,1,1) = {" +y +r +a +a +a +a +a +K +K +K +K +K +c +K +K +K +K +K +a +a +a +a +a +r +y +y +r +a +a +N +w +w +w +w +w +H +Y +y +"} +(11,1,1) = {" +y +r +a +r +a +a +a +K +r +K +K +K +K +K +K +K +r +K +a +a +a +r +a +r +y +y +y +r +a +a +w +w +w +w +w +w +Y +y +"} +(12,1,1) = {" +y +r +a +a +a +a +a +K +K +K +K +K +K +K +K +K +K +K +a +a +a +a +a +r +y +y +y +r +a +a +w +w +w +w +w +w +Y +y +"} +(13,1,1) = {" +y +r +h +a +a +h +h +K +K +c +K +K +E +K +K +c +K +K +h +h +a +a +h +r +y +y +y +r +a +a +w +w +w +w +w +w +Y +y +"} +(14,1,1) = {" +y +r +a +a +a +a +a +K +K +K +K +K +K +K +K +K +K +K +a +a +a +a +a +r +y +y +y +r +a +a +w +w +w +w +w +w +Y +y +"} +(15,1,1) = {" +y +r +a +r +a +a +a +K +r +K +K +K +K +K +K +K +r +K +a +a +a +r +a +r +y +y +y +r +a +a +w +w +w +w +w +w +Y +y +"} +(16,1,1) = {" +y +r +a +a +a +a +a +K +K +K +K +K +c +K +K +K +K +K +a +a +a +a +a +r +y +y +r +a +a +N +w +w +w +w +w +u +Y +y +"} +(17,1,1) = {" +y +r +a +a +a +h +h +K +K +K +r +K +K +K +r +K +K +K +h +h +a +a +a +r +y +r +a +a +a +r +Y +Y +Y +Y +Y +Y +Y +y +"} +(18,1,1) = {" +y +r +a +a +a +a +a +K +K +K +K +K +K +K +K +K +K +K +a +a +a +a +a +a +r +a +a +a +r +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(19,1,1) = {" +y +r +a +h +a +r +r +a +h +a +a +a +h +a +a +a +h +a +r +r +a +h +a +a +a +a +a +r +Y +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(20,1,1) = {" +y +r +a +h +a +r +r +S +h +a +a +a +h +a +n +a +h +a +r +r +a +h +a +a +a +a +r +y +Y +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(21,1,1) = {" +y +r +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +r +r +y +y +Y +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(22,1,1) = {" +y +r +a +a +a +h +h +a +a +a +r +a +a +a +r +a +a +a +h +h +a +a +a +r +y +y +y +y +Y +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(23,1,1) = {" +y +r +a +a +a +a +a +a +a +a +a +a +h +a +a +a +a +a +a +a +a +a +a +r +y +o +o +y +Y +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(24,1,1) = {" +y +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +r +y +o +o +y +Y +Y +Y +Y +Y +Y +Y +Y +Y +y +"} +(25,1,1) = {" +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +y +o +o +y +y +y +y +y +y +y +y +y +y +y +"} diff --git a/_maps/virtual_domains/legion.dmm b/_maps/virtual_domains/legion.dmm new file mode 100644 index 000000000000..55843177ad0f --- /dev/null +++ b/_maps/virtual_domains/legion.dmm @@ -0,0 +1,6370 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ah" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"ak" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"aI" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"aR" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"bd" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"be" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"bt" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/lavaland/surface/outdoors/virtual_domain) +"bu" = ( +/obj/structure/marker_beacon/bronze, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"ca" = ( +/obj/effect/mob_spawn/corpse/human/legioninfested, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"cf" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"cp" = ( +/turf/template_noop, +/area/template_noop) +"dm" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"dn" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/effect/mob_spawn/corpse/human/legioninfested, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"dr" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/block/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"dx" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"dL" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"dQ" = ( +/turf/closed/wall/mineral/titanium/survival/pod, +/area/lavaland/surface/outdoors/virtual_domain) +"et" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"ew" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"eJ" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"fA" = ( +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"fG" = ( +/obj/structure/marker_beacon/violet, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"gh" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"gk" = ( +/obj/structure/necropolis_gate/locked, +/obj/structure/stone_tile/slab, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"gK" = ( +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"gQ" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"hc" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"hw" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"hx" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"hU" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"ib" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"ie" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"iP" = ( +/obj/structure/fluff/drake_statue/falling, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"iR" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"iV" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"jk" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"jt" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"jw" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"jN" = ( +/obj/machinery/sleeper/survival_pod, +/turf/open/floor/pod/dark, +/area/lavaland/surface/outdoors/virtual_domain) +"ka" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"kg" = ( +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"kT" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"kZ" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"ll" = ( +/obj/structure/stone_tile/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"lz" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"lC" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"lO" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"lT" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"mz" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"mG" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"nm" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"nu" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"nv" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"ny" = ( +/obj/structure/stone_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"nI" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"nO" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"ob" = ( +/obj/structure/necropolis_gate/legion_gate, +/obj/structure/necropolis_arch, +/obj/structure/stone_tile/slab, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"og" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"oo" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"ox" = ( +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"oS" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"pP" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"qo" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"qs" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"qW" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/obj/machinery/door/airlock/survival_pod/glass, +/turf/open/floor/pod/dark, +/area/lavaland/surface/outdoors/virtual_domain) +"rt" = ( +/obj/effect/mob_spawn/corpse/human/miner, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"rU" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"sd" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"sk" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"sz" = ( +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"sA" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"tk" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"tF" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"uK" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"vf" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"wq" = ( +/obj/structure/marker_beacon/teal, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"wy" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"xd" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"xm" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"xw" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"xD" = ( +/obj/structure/stone_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"yu" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/block, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"yZ" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"zg" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain/powered) +"zo" = ( +/obj/effect/turf_decal/mining/survival, +/turf/closed/wall/mineral/titanium/survival/pod, +/area/lavaland/surface/outdoors/virtual_domain) +"zW" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Ah" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/lavaland/surface/outdoors/virtual_domain) +"Aj" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Ak" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"As" = ( +/obj/structure/marker_beacon/cerulean, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"AY" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Bo" = ( +/obj/structure/marker_beacon/indigo, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"BO" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"CX" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Dm" = ( +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors/virtual_domain) +"DP" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/center, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Ek" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Ep" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"Ez" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"EC" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Fg" = ( +/obj/structure/stone_tile/surrounding/cracked{ + dir = 6 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Fp" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"Fq" = ( +/obj/structure/marker_beacon/fuchsia, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"FV" = ( +/obj/structure/stone_tile/block, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Gj" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Gn" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/lavaland/surface/outdoors/virtual_domain) +"Go" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"GH" = ( +/obj/structure/fans, +/turf/open/floor/pod/dark, +/area/lavaland/surface/outdoors/virtual_domain) +"GM" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Hi" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Hu" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"Hw" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"HK" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"HQ" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"HZ" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Ii" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Io" = ( +/obj/structure/marker_beacon/jade, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Ip" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"IB" = ( +/obj/structure/stone_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"IG" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"IL" = ( +/obj/structure/stone_tile/surrounding, +/obj/structure/stone_tile/center/cracked, +/mob/living/simple_animal/hostile/megafauna/legion/virtual_domain, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"IQ" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Jc" = ( +/obj/structure/stone_tile/slab, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Jp" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Jt" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Jw" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"JD" = ( +/obj/structure/fluff/drake_statue, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"KG" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Le" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Lx" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"LH" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Ml" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Mm" = ( +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Mo" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"MH" = ( +/obj/structure/stone_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"MP" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"MW" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Nl" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"Ot" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Pv" = ( +/obj/effect/turf_decal/mining/survival{ + dir = 4 + }, +/turf/closed/wall/mineral/titanium/survival/pod, +/area/lavaland/surface/outdoors/virtual_domain) +"Px" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"PO" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"Qi" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Qx" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/marker_beacon/burgundy, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"QD" = ( +/obj/item/pickaxe, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/pod/dark, +/area/lavaland/surface/outdoors/virtual_domain) +"RC" = ( +/obj/effect/turf_decal/mining/survival{ + dir = 1 + }, +/turf/closed/wall/mineral/titanium/survival/pod, +/area/lavaland/surface/outdoors/virtual_domain) +"RV" = ( +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"So" = ( +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Sw" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"SI" = ( +/obj/effect/turf_decal/mining, +/turf/closed/wall/mineral/titanium/survival/pod, +/area/lavaland/surface/outdoors/virtual_domain) +"SJ" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"SX" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Ti" = ( +/turf/closed/mineral/random/high_chance/volcanic, +/area/lavaland/surface/outdoors/virtual_domain) +"Tm" = ( +/obj/structure/bed/pod, +/obj/item/bedsheet/black, +/obj/structure/tubes, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/pod/dark, +/area/lavaland/surface/outdoors/virtual_domain) +"TC" = ( +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"TJ" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Ud" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain/powered) +"UD" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"UM" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Vc" = ( +/obj/structure/tubes, +/obj/item/crowbar, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/pod/dark, +/area/lavaland/surface/outdoors/virtual_domain) +"VI" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/center, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"Wa" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/center/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Wm" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"WM" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"WR" = ( +/obj/structure/stone_tile/block, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"WS" = ( +/obj/item/gps/computer, +/obj/structure/tubes, +/turf/open/floor/pod/dark, +/area/lavaland/surface/outdoors/virtual_domain) +"Xb" = ( +/obj/structure/marker_beacon/yellow, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Xn" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Xo" = ( +/obj/structure/stone_tile/block, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Xv" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"XO" = ( +/obj/effect/turf_decal/mining/survival{ + dir = 8 + }, +/turf/closed/wall/mineral/titanium/survival/pod, +/area/lavaland/surface/outdoors/virtual_domain) +"Yu" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"YN" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"YV" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Zc" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"Zh" = ( +/obj/structure/marker_beacon/purple, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) +"Zj" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"Zq" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/lavaland/surface/outdoors/virtual_domain) +"Zu" = ( +/obj/machinery/smartfridge/survival_pod{ + desc = "A heated storage unit. This one's seen better days."; + name = "dusty survival pod storage" + }, +/turf/open/floor/pod/dark, +/area/lavaland/surface/outdoors/virtual_domain) +"ZM" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) +"ZN" = ( +/obj/structure/table/survival_pod, +/obj/item/knife/combat/survival, +/turf/open/floor/pod/dark, +/area/lavaland/surface/outdoors/virtual_domain) + +(1,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +Ah +"} +(2,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ox +"} +(3,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +ib +nu +nu +ib +ib +ib +ib +nu +nu +nu +nu +nu +nu +nu +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ib +nu +nu +nu +nu +nu +nu +ib +ib +nu +nu +ib +ox +"} +(4,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(5,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(6,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +wq +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(7,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ox +"} +(8,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +ib +nu +nu +nu +nu +nu +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +rt +nu +nu +ib +ib +ox +"} +(9,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +ib +nu +nu +nu +nu +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ox +"} +(10,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ib +ib +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ox +"} +(11,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ib +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(12,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +fA +fA +fA +nu +nu +nu +nu +ib +ox +"} +(13,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +ib +nu +fG +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +fA +fA +fA +nu +nu +nu +nu +ib +ox +"} +(14,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +fA +fA +nu +nu +nu +nu +ib +ox +"} +(15,1,1) = {" +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(16,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +nu +nu +nu +nu +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(17,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +Ti +Ti +Ti +Ti +GM +nu +nu +nu +nu +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +Io +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +Xb +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(18,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +et +Ti +GM +GM +GM +nu +nu +nu +nu +GM +GM +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(19,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +GM +nu +nu +nu +nu +nu +nu +nu +nu +GM +GM +GM +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +wq +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(20,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +Ti +nu +nu +nu +nu +nu +nu +nu +nu +GM +GM +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(21,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +Ti +nu +nu +nu +nu +GM +Ti +GM +GM +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +Zh +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(22,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +FV +nu +nu +nu +nu +Ti +Dm +Dm +GM +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(23,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +Ti +GM +GM +GM +Ti +Ti +Dm +Dm +Ti +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(24,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +FV +Ml +Ti +Dm +Dm +Ti +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ox +"} +(25,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +GM +GM +Ti +Dm +Dm +IB +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +GM +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ox +"} +(26,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +GM +GM +GM +GM +GM +GM +fA +fA +fA +fA +RV +fA +fA +fA +fA +fA +fA +Xn +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +As +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ox +"} +(27,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +Ek +Le +be +be +kT +GM +GM +GM +GM +fA +fA +xm +fA +fA +fA +GM +ZM +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(28,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +dr +KG +mz +KG +KG +jt +GM +GM +GM +GM +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +HZ +nu +bu +nu +nu +nu +MH +nu +nu +lz +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +nu +nu +ib +ox +"} +(29,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +bd +mG +Hw +hU +Mm +lO +et +GM +tk +fA +fA +fA +fA +ak +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +YV +nu +nu +So +nu +nu +nu +nu +nu +nu +bu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +nu +nu +ib +ox +"} +(30,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +Ez +WR +JD +rU +KG +dm +GM +GM +fA +Hi +fA +fA +fA +ll +fA +fA +Wm +fA +fA +YV +qs +MH +nu +nu +nu +ny +ca +oS +nu +nu +Qx +nu +nu +hx +nu +nu +nu +nu +nu +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +nu +nu +ib +ox +"} +(31,1,1) = {" +ox +kg +kg +kg +Hu +Zq +wy +Zq +lT +kg +kg +Gn +Gn +KG +Ak +nv +Ot +mG +hw +kg +kg +Wm +fA +fA +fA +fA +fA +fA +fA +fA +fA +ak +nu +nu +qs +nu +nu +TC +nu +YV +nu +ny +nu +oS +nu +nu +nu +SX +nu +nu +nu +zg +BO +BO +BO +BO +BO +og +Ud +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +nu +nu +ib +ox +"} +(32,1,1) = {" +ox +kg +kg +Gn +VI +xw +gQ +ka +iR +kg +kg +Gn +Gn +sz +KG +KG +KG +KG +mz +kg +kZ +kZ +sd +kZ +lC +kZ +TJ +UM +kZ +IQ +UM +UM +AY +nu +nI +nu +nu +nu +nu +oS +nu +nu +nu +nu +nu +qs +nu +nu +nu +nu +nu +nu +BO +BO +BO +BO +BO +BO +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +nu +nu +ib +ox +"} +(33,1,1) = {" +ox +PO +PO +gk +PO +Zc +IL +Yu +SJ +Yu +Yu +Yu +ob +dL +uK +MP +uK +uK +dL +Jc +Mo +eJ +Mo +hc +yu +eJ +Fg +eJ +YN +tF +Mo +Zj +HQ +qo +Jp +nu +aR +nu +TC +nu +YV +nu +nu +oS +nu +nu +ny +Sw +nu +nu +nu +nu +BO +BO +BO +BO +BO +BO +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +Io +ib +ib +nu +nu +ib +ox +"} +(34,1,1) = {" +ox +kg +kg +Gn +Nl +gh +jw +lT +oo +kg +kg +Gn +Gn +Wa +KG +xd +Ez +mz +HK +kg +ie +Jw +Jw +jk +Jw +jk +dn +Jw +Jw +LH +Ii +Qi +aI +nu +Xo +nu +nu +YV +Sw +nu +nu +nu +sA +nu +Gj +nu +nu +HZ +nu +YV +nu +nu +BO +BO +BO +BO +BO +BO +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +nu +nu +ib +ox +"} +(35,1,1) = {" +ox +kg +kg +kg +Hu +Ep +iV +Go +Ip +kg +kg +Gn +Gn +lO +nO +hU +UD +KG +dm +kg +kg +ll +fA +fA +fA +ak +fA +fA +fA +fA +ll +fA +nu +nu +ny +nu +nu +Aj +HZ +nu +ew +nu +nu +bu +nu +nu +nu +nu +nu +Aj +nu +nu +BO +BO +BO +BO +BO +BO +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +nu +nu +ib +ox +"} +(36,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +KG +WR +iP +rU +Ez +cf +GM +GM +fA +fA +yZ +vf +ll +fA +fA +fA +ak +fA +fA +oS +ny +qs +YV +qs +nu +nu +nu +nu +nu +nu +Sw +nu +qs +oS +nu +nu +Sw +nu +nu +BO +BO +BO +BO +BO +BO +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +nu +nu +ib +ox +"} +(37,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +bd +xd +zW +nv +DP +KG +FV +GM +GM +fA +fA +fA +GM +Px +fA +IG +GM +Hi +fA +fA +nu +nu +nu +nu +TC +nu +ah +nu +nu +nm +nu +nu +nu +nu +nu +nu +sk +nu +nu +zg +BO +BO +BO +BO +BO +Fp +Ud +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +nu +nu +ib +ox +"} +(38,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +bd +KG +KG +KG +lO +Jc +GM +GM +GM +fA +fA +fA +fA +fA +fA +GM +Jt +fA +fA +fA +nu +TC +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(39,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +Ek +KG +lO +MW +pP +GM +GM +GM +GM +fA +fA +fA +fA +fA +fA +fA +xD +fA +fA +fA +oS +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(40,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +IB +nu +nu +nu +nu +GM +RV +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(41,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +GM +nu +nu +Sw +Xv +GM +fA +fA +fA +fA +fA +fA +fA +fA +fA +GM +GM +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(42,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +GM +nu +nu +nu +ny +GM +fA +fA +fA +fA +fA +fA +fA +fA +fA +EC +GM +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +Bo +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ox +"} +(43,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +WM +GM +Px +ny +nu +nu +nu +nu +nu +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ox +"} +(44,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +GM +GM +GM +nu +nu +nu +nu +nu +nu +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(45,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +GM +GM +GM +nu +nu +nu +nu +nu +nu +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(46,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +Ti +GM +GM +nu +nu +nu +nu +nu +nu +fA +fA +ak +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +wq +nu +nu +nu +nu +nu +nu +nu +nu +nu +fA +ib +ox +"} +(47,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +Ti +GM +nu +nu +nu +nu +nu +nu +fA +fA +fA +xD +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +fA +fA +ib +ox +"} +(48,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +Ti +GM +nu +nu +nu +nu +nu +nu +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +fA +fA +ib +ox +"} +(49,1,1) = {" +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +Ti +GM +nu +nu +nu +nu +nu +nu +fA +fA +fA +GM +fA +fA +fA +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +Fq +nu +ib +ib +ib +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +fA +ib +ox +"} +(50,1,1) = {" +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +kg +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +rt +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(51,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +dQ +dQ +XO +dQ +dQ +GM +nu +nu +nu +ib +ox +"} +(52,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +Fq +nu +nu +nu +nu +nu +nu +nu +nu +nu +dQ +GH +jN +ZN +zo +GM +nu +nu +nu +ib +ox +"} +(53,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +RC +Zu +QD +bt +qW +CX +nu +nu +nu +ib +ox +"} +(54,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +dQ +WS +Tm +Vc +SI +Lx +nu +nu +nu +ib +ox +"} +(55,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +dQ +dQ +Pv +dQ +dQ +Lx +nu +nu +nu +ib +ox +"} +(56,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +ib +nu +nu +nu +fA +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +GM +GM +GM +GM +dx +gK +nu +nu +nu +ib +ox +"} +(57,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +Io +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(58,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ox +"} +(59,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +fA +fA +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +ox +"} +(60,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +fA +fA +fA +fA +nu +nu +nu +nu +nu +nu +Xb +nu +nu +nu +ib +ox +"} +(61,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +nu +nu +ib +ox +"} +(62,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +nu +ib +ox +"} +(63,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +ib +nu +nu +nu +ib +ib +ib +nu +nu +nu +nu +nu +ib +ib +nu +nu +nu +nu +ib +ib +ib +nu +nu +nu +nu +nu +nu +nu +nu +ib +ib +nu +nu +nu +nu +ib +ib +ox +"} +(64,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ib +ox +"} +(65,1,1) = {" +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +cp +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +ox +"} diff --git a/_maps/virtual_domains/pipedream.dmm b/_maps/virtual_domains/pipedream.dmm new file mode 100644 index 000000000000..44bd845477a1 --- /dev/null +++ b/_maps/virtual_domains/pipedream.dmm @@ -0,0 +1,3713 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"af" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"aw" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"ax" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/frame/computer{ + anchored = 1; + dir = 4 + }, +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"aK" = ( +/turf/open/space/basic, +/area/space) +"aL" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"bq" = ( +/obj/machinery/light/small/red/dim{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"bs" = ( +/turf/open/floor/carpet/orange, +/area/virtual_domain/powered) +"bw" = ( +/obj/structure/disposalpipe/broken{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/crate/preopen, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"bx" = ( +/obj/structure/frame/computer, +/obj/item/shard, +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-12" + }, +/area/virtual_domain/powered) +"bA" = ( +/obj/structure/chair/plastic, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"bG" = ( +/obj/structure/lattice/catwalk{ + name = "industrial lift" + }, +/obj/structure/closet/crate/preopen, +/obj/structure/railing, +/turf/open/chasm, +/area/virtual_domain/powered) +"bS" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/folder/yellow, +/obj/item/folder/blue{ + pixel_x = 2; + pixel_y = -2 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"cw" = ( +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"cB" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"cF" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 9 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"dx" = ( +/obj/effect/turf_decal/trimline/yellow/line, +/obj/item/shard, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"dz" = ( +/obj/machinery/light/broken, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/yellow/corner, +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"dA" = ( +/obj/machinery/light/dim{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"dP" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"eg" = ( +/turf/closed/wall, +/area/virtual_domain/powered) +"ei" = ( +/obj/machinery/conveyor/auto{ + dir = 6; + icon_state = "conveyor_map_inverted"; + inverted = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"ev" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"eJ" = ( +/obj/structure/disposalpipe/sorting{ + dir = 2 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"eN" = ( +/obj/effect/turf_decal/trimline/yellow/arrow_cw{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/broken{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"eY" = ( +/turf/closed/wall/r_wall, +/area/virtual_domain/powered) +"fe" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/table/reinforced, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"fg" = ( +/turf/open/floor/iron/stairs/left{ + dir = 8 + }, +/area/virtual_domain/powered) +"fj" = ( +/obj/structure/closet/crate/preopen, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"fl" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"fw" = ( +/obj/structure/door_assembly/door_assembly_eng, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"fK" = ( +/obj/structure/chair/stool/bar/directional/west, +/turf/open/floor/iron/cafeteria, +/area/virtual_domain/powered) +"fR" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 5 + }, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"fZ" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"gc" = ( +/obj/structure/disposalpipe/broken, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"gj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"gs" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"gN" = ( +/obj/structure/disposalpipe/sorting{ + dir = 8 + }, +/turf/open/floor/catwalk_floor/iron, +/area/virtual_domain/powered) +"gV" = ( +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"hg" = ( +/obj/effect/turf_decal/caution{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"hi" = ( +/turf/open/floor/iron, +/area/virtual_domain/powered) +"hk" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/broken{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"ho" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"iw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"iz" = ( +/obj/structure/broken_flooring/corner, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"iI" = ( +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/corner, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"jv" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8 + }, +/obj/machinery/light/small/red/dim{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"jw" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"jH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron, +/area/virtual_domain/powered) +"jQ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small/red/dim{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"jS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"jW" = ( +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"kh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"ki" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"kn" = ( +/obj/machinery/light/small/red/dim{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"kJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/indestructible{ + dir = 4; + id = "factorylockdown" + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"kU" = ( +/turf/open/floor/plating, +/area/virtual_domain/powered) +"lp" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"lt" = ( +/obj/structure/disposalpipe/sorting{ + dir = 8 + }, +/mob/living/basic/hivebot/range, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"lx" = ( +/obj/machinery/door/poddoor/shutters/indestructible{ + dir = 4; + id = "factorylockdown" + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"lB" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 5 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"lC" = ( +/obj/machinery/door/airlock/glass, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"lI" = ( +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"lN" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"lW" = ( +/obj/structure/disposalpipe/sorting{ + dir = 8 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"mh" = ( +/obj/structure/broken_flooring/pile{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"mu" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"mE" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"mY" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/obj/machinery/light/small/red/dim{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"nc" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster/official/safety_internals/directional/south, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"nz" = ( +/obj/structure/broken_flooring/side/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"nD" = ( +/obj/structure/disposalpipe/trunk/multiz, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"nL" = ( +/obj/effect/turf_decal/tile/dark/half, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"nS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"op" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/dim{ + dir = 1 + }, +/obj/structure/sign/warning/doors/directional/north, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"oN" = ( +/obj/machinery/conveyor/auto, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"oX" = ( +/obj/structure/broken_flooring/corner/directional/north, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"pa" = ( +/obj/machinery/light/small/red/dim{ + dir = 1 + }, +/turf/open/floor/carpet/orange, +/area/virtual_domain/powered) +"pb" = ( +/obj/structure/broken_flooring/corner{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"pf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/effect/mapping_helpers/damaged_window, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"pi" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"po" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/maint, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"pv" = ( +/obj/structure/broken_flooring/side{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"pI" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/light/small/red/dim{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"pJ" = ( +/obj/structure/broken_flooring/pile{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"qc" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/effect/spawner/random/bureaucracy/briefcase, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"qk" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"qK" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"qN" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/mob_spawn/corpse/human/factory, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"qT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small/red/dim{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"qV" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"qW" = ( +/obj/machinery/light/dim{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"rc" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/contraband/random/directional/north, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"rz" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/obj/machinery/light/small/red/dim, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"rG" = ( +/obj/machinery/light/dim, +/obj/effect/turf_decal/trimline/yellow/line, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"rJ" = ( +/obj/structure/railing, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"rM" = ( +/obj/structure/disposalpipe/broken{ + dir = 1 + }, +/mob/living/basic/hivebot/strong, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"rO" = ( +/turf/closed/mineral, +/area/space) +"sn" = ( +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-38" + }, +/area/virtual_domain/powered) +"sB" = ( +/obj/machinery/light/broken{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"sW" = ( +/obj/effect/decal/cleanable/oil/streak, +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"tl" = ( +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "factorylockdown" + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"tr" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"tE" = ( +/obj/structure/disposalpipe/segment, +/mob/living/basic/hivebot/range, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"ud" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-110" + }, +/area/virtual_domain/powered) +"uk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/effect/decal/cleanable/blood/splatter/over_window, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"um" = ( +/obj/machinery/light/dim{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria, +/area/virtual_domain/powered) +"uv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/broken_flooring/pile{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"uz" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"uC" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"uF" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"uP" = ( +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-55" + }, +/area/virtual_domain/powered) +"uU" = ( +/obj/structure/broken_flooring/side, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"vb" = ( +/obj/effect/turf_decal/trimline/yellow/line, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 5 + }, +/obj/machinery/light/broken, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"ve" = ( +/obj/machinery/mass_driver/trash{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"vA" = ( +/obj/structure/closet/crate/maint, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"vL" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"vQ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"vU" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"wg" = ( +/obj/machinery/light/small/red/dim{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/preopen, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"wh" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-207" + }, +/area/virtual_domain/powered) +"wl" = ( +/obj/item/shard, +/turf/open/space/basic, +/area/space) +"wm" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/structure/sign/clock/directional/north, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"wq" = ( +/obj/structure/table/wood, +/obj/machinery/button/door{ + name = "Cargo Bay Lockdown"; + id = "factorylockdown" + }, +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-63" + }, +/area/virtual_domain/powered) +"ws" = ( +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"ww" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/hivebot, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"wU" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"wW" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"xa" = ( +/obj/machinery/door/poddoor/shutters/indestructible{ + dir = 8; + id = "factorylockdown" + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"xj" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"xk" = ( +/obj/machinery/light/dim{ + dir = 4 + }, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"xl" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"xA" = ( +/obj/effect/decal/cleanable/generic, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"xE" = ( +/obj/effect/turf_decal/trimline/yellow/line, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 9 + }, +/obj/machinery/light/broken, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"xF" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/virtual_domain/powered) +"xM" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/dogbed{ + name = "cat bed" + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"xT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"yB" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/welded, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"yM" = ( +/turf/closed/indestructible/fakedoor{ + name = "Stairwell Access" + }, +/area/virtual_domain/powered) +"yQ" = ( +/turf/template_noop, +/area/template_noop) +"yX" = ( +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"zp" = ( +/obj/structure/chair/sofa/corp/right{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/broken, +/turf/open/floor/carpet/orange, +/area/virtual_domain/powered) +"zB" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/tray, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"zE" = ( +/obj/structure/disposalpipe/broken{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"zO" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/broken, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Av" = ( +/obj/item/stack/rods/two, +/turf/open/space/basic, +/area/space) +"Aw" = ( +/obj/structure/lattice/catwalk{ + name = "industrial lift" + }, +/mob/living/basic/hivebot/rapid, +/turf/open/chasm, +/area/virtual_domain/powered) +"AJ" = ( +/obj/effect/decal/cleanable/generic, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"AP" = ( +/obj/structure/railing, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"AU" = ( +/turf/open/misc/asteroid/airless, +/area/space) +"Bd" = ( +/obj/structure/closet/secure_closet/tac{ + req_access = null + }, +/obj/item/ammo_casing/shotgun/buckshot, +/obj/item/ammo_casing/shotgun/buckshot, +/obj/item/ammo_casing/shotgun/buckshot, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Bh" = ( +/obj/structure/broken_flooring/corner/directional/east, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Bx" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + broken = 1; + desc = "No longer cooks and boils stuff." + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"BA" = ( +/obj/structure/broken_flooring/corner/directional/south, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"BI" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Quartermaster's Office" + }, +/obj/effect/mapping_helpers/airlock/access/any/away/command, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"BN" = ( +/obj/structure/flora/rock/pile/style_random, +/turf/open/misc/asteroid/airless, +/area/space) +"BW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"BX" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Ci" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Ct" = ( +/obj/machinery/conveyor/auto{ + dir = 6 + }, +/obj/machinery/light/broken{ + dir = 1 + }, +/obj/structure/sign/warning/vacuum/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Cv" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-157" + }, +/area/virtual_domain/powered) +"CA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/broken_flooring/side{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"CQ" = ( +/obj/effect/spawner/random/trash/botanical_waste, +/obj/item/trash/chips, +/obj/structure/closet/secure_closet/freezer/empty/open, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"CR" = ( +/obj/structure/flora/rock/pile/style_random, +/turf/open/misc/asteroid/airless, +/area/virtual_domain/powered) +"CX" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Dr" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/light/dim{ + dir = 8 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"DA" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/catwalk_floor/iron, +/area/virtual_domain/powered) +"DE" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"DP" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/food_or_drink/snack, +/turf/open/floor/iron/cafeteria, +/area/virtual_domain/powered) +"Ex" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-137" + }, +/area/virtual_domain/powered) +"Ez" = ( +/obj/structure/flora/rock/style_random, +/turf/open/misc/asteroid/airless, +/area/space) +"EI" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"EJ" = ( +/obj/machinery/recycler/deathtrap{ + dir = 8 + }, +/obj/machinery/conveyor/auto{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Fa" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/crate/maint, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Ff" = ( +/obj/structure/disposalpipe/trunk/multiz{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Fo" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/cafeteria, +/area/virtual_domain/powered) +"Fr" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/crate/preopen, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Fw" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/rock/pile/style_random, +/obj/structure/flora/bush/flowers_yw/style_random, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/grass, +/area/virtual_domain/powered) +"FK" = ( +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"FO" = ( +/turf/open/misc/asteroid/airless, +/area/virtual_domain/powered) +"FP" = ( +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-110" + }, +/area/virtual_domain/powered) +"Gb" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Ge" = ( +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-21" + }, +/area/virtual_domain/powered) +"Gh" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Gi" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/yellow/corner, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Gs" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/obj/machinery/light/broken{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Gy" = ( +/obj/machinery/conveyor/auto{ + dir = 9; + inverted = 1; + icon_state = "conveyor_map_inverted" + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"GI" = ( +/obj/effect/turf_decal/trimline/yellow/arrow_ccw, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"GV" = ( +/obj/machinery/light/small/red/dim{ + dir = 8 + }, +/obj/effect/turf_decal/stripes{ + dir = 9 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Hn" = ( +/turf/open/floor/iron/cafeteria, +/area/virtual_domain/powered) +"HI" = ( +/obj/structure/broken_flooring/pile/directional/north, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Ib" = ( +/obj/structure/chair/sofa/corp/left{ + dir = 1 + }, +/turf/open/floor/carpet/orange, +/area/virtual_domain/powered) +"Ip" = ( +/obj/machinery/door/airlock/engineering/glass, +/obj/effect/mapping_helpers/airlock/access/any/away/supply, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Is" = ( +/obj/machinery/door/airlock/engineering/glass, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"IF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"IK" = ( +/obj/effect/turf_decal/trimline/yellow/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"IZ" = ( +/obj/structure/lattice/catwalk{ + name = "industrial lift" + }, +/obj/structure/closet/crate, +/turf/open/chasm, +/area/virtual_domain/powered) +"Jl" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Jm" = ( +/obj/structure/broken_flooring/pile/directional/north, +/obj/machinery/light/dim, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Jn" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/structure/sign/warning/doors/directional/east, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Jq" = ( +/obj/structure/broken_flooring/pile{ + dir = 1 + }, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"JE" = ( +/obj/machinery/light/small/red/dim{ + dir = 1 + }, +/obj/structure/sign/warning/chem_diamond/directional/west, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"JR" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"JT" = ( +/obj/structure/lattice/catwalk{ + name = "industrial lift" + }, +/obj/effect/spawner/random/trash/grime, +/turf/open/chasm, +/area/virtual_domain/powered) +"Kb" = ( +/obj/effect/mob_spawn/corpse/human/factory/guard, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Kt" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"KO" = ( +/obj/structure/broken_flooring/side/directional/north, +/obj/machinery/light/small/red/dim, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"KX" = ( +/obj/structure/lattice/catwalk{ + name = "industrial lift" + }, +/turf/open/chasm, +/area/virtual_domain/powered) +"Ln" = ( +/obj/structure/disposalpipe/broken{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Lp" = ( +/obj/effect/turf_decal/trimline/yellow/line, +/obj/machinery/light/broken, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"LN" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 10 + }, +/obj/machinery/light/dim{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"LU" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Mc" = ( +/obj/effect/turf_decal/trimline/yellow/warning, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Mh" = ( +/obj/machinery/conveyor/auto{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Mi" = ( +/obj/effect/mob_spawn/corpse/human/factory, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Mj" = ( +/turf/closed/mineral, +/area/virtual_domain/powered) +"Mu" = ( +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Mx" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/filingcabinet, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"My" = ( +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/obj/machinery/light/small/red/dim{ + dir = 8 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"MI" = ( +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-74" + }, +/area/virtual_domain/powered) +"MN" = ( +/obj/effect/turf_decal/tile/dark, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Nc" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Nu" = ( +/obj/effect/turf_decal/trimline/yellow/line, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"NW" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/hivebot/strong, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Ok" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"On" = ( +/obj/structure/broken_flooring/side{ + dir = 4 + }, +/obj/machinery/light/broken{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"OJ" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"OL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"OQ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/ripped/directional/west, +/turf/open/floor/carpet/orange, +/area/virtual_domain/powered) +"OR" = ( +/obj/machinery/light/broken, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Po" = ( +/obj/machinery/light/small/red/dim{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/broken_flooring/corner, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Pr" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 8 + }, +/obj/structure/sign/poster/official/random/directional/east, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"PH" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Qd" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 6 + }, +/obj/machinery/light/dim{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Qh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/broken{ + dir = 8 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Qj" = ( +/obj/machinery/light/dim{ + dir = 8 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Qo" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"Qr" = ( +/turf/closed/indestructible/fakedoor/maintenance{ + name = "maintenance access" + }, +/area/virtual_domain/powered) +"Qv" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 9 + }, +/obj/machinery/light/small/red/dim{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Qy" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"QI" = ( +/obj/structure/sign/calendar/directional/north, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/iron/cafeteria, +/area/virtual_domain/powered) +"QK" = ( +/obj/structure/table, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"QN" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"QP" = ( +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"QW" = ( +/obj/machinery/conveyor/auto{ + dir = 5 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Ru" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Ry" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"RJ" = ( +/turf/closed/indestructible/binary, +/area/virtual_domain/powered) +"RK" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"RZ" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Sg" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Sl" = ( +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"SC" = ( +/mob/living/basic/hivebot/strong, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"SR" = ( +/obj/effect/turf_decal/trimline/yellow/line, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"SS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/mineral, +/area/virtual_domain/powered) +"SU" = ( +/obj/effect/spawner/structure/window, +/obj/item/stack/rods/two, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"SZ" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/food_or_drink/booze, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Te" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 5 + }, +/obj/effect/mob_spawn/corpse/human/factory/qm, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Tn" = ( +/obj/structure/broken_flooring/corner{ + dir = 4 + }, +/mob/living/basic/hivebot, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Tp" = ( +/obj/machinery/door/poddoor/shutters/indestructible{ + dir = 4; + id = "factorylockdown" + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Tt" = ( +/obj/machinery/conveyor/auto{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"TH" = ( +/obj/structure/broken_flooring/corner/directional/south, +/obj/item/ammo_casing/shotgun/buckshot/spent, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Ue" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small/red/dim{ + dir = 8 + }, +/obj/structure/sign/poster/official/cleanliness/directional/west, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Uw" = ( +/obj/machinery/light/dim{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"UO" = ( +/obj/structure/broken_flooring/side/directional/north, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"UV" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 6 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"UX" = ( +/obj/effect/turf_decal/trimline/yellow/line, +/obj/machinery/light/small/red/dim, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"UY" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Vb" = ( +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/broken, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Vg" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/light/small/red/dim, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Vh" = ( +/obj/structure/table/reinforced, +/turf/open/floor/iron/cafeteria, +/area/virtual_domain/powered) +"Vy" = ( +/obj/structure/broken_flooring/singular{ + dir = 4 + }, +/obj/effect/mob_spawn/corpse/human/factory/guard, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"VA" = ( +/obj/machinery/light/small/red/dim{ + dir = 1 + }, +/obj/structure/table, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"VJ" = ( +/obj/structure/broken_flooring/corner{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"VL" = ( +/obj/structure/sign/warning/secure_area/directional/south, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"VO" = ( +/obj/machinery/light/broken{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Wd" = ( +/obj/structure/lattice/catwalk{ + name = "industrial lift" + }, +/obj/structure/railing, +/turf/open/chasm, +/area/virtual_domain/powered) +"Wp" = ( +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"WT" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"WV" = ( +/obj/machinery/conveyor/auto{ + dir = 10; + inverted = 1; + icon_state = "conveyor_map_inverted" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Xb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/virtual_domain/powered) +"Xc" = ( +/obj/effect/turf_decal/trimline/yellow/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Xm" = ( +/obj/item/gun/ballistic/shotgun/lethal, +/obj/machinery/light/broken{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Xo" = ( +/obj/machinery/conveyor/auto{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Xw" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 10 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"XL" = ( +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 4 + }, +/obj/structure/sign/warning/vacuum/external/directional/south, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"XN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"XO" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"XP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"XQ" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, +/obj/machinery/light/dim{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"XR" = ( +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Yc" = ( +/obj/item/gun/ballistic/revolver, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Yl" = ( +/obj/structure/broken_flooring/corner/directional/west, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Ym" = ( +/mob/living/simple_animal/pet/cat/space, +/obj/structure/bed/dogbed{ + name = "cat bed" + }, +/obj/item/toy/plush/moth{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/machinery/light/small/dim/directional/south, +/obj/structure/sign/poster/official/moth_hardhat/directional/west, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Yt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Yz" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "factorylockdown" + }, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"YF" = ( +/obj/machinery/light/small/red/dim, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"YL" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"YP" = ( +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 1 + }, +/obj/machinery/light/dim, +/turf/open/floor/iron, +/area/virtual_domain/powered) +"Zb" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"Zg" = ( +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-157" + }, +/area/virtual_domain/powered) +"Zy" = ( +/obj/structure/table, +/obj/item/flashlight/lantern, +/turf/open/floor/plating, +/area/virtual_domain/powered) +"ZI" = ( +/turf/open/floor/carpet/royalblue{ + icon_state = "carpet_royalblue-203" + }, +/area/virtual_domain/powered) +"ZP" = ( +/obj/structure/railing, +/turf/open/floor/iron/stairs/right{ + dir = 8 + }, +/area/virtual_domain/powered) + +(1,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +"} +(2,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +Mj +Mj +eg +eg +SS +eg +eg +eg +Xb +Mj +Mj +RJ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +"} +(3,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +Mj +Bx +SZ +Ue +CQ +zB +eg +OQ +bs +Ib +Mj +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +yQ +yQ +"} +(4,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +eg +ho +ho +qN +ho +zO +eg +pa +bs +zp +eY +RJ +RJ +Mj +RJ +RJ +rO +rO +RJ +RJ +xF +"} +(5,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +eg +eg +eg +eg +eg +eg +eg +RJ +eg +um +DP +Vh +Vh +Hn +tr +fg +ZP +Fw +eY +Mj +Mj +Mj +AU +AU +AU +rO +rO +rO +RJ +"} +(6,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +eg +vA +Dr +bw +Jq +gc +eg +RJ +eg +Hn +fK +fK +fK +Hn +lC +hi +FK +eY +eY +Mj +Ez +AU +aK +aK +AU +AU +BN +rO +RJ +"} +(7,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +eg +jQ +lt +kU +vU +lN +eg +RJ +eg +QI +Fo +Hn +Hn +Hn +tr +hi +Ln +eY +Mj +Mj +AU +AU +BN +aK +aK +aK +AU +rO +RJ +"} +(8,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +eg +uU +gj +kU +Tn +OR +eg +RJ +eg +eg +uk +pf +pf +eg +eg +qV +Vb +eY +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +RJ +"} +(9,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +eg +ki +gj +kU +kU +kU +eg +RJ +eg +kU +kU +nD +nS +kU +Qj +FK +nc +eY +aK +aK +aK +aK +aK +aK +AU +aK +aK +aK +RJ +"} +(10,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +RJ +RJ +RJ +RJ +RJ +eg +eg +kJ +lx +lx +lp +eg +RJ +eg +mu +AJ +mu +eJ +MN +BW +hi +Sg +eY +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +RJ +"} +(11,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +eg +eg +eg +Qr +eg +eg +JE +gj +pi +kU +VL +eg +eg +eg +VO +kU +Fr +jw +qk +XR +vQ +Vg +eY +aK +aK +aK +JR +JR +JR +JR +JR +Qo +aK +RJ +"} +(12,1,1) = {" +yQ +yQ +yQ +yQ +RJ +RJ +RJ +eg +eg +eg +eg +eg +eg +yM +eg +GV +WT +xj +qk +Qh +XP +lW +ww +EI +Kt +Qh +mu +Yz +xl +HI +kU +Bh +Kb +kU +hi +CX +eY +eY +aK +aK +JR +JR +JR +JR +JR +JR +aK +RJ +"} +(13,1,1) = {" +yQ +yQ +yQ +yQ +RJ +RJ +RJ +eg +VA +bA +eg +kU +sB +WT +mh +kU +pv +AP +IZ +KX +Wd +uv +DE +Mi +gj +xT +hi +tl +IF +kU +hi +Yc +kU +kU +vU +lB +XL +eg +tr +eY +JR +JR +JR +JR +JR +JR +aK +RJ +"} +(14,1,1) = {" +yQ +yQ +yQ +yQ +RJ +RJ +kU +kU +Zy +kU +Gh +Kt +mu +mu +mu +uF +xl +AP +KX +JT +bG +qk +DA +DA +zE +gc +mu +Yz +lW +pi +kU +kU +nL +BW +hi +hg +Wp +Ru +hi +gs +JR +JR +JR +JR +JR +JR +aK +RJ +"} +(15,1,1) = {" +yQ +RJ +RJ +RJ +RJ +RJ +RJ +kU +QP +kU +eg +qT +Gb +Uw +iz +jS +gj +rJ +KX +Aw +Wd +Ff +lN +XO +gj +DE +SC +tl +qk +mu +mu +xl +kU +oX +hi +cF +cw +eY +tr +eY +JR +JR +JR +JR +JR +JR +aK +RJ +"} +(16,1,1) = {" +yQ +RJ +Mj +Mj +Mj +Mj +RJ +eg +eg +eg +eg +Xb +yB +eg +eg +kU +qk +PH +dA +Po +Jn +aw +OJ +CA +QN +kU +Uw +tl +kU +Mc +kU +kh +fj +kU +FK +CX +eY +eY +aK +aK +JR +JR +JR +JR +JR +JR +aK +RJ +"} +(17,1,1) = {" +yQ +RJ +Mj +BN +AU +Mj +Mj +Mj +eg +QW +My +Qy +kU +po +eg +tr +Is +tr +eg +eg +eg +kU +pi +kU +lI +YF +eg +eg +op +kU +BA +iw +kU +kU +FK +rz +eY +aK +aK +aK +JR +JR +JR +JR +JR +ev +aK +RJ +"} +(18,1,1) = {" +yQ +RJ +aK +AU +AU +AU +aK +aK +eg +Ct +oN +Gy +jW +xT +eg +Tp +Tp +Tp +eg +Ym +eg +eg +xa +xa +xa +eg +eg +eg +kU +Zb +kU +Yt +kU +UO +hi +CX +eY +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +RJ +"} +(19,1,1) = {" +RJ +RJ +aK +aK +aK +aK +wl +aK +yX +ve +Tt +Xo +DE +oX +eg +Sl +gV +dz +eg +uC +eg +qK +mh +kU +kU +Qj +VJ +eg +kU +kU +kU +gj +kU +kU +hi +Ok +eY +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +RJ +"} +(20,1,1) = {" +RJ +aK +aK +aK +aK +aK +aK +aK +tr +uz +Mh +EJ +kU +kU +mE +Mu +Yl +pJ +eg +kn +pb +kU +kU +kU +Fa +kU +YF +eg +eg +pf +tr +XN +eg +eg +Ci +YP +eY +eY +aK +aK +aK +aK +aK +aK +aK +aK +aK +RJ +"} +(21,1,1) = {" +RJ +aK +aK +aK +aK +aK +Av +CR +tr +kU +ei +WV +pi +Jm +eg +eN +gN +GI +eg +rc +mu +rM +gc +vQ +tE +mu +mu +eg +Mx +qc +ax +bS +fe +pf +hi +hi +af +eY +aK +aK +aK +aK +aK +aK +aK +aK +aK +RJ +"} +(22,1,1) = {" +RJ +aK +aK +aK +aK +aK +aK +FO +eg +eg +wg +uU +lN +uz +eg +mY +jH +rG +eg +xT +Uw +kU +kU +On +pi +kU +Mj +eg +wm +xA +fZ +OL +aL +Ip +hi +lN +QK +eY +aK +aK +aK +aK +BN +aK +aK +aK +aK +RJ +"} +(23,1,1) = {" +RJ +aK +aK +aK +aK +aK +AU +FO +Mj +eg +eg +Mj +Mj +eY +eY +UO +jH +Nu +eg +eg +eg +eg +eg +Mj +Mj +Mj +Mj +eg +RZ +vQ +wW +wU +dP +tr +hi +hi +Nc +eY +aK +BN +AU +aK +aK +aK +aK +aK +aK +RJ +"} +(24,1,1) = {" +RJ +RJ +aK +aK +aK +AU +Ez +Mj +Mj +RJ +Mj +Mj +Vy +hi +eY +CX +jH +Nu +eg +Gi +Qd +jv +fR +cB +Mj +RJ +RJ +eg +Ry +hk +pI +XQ +YL +eg +bq +hi +Mj +eY +Mj +Mj +AU +AU +aK +aK +aK +aK +rO +RJ +"} +(25,1,1) = {" +yQ +RJ +aK +AU +BN +AU +Mj +Mj +RJ +RJ +eY +Xm +TH +fw +eY +qW +hi +dx +pf +UV +sn +uP +Ge +vb +eg +RJ +RJ +eg +Mj +Mj +eg +eg +eg +eg +eg +Mj +Mj +RJ +RJ +Mj +Mj +Mj +RJ +RJ +Mj +Mj +Mj +RJ +"} +(26,1,1) = {" +yQ +RJ +RJ +RJ +RJ +rO +Mj +RJ +RJ +RJ +eY +Bd +vL +hi +vU +sW +hi +SR +SU +CX +FP +wh +Zg +Nu +eg +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +RJ +"} +(27,1,1) = {" +yQ +yQ +yQ +yQ +RJ +RJ +RJ +RJ +yQ +RJ +eY +Jl +RK +BX +eY +CX +RK +iI +BI +ws +ud +bx +Cv +Nu +eg +RJ +RJ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +"} +(28,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +eY +NW +UY +KO +eY +fl +jH +Nu +uk +CX +FP +wq +Zg +Nu +eg +RJ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +"} +(29,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +eY +xk +Te +xT +eY +CX +jH +Nu +pf +Xw +MI +ZI +Ex +xE +eg +RJ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +"} +(30,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +eY +eY +eY +eY +eY +CX +jH +Xc +eg +Pr +LN +xM +Qv +LU +Mj +RJ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +"} +(31,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +RJ +RJ +RJ +RJ +eg +Gs +jH +UX +eg +eg +eg +eg +Mj +Mj +Mj +RJ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +"} +(32,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +eg +Ok +nz +IK +eg +RJ +RJ +RJ +RJ +RJ +RJ +RJ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +"} +(33,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +Mj +CX +hi +Nu +RJ +RJ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +"} +(34,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +Mj +CX +RJ +Lp +eg +RJ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +"} +(35,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +RJ +fl +RJ +RJ +RJ +RJ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +"} +(36,1,1) = {" +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +RJ +RJ +RJ +RJ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +yQ +"} diff --git a/_maps/virtual_domains/pirates.dmm b/_maps/virtual_domains/pirates.dmm new file mode 100644 index 000000000000..5356f53d1932 --- /dev/null +++ b/_maps/virtual_domains/pirates.dmm @@ -0,0 +1,2548 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ag" = ( +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"by" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 5 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"bz" = ( +/obj/structure/flora/bush/grassy{ + pixel_y = 8 + }, +/obj/structure/flora/bush/lavendergrass{ + pixel_y = -10 + }, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"bP" = ( +/obj/structure/flora/bush/flowers_br/style_random, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"cl" = ( +/obj/structure/flora/rock/style_3, +/turf/open/water/beach, +/area/virtual_domain/powered) +"ct" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/head/costume/pirate/armored, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/parquet, +/area/virtual_domain/powered) +"cx" = ( +/turf/closed/indestructible/binary, +/area/virtual_domain/powered) +"cJ" = ( +/obj/item/stack/cannonball/shellball{ + pixel_x = 13; + pixel_y = 11 + }, +/obj/item/stack/cannonball{ + pixel_x = 9; + pixel_y = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"cQ" = ( +/obj/structure/flora/grass/jungle/b{ + pixel_x = -15; + pixel_y = 9 + }, +/obj/structure/flora/rock/pile/jungle/large/style_2{ + pixel_x = -3; + pixel_y = -1 + }, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"dp" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/virtual_domain/powered) +"dA" = ( +/obj/structure/bonfire/prelit, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"eb" = ( +/obj/structure/flora/bush/sparsegrass, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"eD" = ( +/obj/structure/flora/tree/palm/style_2, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"eQ" = ( +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"eW" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"fx" = ( +/obj/structure/fluff/beach_umbrella{ + pixel_x = -7; + pixel_y = -10 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"gk" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"gw" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"ht" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/wood/parquet, +/area/virtual_domain/powered) +"hH" = ( +/obj/item/clothing/suit/armor/militia{ + pixel_x = -5; + pixel_y = 12 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/clothing/suit/armor/militia{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/clothing/suit/armor/militia{ + pixel_x = -5; + pixel_y = -3 + }, +/obj/item/clothing/head/costume/fancy{ + pixel_x = 6; + pixel_y = 12 + }, +/obj/item/clothing/head/costume/fancy{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/clothing/head/hats/coordinator{ + pixel_x = 8; + pixel_y = -5 + }, +/obj/structure/closet/cabinet, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"hM" = ( +/obj/structure/closet/crate/goldcrate, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"hW" = ( +/obj/structure/chair/comfy/carp{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"iM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/pirate/ranged/space, +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"iO" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"jl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/flashlight/flare/torch{ + pixel_y = 10; + pixel_x = 7 + }, +/obj/item/reagent_containers/cup/bucket/wooden{ + pixel_y = -16; + pixel_x = 12 + }, +/obj/machinery/recharger{ + pixel_y = 6; + pixel_x = -5 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"jz" = ( +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"jB" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/jukebox, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"jC" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/reagent_containers/cup/glass/bottle/rum{ + desc = "Rum with ghostly properties that can help the drinker enter the spirit realm. It has fermented under the sea of space for ages."; + name = "Ghost Pirate Rum"; + pixel_x = -4; + pixel_y = 12 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -7; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = 3; + pixel_y = 7 + }, +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"jQ" = ( +/obj/item/gun/energy/laser/hellgun{ + pixel_y = 10 + }, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"kg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"kl" = ( +/obj/structure/cannon, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/ash/large{ + pixel_y = -5; + pixel_x = 8 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"lC" = ( +/obj/item/stack/cannonball{ + pixel_x = 7; + pixel_y = 8 + }, +/obj/item/stack/cannonball{ + pixel_x = 11; + pixel_y = -4 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"me" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"mw" = ( +/obj/structure/flora/grass/jungle/b/style_random{ + pixel_x = -13; + pixel_y = 18 + }, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"mP" = ( +/obj/structure/flora/bush/fullgrass, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"nz" = ( +/obj/effect/mob_spawn/corpse/human/pirate, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"nQ" = ( +/obj/machinery/loot_locator, +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"nS" = ( +/obj/structure/flora/rock/pile/jungle/large, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"nX" = ( +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/pirate/melee/space, +/turf/open/floor/wood/parquet, +/area/virtual_domain/powered) +"oo" = ( +/obj/machinery/smartfridge/drying_rack, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"pq" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"px" = ( +/obj/structure/headpike/bone{ + pixel_y = 24 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"pU" = ( +/obj/effect/mob_spawn/corpse/human/pirate, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"qj" = ( +/obj/structure/barricade/wooden, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"qm" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/melee/sabre{ + pixel_y = 12; + pixel_x = -10 + }, +/obj/item/gun/energy/laser/retro, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"qx" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/pirate/ranged, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"qN" = ( +/obj/structure/flora/bush/sunny/style_3{ + pixel_y = 22 + }, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"qX" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/obj/structure/fermenting_barrel{ + pixel_x = 6; + pixel_y = 11 + }, +/obj/effect/mob_spawn/ghost_role/human/pirate/skeleton, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"sn" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/ordnance, +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"so" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"th" = ( +/obj/effect/turf_decal/weather/sand, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"tk" = ( +/obj/structure/flora/bush/flowers_pp, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"to" = ( +/mob/living/simple_animal/hostile/pirate/melee, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"ub" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"uw" = ( +/obj/structure/barricade/sandbags, +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"uM" = ( +/obj/structure/flora/bush/stalky{ + pixel_y = 13; + pixel_x = -8 + }, +/turf/open/water/beach, +/area/virtual_domain/powered) +"uT" = ( +/obj/structure/closet/crate/grave, +/obj/structure/flora/grass/jungle/b, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"wb" = ( +/obj/structure/flora/rock, +/turf/open/water/beach, +/area/virtual_domain/powered) +"we" = ( +/obj/effect/mine/explosive/light, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"xg" = ( +/turf/template_noop, +/area/template_noop) +"xm" = ( +/obj/structure/barricade/wooden/crude, +/turf/closed/wall/mineral/wood/nonmetal, +/area/virtual_domain/powered) +"xB" = ( +/obj/structure/fermenting_barrel/gunpowder{ + pixel_x = -4; + pixel_y = 17 + }, +/obj/structure/fermenting_barrel/gunpowder{ + pixel_x = 4 + }, +/obj/item/stack/cannonball{ + pixel_x = 3; + pixel_y = 8 + }, +/obj/item/reagent_containers/cup/bucket/wooden{ + pixel_y = -10 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"xC" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt, +/turf/open/water/beach, +/area/virtual_domain/powered) +"xI" = ( +/obj/structure/flora/rock/pile/style_2, +/turf/open/water/beach, +/area/virtual_domain/powered) +"yc" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/water/beach, +/area/virtual_domain/powered) +"ye" = ( +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"yi" = ( +/mob/living/simple_animal/hostile/pirate/melee, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"yq" = ( +/obj/structure/barricade/sandbags, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"yw" = ( +/obj/effect/mapping_helpers/burnt_floor, +/mob/living/simple_animal/hostile/pirate/ranged, +/obj/structure/chair/wood, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"yA" = ( +/obj/item/bedsheet/rainbow/double, +/obj/structure/bed/double, +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"zf" = ( +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/flora/bush/ferny, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"zg" = ( +/obj/structure/flora/rock/pile/style_3, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"zR" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"Ax" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt, +/turf/open/water/beach, +/area/virtual_domain/powered) +"AU" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/water/beach, +/area/virtual_domain/powered) +"BC" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"BO" = ( +/obj/structure/bookcase/random/adult, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/wood/parquet, +/area/virtual_domain/powered) +"Cc" = ( +/obj/structure/flora/tree/palm, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Dm" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/wood, +/obj/item/flashlight/flare/torch{ + pixel_y = 10 + }, +/obj/item/flashlight/flare/torch{ + pixel_x = 8; + pixel_y = 6 + }, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"DJ" = ( +/obj/effect/mapping_helpers/burnt_floor, +/obj/structure/bed/maint{ + pixel_x = -10; + pixel_y = 9 + }, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"DL" = ( +/obj/structure/flora/bush/sunny, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"ED" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/weather/sand{ + dir = 10 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"EZ" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"FG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/claymore/cutlass, +/obj/item/clothing/head/costume/pirate/bandana/armored{ + pixel_x = -9; + pixel_y = 7 + }, +/obj/structure/table/wood, +/obj/item/gun/energy/laser{ + pixel_y = -3 + }, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"FT" = ( +/turf/closed/mineral/random/jungle, +/area/virtual_domain/powered) +"GF" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/rock/pile, +/turf/open/water/beach, +/area/virtual_domain/powered) +"GG" = ( +/obj/structure/barricade/sandbags, +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/obj/item/binoculars{ + pixel_x = -1; + pixel_y = 1 + }, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"Hp" = ( +/obj/effect/turf_decal/siding/wood, +/mob/living/simple_animal/hostile/pirate/ranged, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"It" = ( +/obj/structure/flora/bush/sparsegrass, +/obj/structure/flora/bush/lavendergrass, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"Iz" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/bed/maint, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"IF" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/water/beach, +/area/virtual_domain/powered) +"IG" = ( +/obj/effect/mob_spawn/corpse/human/pirate, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"IM" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 10 + }, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"Jo" = ( +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"Jr" = ( +/obj/structure/headpike/bone, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Jv" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"JT" = ( +/obj/effect/decal/cleanable/ants, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"Kb" = ( +/obj/structure/railing{ + color = "#4C3117"; + name = "wooden railing" + }, +/obj/effect/decal/cleanable/vomit/old, +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Kl" = ( +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Kw" = ( +/obj/machinery/door/airlock/vault{ + color = "#825427"; + name = "Ye Olde Strong Door" + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain/powered) +"KC" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/water/beach, +/area/virtual_domain/powered) +"KG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/gun/energy/laser/musket{ + pixel_y = 7 + }, +/obj/item/gun/energy/laser/musket{ + pixel_y = 2 + }, +/obj/item/gun/energy/laser/musket{ + pixel_y = -3 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"KQ" = ( +/obj/structure/flora/rock/style_2, +/turf/open/water/beach, +/area/virtual_domain/powered) +"Ld" = ( +/obj/structure/flora/rock/pile, +/turf/open/water/beach, +/area/virtual_domain/powered) +"Ma" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"Mi" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"MW" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 5 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Nh" = ( +/obj/structure/flora/rock/pile/jungle/style_3{ + pixel_x = -15; + pixel_y = -4 + }, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"Nk" = ( +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Nz" = ( +/obj/structure/flora/bush/jungle, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"NI" = ( +/obj/structure/railing{ + color = "#4C3117"; + name = "wooden railing" + }, +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"ON" = ( +/obj/structure/filingcabinet{ + pixel_x = 11 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain/powered) +"OP" = ( +/obj/structure/flora/bush/stalky, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Pq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/bed/maint{ + pixel_x = 2; + pixel_y = 13 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Pz" = ( +/obj/structure/table/wood, +/mob/living/simple_animal/parrot{ + name = "pepper" + }, +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"PQ" = ( +/obj/structure/flora/grass/jungle/b, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"Qb" = ( +/obj/structure/flora/rock{ + pixel_x = 7 + }, +/turf/open/water/beach, +/area/virtual_domain/powered) +"Rr" = ( +/obj/structure/bed/maint{ + pixel_x = -5; + pixel_y = 9 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"RR" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"Sm" = ( +/obj/structure/flora/tree/jungle, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/misc/grass, +/area/virtual_domain/powered) +"St" = ( +/obj/structure/table/wood, +/obj/item/melee/energy/sword/pirate{ + pixel_y = 10 + }, +/obj/item/clothing/mask/cigarette/cigar{ + pixel_x = 4 + }, +/obj/item/lighter{ + pixel_x = 10; + pixel_y = -8 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"Tt" = ( +/obj/structure/cannon{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"TO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/carpet/blue, +/area/virtual_domain/powered) +"TP" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"TQ" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/bed/maint{ + pixel_x = 2; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/item/toy/plush/beeplushie, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Uy" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/virtual_domain/powered) +"UE" = ( +/obj/structure/barricade/sandbags, +/obj/effect/turf_decal/weather/sand{ + dir = 10 + }, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"Vg" = ( +/obj/effect/mob_spawn/corpse/human/pirate/melee, +/turf/open/water/beach, +/area/virtual_domain/powered) +"Vk" = ( +/obj/structure/barricade/sandbags, +/obj/effect/turf_decal/weather/sand, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/powered) +"VC" = ( +/obj/effect/mob_spawn/corpse/human/damaged, +/turf/open/water/beach, +/area/virtual_domain/powered) +"VF" = ( +/turf/open/water/beach, +/area/virtual_domain/powered) +"VX" = ( +/obj/effect/mapping_helpers/burnt_floor, +/obj/structure/rack{ + icon = 'icons/obj/fluff/general.dmi'; + icon_state = "minibar"; + name = "skeletal minibar" + }, +/obj/item/storage/bag/money/dutchmen{ + pixel_y = 13 + }, +/turf/open/floor/wood/parquet, +/area/virtual_domain/powered) +"WM" = ( +/obj/structure/flora/rock/pile/jungle/style_2, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) +"WP" = ( +/turf/open/floor/wood/parquet, +/area/virtual_domain/powered) +"Xn" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"XG" = ( +/obj/structure/fermenting_barrel/gunpowder{ + pixel_x = -4; + pixel_y = 17 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"Yj" = ( +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/misc/beach/sand, +/area/virtual_domain/powered) +"Yk" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/parquet, +/area/virtual_domain/powered) +"Yq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood, +/area/virtual_domain/powered) +"ZZ" = ( +/obj/structure/flora/grass/jungle, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/powered) + +(1,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +cx +cx +cx +cx +cx +cx +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(2,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +cx +FT +FT +FT +FT +FT +FT +cx +cx +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(3,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +cx +cx +FT +FT +FT +FT +FT +FT +FT +FT +FT +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(4,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +cx +FT +FT +FT +FT +FT +FT +FT +FT +FT +FT +FT +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(5,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +FT +FT +FT +FT +FT +FT +zf +eb +we +FT +FT +FT +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(6,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +cx +cx +cx +FT +FT +FT +Sm +Ma +bz +JT +Kl +Kl +Kl +FT +FT +cx +cx +cx +cx +cx +cx +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(7,1,1) = {" +xg +xg +xg +xg +xg +cx +cx +cx +cx +FT +FT +FT +FT +It +tk +DL +Kl +Kl +Kl +Cc +Kl +IG +FT +cx +cx +FT +FT +FT +FT +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(8,1,1) = {" +xg +xg +xg +xg +cx +cx +FT +FT +FT +FT +FT +Nz +bP +mP +to +Kl +Kl +we +Kl +Kl +Kl +Kl +we +cx +cx +FT +FT +FT +FT +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(9,1,1) = {" +xg +xg +xg +cx +cx +FT +dp +dp +dp +dp +xB +yq +yq +Kl +Kl +Kl +Kl +Kl +Kl +Kl +Kl +Kl +Kl +Kl +VF +VF +VF +VF +VF +cx +cx +cx +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(10,1,1) = {" +xg +xg +xg +cx +FT +dp +dp +Pq +qx +Mi +th +Kl +yq +Kl +IG +OP +uM +VF +VF +VF +VF +VF +VF +VF +VF +VC +VF +VF +VF +VF +VF +dp +cx +cx +cx +xg +xg +xg +xg +xg +xg +xg +"} +(11,1,1) = {" +xg +xg +cx +cx +FT +dp +TQ +Iz +DJ +ag +eW +Kl +Kl +ED +Kl +Jr +VF +VF +VF +VF +VF +VF +VF +VF +VF +KQ +VF +VF +VF +VF +VF +dp +KG +pq +cx +cx +cx +cx +cx +cx +cx +Uy +"} +(12,1,1) = {" +xg +xg +cx +FT +FT +dp +Yj +MW +iO +Rr +qj +Kl +NI +xm +Kl +Kl +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +wb +dp +jl +pq +BC +ub +ub +ub +ub +ub +Xn +cx +"} +(13,1,1) = {" +cx +cx +cx +FT +FT +FT +qj +Kl +Kl +Kl +Kl +Kl +lC +kl +Kl +VF +VF +VF +VF +VF +VF +Vg +VF +VF +VF +VF +VF +VF +VF +VF +cl +dp +hH +Nk +qm +ub +ub +ub +ub +ub +ub +cx +"} +(14,1,1) = {" +cx +dp +dp +dp +dp +dp +dp +oo +Kl +Kl +Kl +Kl +Kb +dp +px +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +dp +dp +Nk +Jv +ub +ub +ub +ub +ub +ub +cx +"} +(15,1,1) = {" +cx +dp +BO +ht +VX +ct +dp +yi +Kl +dA +Kl +Kl +by +Hp +Kl +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +me +ub +ub +ub +ub +ub +ub +cx +"} +(16,1,1) = {" +cx +dp +ON +WP +nX +Yk +Kw +Kl +Kl +Kl +Kl +Kl +Kl +dp +px +VF +VF +VF +VF +Qb +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +ub +ub +ub +ub +ub +ub +cx +"} +(17,1,1) = {" +cx +dp +jC +iM +so +TO +dp +Kl +Kl +EZ +IM +Kl +Kl +Kl +Kl +VF +VF +VF +VF +cl +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +ub +ub +ub +ub +ub +ub +cx +"} +(18,1,1) = {" +cx +dp +sn +hW +eQ +gk +dp +dp +qX +gw +jz +UE +Kl +Cc +Kl +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +me +VF +ub +ub +ub +ub +ub +zR +cx +"} +(19,1,1) = {" +cx +dp +St +Pz +nQ +yA +dp +dp +Dm +jz +jz +Vk +Kl +Kl +Kl +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +dp +BC +VF +VF +VF +VF +VF +VF +cx +cx +"} +(20,1,1) = {" +cx +dp +dp +dp +dp +dp +dp +xm +FG +RR +yw +Vk +Kl +Kl +Kl +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +Tt +cJ +Yq +VF +VF +VF +VF +VF +cx +xg +"} +(21,1,1) = {" +cx +cx +cx +FT +FT +Kl +Kl +dp +dp +jB +uw +GG +Kl +Kl +Kl +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +xI +dp +XG +BC +VF +VF +VF +VF +VF +cx +xg +"} +(22,1,1) = {" +xg +xg +cx +FT +FT +fx +Kl +Kl +dp +dp +Kl +Kl +Kl +Kl +Kl +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +kg +pq +Ld +VF +VF +VF +VF +VF +cx +xg +"} +(23,1,1) = {" +xg +xg +cx +FT +FT +FT +Kl +Kl +Kl +Kl +Kl +Kl +Kl +Kl +Kl +Kl +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +FT +FT +cx +xg +"} +(24,1,1) = {" +xg +xg +cx +FT +FT +FT +FT +dp +Kl +eD +Kl +Kl +Kl +Kl +Kl +Kl +nz +Kl +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +FT +FT +cx +xg +"} +(25,1,1) = {" +xg +xg +cx +cx +FT +FT +FT +FT +Kl +Kl +Kl +Kl +Kl +Kl +yi +Kl +Kl +Kl +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +FT +FT +FT +cx +xg +"} +(26,1,1) = {" +xg +xg +xg +cx +cx +cx +FT +FT +FT +FT +FT +FT +FT +FT +FT +FT +FT +TP +VF +FT +FT +cx +cx +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +cx +FT +FT +FT +FT +cx +xg +"} +(27,1,1) = {" +xg +xg +xg +xg +xg +cx +FT +FT +FT +FT +FT +FT +FT +FT +FT +FT +FT +PQ +AU +FT +FT +FT +cx +cx +VF +VF +VF +VF +VF +VF +VF +VF +VF +VF +cx +cx +FT +FT +FT +cx +cx +xg +"} +(28,1,1) = {" +xg +xg +xg +xg +xg +cx +cx +FT +FT +FT +FT +FT +FT +FT +FT +FT +FT +Nh +AU +FT +FT +FT +FT +cx +cx +cx +cx +VF +VF +VF +VF +VF +VF +cx +cx +cx +cx +cx +cx +cx +xg +xg +"} +(29,1,1) = {" +xg +xg +xg +xg +xg +xg +cx +cx +cx +cx +cx +cx +FT +FT +FT +FT +FT +ye +KC +VF +FT +FT +FT +FT +FT +FT +cx +cx +cx +cx +cx +cx +cx +cx +xg +xg +xg +xg +xg +xg +xg +xg +"} +(30,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +cx +FT +FT +FT +FT +FT +zg +ye +KC +IF +VF +FT +FT +FT +FT +FT +cx +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(31,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +cx +FT +FT +FT +FT +FT +ye +ye +pU +AU +VF +GF +WM +FT +FT +FT +cx +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(32,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +cx +FT +FT +FT +FT +FT +ye +nS +KC +VF +Ax +ye +hM +FT +FT +FT +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(33,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +cx +FT +FT +FT +FT +ZZ +ye +cQ +KC +yc +qN +ye +hM +FT +FT +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(34,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +cx +FT +FT +FT +FT +ye +ye +mw +xC +uT +jQ +Jo +FT +FT +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(35,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +cx +cx +FT +FT +FT +FT +FT +FT +FT +FT +FT +FT +FT +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(36,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +FT +FT +FT +FT +FT +FT +FT +FT +FT +FT +FT +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} +(37,1,1) = {" +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +cx +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +xg +"} diff --git a/_maps/virtual_domains/stairs_and_cliffs.dmm b/_maps/virtual_domains/stairs_and_cliffs.dmm new file mode 100644 index 000000000000..82e15fcc0909 --- /dev/null +++ b/_maps/virtual_domains/stairs_and_cliffs.dmm @@ -0,0 +1,6056 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"be" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/cliff/snowrock/virtual_domain, +/area/icemoon/underground/explored/virtual_domain) +"cu" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/wood, +/area/icemoon/underground/explored/virtual_domain) +"cJ" = ( +/obj/structure/chair/sofa/bench, +/turf/open/floor/plating/snowed/smoothed, +/area/icemoon/underground/explored/virtual_domain) +"dR" = ( +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"en" = ( +/obj/item/clothing/under/color/grey, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"eB" = ( +/obj/structure/flora/rock/icy/style_random, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"gB" = ( +/obj/structure/railing/corner, +/turf/open/cliff/snowrock/virtual_domain, +/area/icemoon/underground/explored/virtual_domain) +"hc" = ( +/obj/structure/railing/corner/end{ + dir = 8 + }, +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"hE" = ( +/turf/open/floor/wood, +/area/icemoon/underground/explored/virtual_domain) +"jK" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/cliff/snowrock/virtual_domain, +/area/icemoon/underground/explored/virtual_domain) +"kc" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"km" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/ash/large, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"kK" = ( +/obj/structure/flora/tree/pine/style_random, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"mx" = ( +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/wood, +/area/icemoon/underground/explored/virtual_domain) +"nj" = ( +/obj/structure/chair/sofa/bench/left, +/turf/open/floor/plating/snowed/smoothed, +/area/icemoon/underground/explored/virtual_domain) +"no" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/structure/railing, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/wood, +/area/icemoon/underground/explored/virtual_domain) +"pl" = ( +/obj/structure/bonfire/prelit, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"pL" = ( +/turf/open/lava/plasma/virtual_domain, +/area/icemoon/underground/explored/virtual_domain) +"qc" = ( +/turf/open/misc/ice, +/area/icemoon/underground/explored/virtual_domain) +"sa" = ( +/obj/structure/flora/grass/green/style_random, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"sw" = ( +/obj/structure/flora/rock/pile/icy/style_random, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"sM" = ( +/turf/open/cliff/snowrock/virtual_domain, +/area/icemoon/underground/explored/virtual_domain) +"uJ" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"vz" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"xB" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/icemoon/underground/explored/virtual_domain) +"yo" = ( +/turf/open/floor/plating/snowed/smoothed, +/area/icemoon/underground/explored/virtual_domain) +"yJ" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/structure/railing, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/icemoon/underground/explored/virtual_domain) +"yL" = ( +/obj/structure/chair/sofa/bench/right, +/turf/open/floor/plating/snowed/smoothed, +/area/icemoon/underground/explored/virtual_domain) +"zn" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/wood, +/area/icemoon/underground/explored/virtual_domain) +"Am" = ( +/turf/closed/indestructible/binary, +/area/icemoon/underground/explored/virtual_domain) +"AI" = ( +/obj/structure/flora/grass/green/style_random, +/turf/open/floor/plating/snowed/smoothed, +/area/icemoon/underground/explored/virtual_domain) +"BV" = ( +/obj/effect/decal/remains/plasma, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"Dz" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"DB" = ( +/obj/structure/flora/rock/icy/style_random, +/obj/structure/flora/rock/pile/icy/style_random, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"DY" = ( +/obj/structure/flora/rock/icy/style_random, +/obj/structure/flora/grass/green/style_random, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"Eh" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/cliff/snowrock/virtual_domain, +/area/icemoon/underground/explored/virtual_domain) +"Gn" = ( +/obj/structure/flora/rock/pile/icy/style_random, +/obj/effect/decal/cleanable/blood/old, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"GX" = ( +/obj/effect/decal/cleanable/ash/large, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"HU" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/icemoon/underground/explored/virtual_domain) +"Kl" = ( +/obj/effect/decal/remains/plasma, +/obj/effect/decal/cleanable/ash/large, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"KA" = ( +/obj/structure/statue/snow/snowman{ + name = "Norm"; + desc = "Norm has seen many a man roll down these cliffs, some more stubborn than others. Its usually the stubborn ones who stop getting back up." + }, +/obj/item/pickaxe/mini, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"Lw" = ( +/obj/structure/flora/rock/pile/icy/style_random, +/obj/structure/flora/grass/green/style_random, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"MP" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"MT" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/wood, +/area/icemoon/underground/explored/virtual_domain) +"Nv" = ( +/turf/open/floor/iron/stairs, +/area/icemoon/underground/explored/virtual_domain) +"NM" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"Pl" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing/corner, +/turf/open/floor/wood, +/area/icemoon/underground/explored/virtual_domain) +"Qv" = ( +/turf/closed/indestructible/rock/snow/ice, +/area/icemoon/underground/explored/virtual_domain) +"RD" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/icemoon/underground/explored/virtual_domain) +"Tz" = ( +/obj/item/pickaxe/mini, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"Ug" = ( +/obj/structure/flora/rock/icy/style_random, +/obj/effect/decal/cleanable/blood/old, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"VW" = ( +/obj/structure/closet/crate/secure/bitrunning/encrypted, +/turf/open/floor/plating/snowed/smoothed, +/area/icemoon/underground/explored/virtual_domain) +"YR" = ( +/obj/structure/flora/tree/pine/style_random, +/obj/structure/flora/grass/green/style_random, +/turf/open/misc/asteroid/snow, +/area/icemoon/underground/explored/virtual_domain) +"YT" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +RD +"} +(2,1,1) = {" +Am +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(3,1,1) = {" +Am +Qv +Qv +Qv +Qv +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(4,1,1) = {" +Am +Qv +Qv +Qv +dR +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(5,1,1) = {" +Am +Qv +Qv +dR +dR +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(6,1,1) = {" +Am +Qv +Qv +kK +sw +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(7,1,1) = {" +Am +Qv +Qv +dR +dR +sa +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(8,1,1) = {" +Am +Qv +Qv +eB +sw +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +Qv +Qv +Qv +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(9,1,1) = {" +Am +Qv +Qv +dR +eB +dR +sw +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(10,1,1) = {" +Am +Qv +dR +sw +eB +eB +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(11,1,1) = {" +Am +Qv +dR +eB +sw +sa +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pl +dR +sw +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(12,1,1) = {" +Am +Qv +dR +dR +sw +sa +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sw +dR +Nv +Nv +Nv +sM +sM +Nv +Nv +Nv +Nv +Nv +Nv +sM +sM +sM +sM +Nv +Nv +Nv +Nv +dR +qc +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(13,1,1) = {" +Am +Qv +dR +sa +sw +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sw +dR +dR +sM +Nv +Nv +Nv +Nv +sM +sM +sM +sM +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(14,1,1) = {" +Am +Qv +dR +dR +dR +dR +kK +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sw +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sa +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(15,1,1) = {" +Am +Qv +sw +sa +dR +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(16,1,1) = {" +Am +Qv +dR +sa +sa +sa +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +pl +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +GX +pL +pL +pL +pL +Qv +Qv +Qv +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(17,1,1) = {" +Am +Qv +dR +sa +sa +dR +yo +Nv +Nv +Nv +Nv +sM +sM +Nv +Nv +Nv +dR +dR +sM +sM +sM +sM +sM +dR +qc +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +sw +dR +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +dR +dR +pL +pL +pL +Qv +Qv +Qv +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(18,1,1) = {" +Am +Qv +Qv +dR +dR +yo +yo +sM +sM +sM +Nv +Nv +Nv +Nv +sM +sM +sa +qc +sM +sM +sM +sM +sM +dR +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +pL +dR +sa +pL +pL +sM +sM +sM +sM +sM +sM +sw +dR +sM +sM +sM +sM +sM +sM +sM +sM +pL +dR +en +dR +dR +pL +pL +Qv +Qv +Qv +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(19,1,1) = {" +Am +Qv +Qv +kK +sa +yo +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sw +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sw +BV +pL +sM +sM +sM +sM +sM +sM +eB +dR +sM +sM +sM +sM +sM +sM +sM +sM +pL +GX +sw +dR +dR +pL +pL +pL +pL +Qv +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(20,1,1) = {" +Am +Qv +Qv +dR +dR +yo +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +qc +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +kK +GX +pL +pL +sM +sM +sM +sM +sM +sM +sM +dR +qc +dR +sM +sM +sM +sM +sM +sM +pL +dR +dR +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(21,1,1) = {" +Am +Qv +Qv +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +pL +pL +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +sM +dR +dR +dR +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(22,1,1) = {" +Am +Qv +Qv +dR +sa +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sw +dR +dR +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Am +"} +(23,1,1) = {" +Am +Qv +Qv +Qv +sa +qc +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +qc +sM +sM +sM +sM +sM +sM +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +qc +sM +sM +sM +sM +sM +sM +DB +kc +dR +dR +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Am +"} +(24,1,1) = {" +Am +Qv +Qv +sw +eB +qc +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +qc +sM +sM +sM +sM +sM +sM +qc +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sa +dR +sM +sM +sM +sM +sM +sM +Ug +eB +dR +dR +dR +pL +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Am +"} +(25,1,1) = {" +Am +Qv +Qv +dR +dR +sa +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +qc +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +dR +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +Nv +sM +Nv +Nv +dR +dR +sM +sM +sM +sM +sM +sM +Ug +sw +dR +dR +dR +dR +dR +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Am +"} +(26,1,1) = {" +Am +Qv +Qv +dR +yo +dR +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +qc +dR +sM +sM +sM +sM +sM +dR +Nv +Nv +Nv +Nv +Nv +sM +sM +sM +sM +Nv +Nv +Nv +Nv +Nv +Nv +qc +qc +sM +sM +sM +sM +sM +sM +Ug +sw +dR +dR +dR +sa +dR +dR +dR +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Am +"} +(27,1,1) = {" +Am +Qv +Qv +dR +yo +sa +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sa +dR +sM +sM +sM +sM +dR +sM +sM +sM +sM +eB +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +dR +dR +kK +dR +dR +dR +sw +dR +dR +pL +pL +pL +pL +pL +Qv +Qv +Qv +Am +"} +(28,1,1) = {" +Am +Qv +Qv +sa +yo +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sa +dR +sM +sM +sM +sM +dR +sM +sM +sM +sM +dR +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +kK +sa +dR +qc +qc +sa +sa +dR +kK +dR +pL +pL +pL +pL +pL +pL +Qv +Qv +Am +"} +(29,1,1) = {" +Am +Qv +Qv +sa +yo +yo +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +dR +sM +sM +sM +sM +MP +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +dR +qc +qc +qc +sa +sa +dR +dR +dR +pL +pL +pL +pL +pL +Qv +Qv +Qv +Am +"} +(30,1,1) = {" +Am +Qv +Qv +qc +dR +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +dR +sM +sM +sM +sM +no +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +yL +dR +dR +dR +kK +dR +dR +dR +dR +dR +dR +dR +dR +pL +pL +pL +Qv +Qv +Qv +Am +"} +(31,1,1) = {" +Am +Qv +pl +qc +dR +yo +sM +sM +sM +sM +sM +sM +sM +dR +dR +Nv +Nv +Nv +Nv +qc +sM +sM +sM +sM +dR +dR +sM +sM +sM +mx +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +cJ +yo +dR +dR +dR +dR +dR +kK +sa +sa +dR +dR +dR +dR +dR +dR +dR +dR +Qv +Am +"} +(32,1,1) = {" +Am +Qv +sM +sM +zn +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sw +dR +sM +sM +sM +cu +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +nj +yo +dR +kK +dR +dR +dR +kK +sa +sa +dR +dR +dR +dR +kK +dR +dR +Qv +Qv +Am +"} +(33,1,1) = {" +Am +Qv +sM +sM +hE +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +NM +sM +sM +sM +sM +sM +sM +sM +qc +dR +Nv +Nv +Nv +Nv +Nv +dR +dR +sw +sM +sM +sM +sM +sM +sM +sM +sM +yo +yo +dR +dR +sa +dR +sw +dR +dR +dR +dR +sa +sa +dR +dR +dR +dR +Qv +Qv +Am +"} +(34,1,1) = {" +Am +Qv +sM +sM +hE +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sa +dR +sM +sM +sM +sM +sM +sM +sM +sM +qc +sM +sM +sM +dR +qc +sM +sM +sM +sM +sM +sM +qc +yo +Nv +Nv +Nv +Nv +Nv +yo +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +yo +dR +dR +sa +dR +dR +dR +dR +kK +qc +dR +dR +dR +dR +dR +dR +dR +Qv +Am +"} +(35,1,1) = {" +Am +Qv +sM +sM +hE +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +qc +sM +sM +sM +qc +sa +sM +sM +sM +sM +sM +sM +qc +dR +sM +sM +sM +sM +sM +eB +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +dR +yo +yo +dR +dR +dR +qc +qc +qc +qc +qc +dR +YT +YT +YT +YT +YT +vz +Qv +Am +"} +(36,1,1) = {" +Am +Qv +dR +sM +HU +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +qc +sM +sM +sM +sM +sM +sM +sM +sM +dR +qc +sM +sM +sw +dR +sM +sM +sM +sM +sM +sM +qc +dR +sM +sM +sM +sM +sM +kK +dR +qc +sM +sM +sM +sM +sM +sM +sM +sM +pl +dR +yo +dR +dR +dR +dR +dR +qc +qc +qc +dR +YT +YT +YT +YT +YT +YT +Qv +Am +"} +(37,1,1) = {" +Am +Qv +Qv +dR +dR +dR +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +dR +dR +sM +sM +sM +sM +eB +dR +sa +sM +sM +sM +sM +sM +sM +sa +yo +dR +sM +sM +sM +sM +sM +sM +sM +yo +dR +yo +dR +dR +dR +dR +sw +qc +qc +dR +dR +YT +YT +YT +YT +YT +YT +Qv +Am +"} +(38,1,1) = {" +Am +Qv +Qv +dR +yo +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +qc +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +dR +dR +sM +sM +sM +sM +dR +dR +qc +sM +sM +sM +sM +sM +sM +sM +yo +AI +Nv +Nv +Nv +Nv +Nv +Nv +Nv +yo +yo +yo +yo +yo +yo +dR +dR +yo +dR +yo +yo +YT +YT +YT +YT +YT +YT +Qv +Am +"} +(39,1,1) = {" +Am +Qv +Qv +dR +dR +dR +kK +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +qc +sM +sM +sM +sM +sM +sM +sM +dR +qc +sM +sM +sM +pl +dR +dR +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +yo +AI +Nv +Nv +Nv +Nv +Nv +Nv +Nv +yo +yo +yo +yo +dR +yo +yo +yo +yo +yo +yo +yo +YT +YT +YT +YT +YT +YT +Qv +Am +"} +(40,1,1) = {" +Am +Qv +Qv +dR +yo +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +qc +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +dR +dR +Nv +Nv +Nv +dR +kK +sM +sM +sM +sM +sM +sM +sM +sM +sw +dR +Nv +Nv +Nv +Nv +Nv +Nv +Nv +yo +yo +dR +dR +dR +yo +dR +yo +yo +yo +dR +yo +YT +YT +YT +YT +YT +YT +Qv +Am +"} +(41,1,1) = {" +Am +Qv +dR +sa +yo +dR +sa +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +dR +qc +sM +sM +sM +qc +Tz +Nv +Nv +Nv +qc +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +dR +sw +dR +dR +dR +dR +dR +dR +dR +dR +YT +YT +YT +YT +YT +uJ +Qv +Am +"} +(42,1,1) = {" +Am +Qv +dR +AI +yo +yo +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pl +KA +dR +dR +dR +sa +sa +dR +qc +qc +qc +dR +dR +dR +dR +dR +dR +dR +Qv +Am +"} +(43,1,1) = {" +Am +Qv +yo +yo +VW +yo +yo +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sa +dR +dR +kK +sa +sa +dR +dR +qc +qc +qc +dR +sa +sa +dR +dR +dR +Qv +Am +"} +(44,1,1) = {" +Am +Qv +dR +yo +yo +yo +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +qc +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sa +dR +sa +dR +dR +dR +dR +kK +qc +qc +qc +dR +sa +sa +dR +dR +dR +Qv +Am +"} +(45,1,1) = {" +Am +Qv +dR +dR +yo +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +dR +dR +dR +dR +kK +dR +dR +dR +dR +Qv +dR +Qv +dR +kK +dR +Qv +Qv +Am +"} +(46,1,1) = {" +Am +Qv +Qv +sa +dR +dR +sa +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +qc +dR +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +kK +dR +dR +dR +dR +dR +dR +dR +dR +dR +dR +Qv +Qv +Qv +dR +dR +dR +Qv +Qv +Am +"} +(47,1,1) = {" +Am +Qv +Qv +dR +dR +YR +sa +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +dR +dR +qc +Nv +Nv +Nv +sM +sM +sM +sM +Nv +Nv +Nv +Nv +sM +sM +sM +Nv +Nv +Nv +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +dR +pL +dR +dR +dR +dR +dR +dR +Qv +Qv +Qv +Qv +Qv +dR +dR +dR +Qv +Qv +Am +"} +(48,1,1) = {" +Am +Qv +Qv +dR +kK +sa +YR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +dR +dR +dR +sw +sM +Nv +Nv +Nv +Nv +Nv +Nv +sM +sM +Nv +Nv +Nv +Nv +Nv +sM +Nv +Nv +Nv +qc +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +dR +dR +dR +dR +Qv +Qv +Qv +Qv +dR +sw +dR +dR +dR +Qv +Am +"} +(49,1,1) = {" +Am +Qv +Qv +dR +dR +YR +sa +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +qc +sM +sM +sM +sM +sM +eB +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +dR +dR +dR +dR +dR +pL +pL +Qv +Qv +Qv +Qv +dR +sw +dR +dR +Qv +Am +"} +(50,1,1) = {" +Am +Qv +Qv +sa +dR +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sa +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +pl +sM +sM +sM +sM +sM +sM +dR +pL +pL +dR +dR +sa +dR +pL +pL +pL +pL +Qv +Qv +Qv +sw +eB +dR +dR +Qv +Am +"} +(51,1,1) = {" +Am +Qv +Qv +Qv +dR +sa +kK +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sa +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sa +sM +sM +sM +sM +sM +sM +dR +pL +dR +dR +kK +dR +dR +pL +pL +pL +pL +Qv +Qv +Qv +Qv +dR +dR +sa +Qv +Am +"} +(52,1,1) = {" +Am +Qv +Qv +Qv +dR +sa +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +pL +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sa +sM +sM +sM +sM +sM +sM +dR +pL +dR +dR +dR +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +dR +dR +dR +Qv +Am +"} +(53,1,1) = {" +Am +Qv +Qv +Qv +dR +YR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sw +Dz +sM +sM +sM +sM +sM +pL +pL +pL +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +dR +dR +dR +sa +dR +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +dR +dR +Qv +Am +"} +(54,1,1) = {" +Am +Qv +Qv +Qv +dR +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +jK +yJ +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +sM +sM +GX +dR +dR +pL +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sa +dR +sw +sa +dR +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +dR +Qv +Qv +Am +"} +(55,1,1) = {" +Am +Qv +Qv +dR +dR +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +MT +be +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +pL +dR +kK +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +qc +sM +sM +sM +sM +sM +dR +sw +eB +dR +dR +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +dR +dR +dR +Qv +Am +"} +(56,1,1) = {" +Am +Qv +Qv +dR +eB +sw +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +gB +xB +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +qc +sM +sM +sM +sM +sM +km +sw +eB +eB +sw +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +dR +dR +dR +Qv +Am +"} +(57,1,1) = {" +Am +Qv +Qv +dR +Lw +sa +sa +kK +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +Pl +Eh +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +dR +sw +dR +sM +sM +sM +sM +sM +sM +sM +sM +sa +eB +sM +sM +sM +sM +sM +pL +dR +eB +eB +dR +dR +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +dR +dR +dR +Qv +Am +"} +(58,1,1) = {" +Am +Qv +Qv +dR +sa +sa +YR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +hc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +Gn +eB +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +dR +sw +sM +sM +sM +sM +sM +pL +GX +dR +pL +dR +dR +pL +pL +pL +pL +Qv +Qv +Qv +Qv +dR +sa +dR +dR +Qv +Am +"} +(59,1,1) = {" +Am +Qv +Qv +sa +YR +sa +sa +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +qc +sM +sM +sM +dR +sM +sM +Nv +Nv +Nv +dR +sM +sM +sM +sM +sM +kK +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +pL +dR +dR +pL +dR +pL +pL +pL +pL +pL +pL +Qv +Qv +dR +dR +dR +Qv +Qv +Qv +Am +"} +(60,1,1) = {" +Am +Qv +Qv +dR +dR +sw +kK +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +dR +dR +Nv +Nv +Nv +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +kK +dR +qc +sM +sM +sM +sM +sM +pL +GX +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +dR +dR +dR +Qv +Qv +Qv +Am +"} +(61,1,1) = {" +Am +Qv +dR +kK +sw +eB +eB +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +dR +sM +sM +sM +sM +sM +dR +sa +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +dR +dR +dR +Qv +Qv +Qv +Qv +Am +"} +(62,1,1) = {" +Am +Qv +dR +sa +DY +eB +eB +dR +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sa +dR +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sa +dR +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +dR +dR +Qv +Qv +Qv +Qv +Qv +Am +"} +(63,1,1) = {" +Am +Qv +dR +Lw +Lw +dR +sa +dR +sM +sM +sM +sM +sM +sM +sM +sM +eB +dR +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sa +dR +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +dR +Qv +Qv +dR +dR +dR +dR +Qv +Qv +Qv +Qv +Am +"} +(64,1,1) = {" +Am +Qv +dR +sa +sa +sw +kK +dR +sM +sM +sM +sM +sM +sM +sM +sM +sw +dR +sM +sM +sM +sM +sM +qc +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +eB +dR +dR +dR +sa +dR +sw +Qv +Qv +Qv +Qv +Qv +Am +"} +(65,1,1) = {" +Am +Qv +dR +dR +kK +dR +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +qc +sM +sM +sM +sM +qc +sM +sM +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +Nv +Nv +Nv +Nv +Nv +Nv +dR +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +sw +sa +sa +dR +sw +sw +eB +Qv +Qv +Qv +Qv +Qv +Am +"} +(66,1,1) = {" +Am +Qv +dR +kK +sa +sa +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +sa +dR +sM +sM +sM +sM +qc +sM +sM +sM +sM +sa +dR +sM +sM +sM +sM +sM +sw +dR +Nv +Nv +Nv +Nv +Nv +sM +sM +sM +Nv +Nv +dR +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +dR +sa +sa +dR +dR +dR +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(67,1,1) = {" +Am +Qv +dR +dR +YR +DY +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sa +dR +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +dR +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +sa +dR +dR +dR +Qv +Qv +Qv +Qv +Qv +Am +"} +(68,1,1) = {" +Am +Qv +dR +dR +Lw +sa +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +sM +sM +sM +dR +dR +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +sa +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +dR +dR +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(69,1,1) = {" +Am +Qv +Qv +dR +eB +sw +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +dR +Nv +Nv +Nv +dR +dR +sM +sM +sM +sM +sM +dR +sM +sM +sM +sM +sM +dR +qc +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(70,1,1) = {" +Am +Qv +Qv +Qv +dR +eB +sw +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +kK +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +Nv +dR +dR +dR +dR +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(71,1,1) = {" +Am +Qv +Qv +dR +sa +sa +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +dR +qc +dR +pl +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +Kl +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(72,1,1) = {" +Am +Qv +Qv +sa +sa +Lw +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(73,1,1) = {" +Am +Qv +Qv +Qv +dR +sw +dR +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +sM +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +pL +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(74,1,1) = {" +Am +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Qv +Am +"} +(75,1,1) = {" +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +Am +"} diff --git a/_maps/virtual_domains/syndicate_assault.dmm b/_maps/virtual_domains/syndicate_assault.dmm new file mode 100644 index 000000000000..770f0967404c --- /dev/null +++ b/_maps/virtual_domains/syndicate_assault.dmm @@ -0,0 +1,4265 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aq" = ( +/obj/item/storage/backpack/duffelbag/syndie/surgery, +/obj/structure/table/reinforced, +/turf/open/floor/plastic, +/area/ruin/space/has_grav/powered/virtual_domain) +"aw" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"aN" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/plasteel/twenty, +/obj/item/stack/sheet/mineral/plastitanium{ + amount = 50 + }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, +/turf/open/floor/pod/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"aO" = ( +/obj/machinery/recharge_station, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"aZ" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/mob/living/basic/syndicate/ranged/shotgun/space/stormtrooper, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"bh" = ( +/turf/open/floor/carpet/royalblack, +/area/ruin/space/has_grav/powered/virtual_domain) +"bo" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"bD" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"bG" = ( +/turf/open/floor/pod/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"cc" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/effect/spawner/random/clothing/costume, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"cj" = ( +/obj/structure/transit_tube/crossing, +/turf/closed/wall/r_wall/syndicate, +/area/ruin/space/has_grav/powered/virtual_domain) +"ct" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"cw" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 + }, +/obj/item/clothing/under/syndicate/combat, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/under/syndicate/skirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"cy" = ( +/obj/machinery/door/airlock/grunge{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"cB" = ( +/obj/machinery/camera/xray{ + c_tag = "Medbay"; + dir = 6; + network = list("fsci"); + screen_loc = "" + }, +/turf/open/floor/plastic, +/area/ruin/space/has_grav/powered/virtual_domain) +"cR" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/carpet/royalblack, +/area/ruin/space/has_grav/powered/virtual_domain) +"cZ" = ( +/obj/structure/table/reinforced, +/obj/item/gun/ballistic/automatic/l6_saw/unrestricted, +/obj/item/ammo_box/magazine/m7mm, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"da" = ( +/obj/machinery/stasis, +/turf/open/floor/plastic, +/area/ruin/space/has_grav/powered/virtual_domain) +"dd" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/r_wall/syndicate, +/area/ruin/space/has_grav/powered/virtual_domain) +"di" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable, +/obj/item/paper/fluff/ruins/forgottenship/powerissues, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"dw" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"dz" = ( +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"dU" = ( +/obj/structure/cable, +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/ruin{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"eB" = ( +/obj/machinery/camera/xray{ + c_tag = "Cargo pod"; + dir = 9; + network = list("fsci"); + screen_loc = "" + }, +/obj/structure/closet, +/obj/item/clothing/under/syndicate/tacticool, +/obj/item/clothing/under/syndicate/tacticool, +/obj/item/clothing/under/syndicate/tacticool, +/obj/item/card/id/advanced/black/syndicate_command/crew_id, +/obj/item/card/id/advanced/black/syndicate_command/crew_id, +/obj/item/card/id/advanced/black/syndicate_command/crew_id, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"fd" = ( +/obj/structure/transit_tube/crossing, +/turf/open/space/basic, +/area/space) +"fG" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/ruin/space/has_grav/powered/virtual_domain) +"fJ" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"fM" = ( +/obj/machinery/computer/crew/syndie{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"fV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"gD" = ( +/obj/effect/mob_spawn/ghost_role/human/syndicatespace, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"hg" = ( +/obj/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor{ + id = "fslockdown"; + name = "Ship Blast Door"; + state_open = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"hy" = ( +/obj/structure/table/reinforced, +/obj/item/paper/fluff/ruins/forgottenship/missionobj, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"hA" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/wall/r_wall/syndicate, +/area/ruin/space/has_grav/powered/virtual_domain) +"hD" = ( +/obj/structure/table/reinforced, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"ip" = ( +/mob/living/basic/syndicate/melee/sword/space/stormtrooper, +/turf/open/floor/plastic, +/area/ruin/space/has_grav/powered/virtual_domain) +"iB" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"iL" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall/r_wall/syndicate, +/area/ruin/space/has_grav/powered/virtual_domain) +"iU" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/melee/energy/sword/saber/red, +/obj/machinery/light/small/directional/north, +/turf/open/floor/pod/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"iW" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "fslockdown"; + name = "Window shutters"; + req_access = list("syndicate") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"iX" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/mob/living/basic/syndicate/ranged/smg/space/stormtrooper, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"ja" = ( +/obj/machinery/door/window{ + dir = 1; + name = "Spare Equipment"; + req_access = list("syndicate") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"jl" = ( +/obj/structure/bodycontainer/crematorium{ + id = "fscremate" + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"jA" = ( +/obj/structure/cable, +/mob/living/basic/syndicate/melee/space/stormtrooper, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"jJ" = ( +/obj/machinery/door/airlock/grunge{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"kh" = ( +/obj/machinery/door/airlock/grunge{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"ki" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen/interrogation{ + name = "Cameras monitor"; + network = list("fsci"); + req_access = list("syndicate"); + screen_loc = "" + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"kI" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"kJ" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"li" = ( +/obj/structure/transit_tube/station/dispenser/reverse{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"ln" = ( +/obj/machinery/turretid{ + control_area = "/area/ruin/space/has_grav/syndicate_forgotten_ship"; + enabled = 0; + icon_state = "control_kill"; + lethal = 1; + name = "Ship turret control panel"; + pixel_y = 32; + req_access = list("syndicate") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"lo" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/external/ruin{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"lN" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"mo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"mD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 10 + }, +/obj/item/wrench, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"nk" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"nB" = ( +/turf/closed/mineral/random, +/area/space) +"nG" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"nO" = ( +/obj/machinery/mineral/ore_redemption{ + name = "Syndicate ore redemption machine"; + ore_multiplier = 4; + req_access = list("syndicate") + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"nU" = ( +/obj/structure/sign/poster/contraband/syndicate_pistol, +/turf/closed/wall/r_wall/syndicate, +/area/ruin/space/has_grav/powered/virtual_domain) +"oM" = ( +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"oZ" = ( +/mob/living/basic/syndicate/melee/sword/space/stormtrooper, +/turf/open/floor/carpet/royalblack, +/area/ruin/space/has_grav/powered/virtual_domain) +"pl" = ( +/obj/machinery/atmospherics/components/tank/air{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"pz" = ( +/obj/machinery/computer/security{ + desc = "Used to access interrogation room camera."; + dir = 8; + name = "Ship cameras console"; + network = list("fsc","fsci"); + screen_loc = "" + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"pH" = ( +/obj/structure/table/reinforced, +/obj/item/toy/plush/nukeplushie, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"pM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"pS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"pU" = ( +/obj/machinery/shower/directional/north, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/ruin/space/has_grav/powered/virtual_domain) +"qf" = ( +/obj/structure/table/optable, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plastic, +/area/ruin/space/has_grav/powered/virtual_domain) +"qx" = ( +/turf/open/space/basic, +/area/space) +"qU" = ( +/obj/structure/sign/poster/contraband/c20r, +/turf/closed/wall/r_wall/syndicate, +/area/ruin/space/has_grav/powered/virtual_domain) +"qY" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"rm" = ( +/obj/machinery/button/crematorium{ + id = "fscremate"; + pixel_x = -32 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"ru" = ( +/turf/closed/wall/r_wall/syndicate, +/area/ruin/space/has_grav/powered/virtual_domain) +"rH" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/syndicate_access, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"rM" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 + }, +/obj/effect/spawner/random/contraband/armory, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"rP" = ( +/obj/effect/mob_spawn/ghost_role/human/syndicatespace, +/obj/machinery/light/small/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"sg" = ( +/obj/machinery/ore_silo, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"sq" = ( +/obj/machinery/door/window{ + name = "Control Room"; + req_access = list("syndicate") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"sz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"sH" = ( +/obj/structure/displaycase{ + req_access = list("syndicate"); + start_showpiece_type = /obj/item/gun/ballistic/automatic/pistol/deagle/camo + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"sK" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/stack/sheet/mineral/titanium{ + amount = 40 + }, +/obj/item/stack/sheet/mineral/uranium{ + amount = 15 + }, +/turf/open/floor/pod/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"sL" = ( +/obj/structure/chair/comfy, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"sM" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"tv" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "fscaproom"; + name = "Room shutters control"; + req_access = list("syndicate") + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"tI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"uP" = ( +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"vp" = ( +/obj/structure/table/reinforced, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"vD" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"vK" = ( +/obj/machinery/door/airlock/grunge{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"vU" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"wb" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2, +/obj/machinery/portable_atmospherics/scrubber{ + anchored = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"we" = ( +/turf/closed/mineral/random/high_chance, +/area/space) +"wK" = ( +/obj/machinery/door/airlock/grunge{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"wL" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/regular, +/obj/machinery/light/small/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"xJ" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 + }, +/obj/item/ammo_box/c9mm, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"xZ" = ( +/obj/machinery/computer/camera_advanced/syndie{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"yl" = ( +/obj/machinery/door/airlock/grunge{ + name = "Captain's Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/door/poddoor{ + id = "fscaproom"; + name = "Captain's Blast Door"; + state_open = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"yD" = ( +/mob/living/basic/syndicate/ranged/smg/space/stormtrooper, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"yJ" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"yR" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"yT" = ( +/obj/item/ai_module/core/full/cybersun, +/obj/structure/table/reinforced, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"yV" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/prox_sensor, +/obj/item/assembly/prox_sensor, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"yZ" = ( +/turf/closed/mineral, +/area/space) +"zi" = ( +/obj/machinery/vending/cigarette/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"zt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"Aa" = ( +/obj/structure/chair/comfy/shuttle, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"AN" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/mob/living/basic/syndicate/ranged/smg/space/stormtrooper, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Bm" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/syndicate, +/area/ruin/space/has_grav/powered/virtual_domain) +"BK" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space/basic, +/area/space) +"BN" = ( +/obj/structure/transit_tube/crossing, +/turf/template_noop, +/area/virtual_domain/safehouse) +"Cf" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Ci" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 + }, +/obj/item/crowbar/red, +/obj/item/ammo_box/magazine/m9mm_aps, +/obj/item/ammo_box/magazine/m9mm_aps, +/turf/open/floor/carpet/royalblack, +/area/ruin/space/has_grav/powered/virtual_domain) +"Cn" = ( +/obj/machinery/camera/xray/directional/east{ + c_tag = "Conference room"; + network = list("fsc"); + screen_loc = "" + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"CK" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/mob/living/basic/syndicate/ranged/smg/pilot, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"CR" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 + }, +/obj/item/coin/antagtoken, +/obj/item/dnainjector/thermal, +/obj/item/storage/box/firingpins/syndicate, +/obj/item/storage/box/firingpins/syndicate, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"De" = ( +/obj/machinery/door/airlock/grunge{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"Dj" = ( +/obj/structure/table/reinforced, +/obj/item/ammo_box/magazine/smgm45, +/obj/item/ammo_box/magazine/smgm45, +/obj/item/ammo_box/magazine/smgm45, +/obj/item/gun/ballistic/automatic/c20r/unrestricted, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"DA" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"EB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"EX" = ( +/mob/living/basic/syndicate/ranged/shotgun/space/stormtrooper, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Fp" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"FN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Gn" = ( +/obj/structure/chair/comfy{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Gs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"GB" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/external/ruin{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"GZ" = ( +/obj/machinery/door/airlock/external/ruin{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Hq" = ( +/turf/closed/indestructible/binary, +/area/space) +"HU" = ( +/obj/machinery/door/airlock/grunge{ + name = "Bridge" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"Ia" = ( +/obj/effect/mob_spawn/ghost_role/human/syndicatespace/captain, +/turf/open/floor/carpet/royalblack, +/area/ruin/space/has_grav/powered/virtual_domain) +"Id" = ( +/obj/machinery/power/shuttle_engine/huge{ + dir = 8 + }, +/turf/open/space/basic, +/area/ruin/space/has_grav/powered/virtual_domain) +"If" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"Ig" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 4; + name = "Syndicate Ship Turret"; + on = 0; + shot_delay = 10 + }, +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/ruin/space/has_grav/powered/virtual_domain) +"Im" = ( +/obj/structure/table/reinforced, +/obj/item/ammo_box/c9mm, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Io" = ( +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"IC" = ( +/obj/structure/table/reinforced, +/obj/item/paper, +/obj/item/pen, +/turf/open/floor/carpet/royalblack, +/area/ruin/space/has_grav/powered/virtual_domain) +"IH" = ( +/obj/machinery/door/airlock/external/ruin{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/structure/cable, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/ruin/space/has_grav/powered/virtual_domain) +"IV" = ( +/obj/machinery/door/airlock/grunge{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/plating, +/area/ruin/space/has_grav/powered/virtual_domain) +"Jg" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"Jz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"JA" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"JN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"JP" = ( +/obj/structure/sink/directional/south, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"Kz" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"Lk" = ( +/obj/structure/transit_tube/crossing, +/turf/closed/mineral/random, +/area/space) +"Lo" = ( +/obj/structure/filingcabinet, +/obj/machinery/door/window{ + dir = 8; + name = "Syndicate Interior Door"; + req_access = list("syndicate") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"Mc" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 + }, +/obj/item/crowbar/red, +/obj/item/ammo_box/magazine/m9mm, +/obj/item/ammo_box/magazine/m9mm, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Mm" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 + }, +/obj/item/clothing/head/hats/hos/beret/syndicate, +/obj/item/clothing/suit/armor/vest/capcarapace/syndicate, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/under/syndicate, +/obj/item/clothing/under/syndicate/skirt, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/shoes/combat, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"MR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"Nm" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/turf/open/floor/pod/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"Nr" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/stack/sheet/mineral/gold{ + amount = 30 + }, +/obj/item/stack/sheet/mineral/silver{ + amount = 30 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/pod/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"Nt" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/components/unary/vent_pump, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Of" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/disk/surgery/forgottenship, +/turf/open/floor/pod/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"Ox" = ( +/obj/machinery/atmospherics/components/unary/vent_pump, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"OH" = ( +/obj/structure/cable, +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/syndicate, +/obj/item/storage/toolbox/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"OI" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"PR" = ( +/obj/machinery/door/password/voice/sfc{ + password = null + }, +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/grunge{ + desc = "Vault airlock preventing air from going out."; + name = "Syndicate Vault Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/pod/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"Qg" = ( +/obj/machinery/suit_storage_unit/syndicate{ + helmet_type = /obj/item/clothing/head/helmet/space/syndicate/black; + suit_type = /obj/item/clothing/suit/space/syndicate/black + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Qi" = ( +/obj/item/stack/sheet/mineral/uranium{ + amount = 15 + }, +/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"QF" = ( +/obj/structure/table/reinforced, +/obj/item/dualsaber/green, +/obj/machinery/light/small/directional/east, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"QG" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/closed/mineral/random, +/area/space) +"QX" = ( +/mob/living/basic/syndicate/ranged/space/stormtrooper, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Ra" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2, +/obj/machinery/light/small/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"RQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"RU" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Sc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Sd" = ( +/obj/structure/closet/syndicate{ + anchored = 1; + desc = "A basic closet for all your villainous needs."; + locked = 1; + name = "Closet"; + req_access = list("syndicate"); + secure = 1 + }, +/obj/item/crowbar/red, +/obj/item/ammo_box/magazine/m9mm, +/obj/item/ammo_box/magazine/m9mm, +/obj/machinery/light/small/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Sq" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"Sv" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/effect/spawner/random/food_or_drink/donkpockets, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Sz" = ( +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"SX" = ( +/obj/machinery/vending/medical/syndicate_access/cybersun, +/turf/open/floor/plastic, +/area/ruin/space/has_grav/powered/virtual_domain) +"TB" = ( +/turf/closed/indestructible/syndicate, +/area/ruin/space/has_grav/powered/virtual_domain) +"UQ" = ( +/obj/structure/sign/poster/contraband/syndicate_recruitment, +/turf/closed/wall/r_wall/syndicate, +/area/ruin/space/has_grav/powered/virtual_domain) +"Vk" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 4; + name = "Syndicate Ship Turret"; + on = 0; + shot_delay = 10 + }, +/turf/closed/wall/r_wall/syndicate, +/area/ruin/space/has_grav/powered/virtual_domain) +"Vq" = ( +/obj/structure/transit_tube/station/dispenser/reverse{ + dir = 8 + }, +/turf/template_noop, +/area/virtual_domain/safehouse) +"Wd" = ( +/obj/structure/sign/poster/contraband/tools, +/turf/closed/wall/r_wall/syndicate, +/area/ruin/space/has_grav/powered/virtual_domain) +"Wy" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/stack/ore/plasma{ + amount = 19 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"WR" = ( +/obj/machinery/power/port_gen/pacman/super{ + anchored = 1 + }, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"Xp" = ( +/turf/open/space/basic, +/area/ruin/space/has_grav/powered/virtual_domain) +"XS" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Yb" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/clothing/head/helmet/space/syndicate/black/engie, +/obj/item/clothing/suit/space/syndicate/black/engie, +/turf/open/floor/pod/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"Yi" = ( +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/plastic, +/area/ruin/space/has_grav/powered/virtual_domain) +"Yj" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/stack/ore/diamond{ + amount = 3 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) +"Yk" = ( +/obj/machinery/door/airlock/grunge{ + name = "Captain's Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/door/poddoor{ + id = "fscaproom"; + name = "Captain's Blast Door"; + state_open = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/space/has_grav/powered/virtual_domain) +"Yr" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"Yu" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/carpet/royalblack, +/area/ruin/space/has_grav/powered/virtual_domain) +"YV" = ( +/obj/structure/sink/directional/south, +/obj/structure/mirror/directional/west, +/turf/open/floor/iron/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"Za" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plastic, +/area/ruin/space/has_grav/powered/virtual_domain) +"Zb" = ( +/turf/open/floor/plastic, +/area/ruin/space/has_grav/powered/virtual_domain) +"ZA" = ( +/obj/machinery/power/shuttle_engine/propulsion{ + dir = 8 + }, +/turf/open/space/basic, +/area/ruin/space/has_grav/powered/virtual_domain) + +(1,1,1) = {" +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +"} +(2,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(3,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(4,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(5,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(6,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(7,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(8,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +we +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(9,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(10,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Xp +Xp +Id +qx +qx +Xp +Xp +Id +qx +qx +Xp +Xp +Id +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(11,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Xp +Xp +Xp +qx +qx +Xp +Xp +Xp +qx +qx +Xp +Xp +Xp +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(12,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +ZA +Xp +Xp +Xp +ZA +ZA +Xp +Xp +Xp +ZA +ZA +Xp +Xp +Xp +ZA +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +we +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(13,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +ru +ru +ru +ru +ru +ru +ru +ru +ru +ru +ru +ru +ru +ru +ru +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +we +we +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(14,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +Vk +ru +Sv +vD +uP +uP +Yj +vD +uP +Wy +DA +uP +QX +vD +cc +ru +Vk +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(15,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +Io +uP +uP +QX +lN +uP +uP +uP +uP +uP +lN +uP +uP +uP +uP +hA +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(16,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +ru +ru +ru +ru +ru +ru +ru +IV +ru +ru +ru +IV +ru +ru +ru +ru +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(17,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +ru +vp +ru +Ia +Ci +ru +Sq +di +WR +ru +yV +Gn +uP +Mc +uP +ru +qx +qx +qx +qx +qx +qx +qx +qx +qx +nB +we +nB +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(18,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +vp +Jg +ru +bh +cR +ru +Qi +sz +Kz +ru +Mc +gD +yD +uP +rP +ru +qx +qx +qx +qx +qx +qx +qx +nB +nB +nB +nB +nB +nB +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(19,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +sH +Kz +yl +oZ +bh +Yk +pS +RQ +Jz +vK +uP +uP +uP +sL +hy +ru +qx +qx +qx +qx +qx +qx +nB +nB +TB +TB +TB +TB +nB +nB +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(20,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +CR +Kz +ru +bh +bh +Yk +pM +zt +pM +vK +uP +uP +EX +sL +Im +ru +qx +qx +qx +qx +qx +nB +nB +TB +TB +Yb +Yb +TB +Bm +nB +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(21,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +yT +Kz +ru +Yu +IC +ru +mD +JN +MR +ru +Sd +gD +uP +uP +gD +ru +qx +qx +qx +qx +nB +QG +nB +TB +aN +bG +bG +sK +TB +nB +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(22,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +Ig +ru +Lo +ru +tv +ki +nU +wb +EB +pl +ru +hD +Gn +uP +Mc +ru +Ig +qx +qx +qx +qx +nB +we +nB +TB +iU +bG +bG +Nr +TB +nB +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(23,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +ru +ru +ru +ru +ru +ru +ru +cy +ru +ru +ru +ru +ru +ru +ru +qx +qx +qx +qx +qx +qx +nB +nB +TB +Nm +bG +bG +Of +TB +nB +nB +qx +qx +qx +qx +qx +qx +qx +sM +sM +sM +sM +sM +kJ +qx +Hq +"} +(24,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +ru +Za +Yi +Zb +SX +ru +uP +yR +uP +ru +YV +Sz +jJ +fG +ru +qx +qx +qx +qx +qx +nB +nB +nB +TB +TB +PR +TB +TB +TB +nB +nB +nB +qx +qx +qx +qx +qx +qx +sM +sM +sM +sM +sM +sM +qx +Hq +"} +(25,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +ru +qf +Zb +ip +da +ru +Ra +Sc +uP +ru +JP +qY +ru +ru +ru +qx +qx +qx +qx +qx +nB +nB +we +ru +ru +uP +sg +ru +ru +nB +nB +nB +nB +qx +qx +qx +qx +qx +sM +sM +sM +sM +sM +sM +qx +Hq +"} +(26,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +ru +aq +cB +Zb +Zb +De +Ox +Gs +uP +wK +Sz +Sz +jJ +pU +ru +qx +qx +qx +qx +qx +qx +nB +nB +qU +Fp +uP +uP +li +cj +Lk +Lk +fd +fd +fd +fd +fd +fd +fd +BN +Vq +sM +sM +sM +sM +qx +Hq +"} +(27,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +Vk +ru +ru +ru +ru +ru +ru +ru +kh +ru +ru +ru +ru +ru +ru +ru +Vk +qx +qx +qx +qx +qx +nB +nB +ru +eB +uP +nO +uP +ru +nB +qx +qx +qx +qx +qx +qx +qx +qx +sM +sM +sM +sM +sM +sM +qx +Hq +"} +(28,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +jl +rm +ru +nk +oM +oM +oM +yR +oM +oM +oM +uP +ru +uP +Qg +ru +qx +qx +qx +qx +qx +qx +nB +ru +wL +oM +uP +dw +ru +yZ +nB +nB +nB +qx +qx +qx +qx +qx +sM +sM +sM +sM +sM +sM +qx +Hq +"} +(29,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +uP +dw +ru +rH +uP +AN +JA +iX +JA +JA +oM +uP +ru +fJ +Qg +ru +qx +qx +qx +qx +qx +qx +qx +Wd +OH +oM +uP +RU +ru +we +nB +nB +qx +qx +qx +qx +qx +qx +sM +sM +sM +sM +sM +Yr +qx +Hq +"} +(30,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +lo +uP +uP +GZ +uP +Aa +hD +yJ +bD +hD +hD +OI +oM +GB +jA +oM +dU +BK +BK +BK +BK +BK +BK +BK +IH +oM +oM +uP +RU +ru +nB +nB +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(31,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +uP +uP +dd +uP +Aa +hD +Nt +aw +hD +hD +bo +uP +dd +uP +Qg +ru +qx +qx +qx +qx +qx +qx +qx +iL +cZ +uP +uP +RU +ru +nB +nB +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(32,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +aO +uP +ru +XS +uP +uP +hD +aZ +hD +uP +uP +Cf +ru +uP +Fp +ru +qx +qx +qx +qx +qx +qx +nB +ru +ru +Dj +QF +ru +ru +nB +nB +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(33,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +Ig +ru +hD +ru +zi +uP +uP +uP +FN +Cn +uP +uP +uP +ru +hD +ru +Ig +qx +qx +qx +qx +qx +nB +nB +nB +ru +ru +ru +ru +nB +nB +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(34,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +ru +ru +ru +ru +ru +ru +ru +HU +ru +ru +ru +ru +ru +ru +ru +qx +qx +qx +qx +qx +qx +qx +nB +nB +nB +nB +we +nB +nB +nB +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(35,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +UQ +rM +xJ +Kz +Kz +tI +Kz +Kz +ct +xJ +ru +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +nB +nB +nB +nB +nB +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(36,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +ru +ru +ru +Kz +Kz +Kz +Kz +tI +Kz +Kz +Kz +Kz +ru +ru +ru +ru +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(37,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +ln +Kz +ru +iB +Kz +Kz +fV +If +Kz +Kz +Kz +nG +ru +cw +cw +ru +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(38,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +ru +Kz +dz +sq +Kz +CK +Kz +vU +mo +vU +Kz +CK +Kz +ja +Kz +Jg +ru +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(39,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +Ig +ru +Kz +ru +Kz +pz +Kz +xZ +Kz +fM +Kz +kI +Kz +ru +Mm +ru +Ig +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(40,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +ru +ru +ru +Kz +Kz +Kz +Kz +Kz +Kz +Kz +Kz +Kz +ru +ru +ru +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(41,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +ru +ru +vp +vp +pH +vp +iW +vp +vp +vp +vp +ru +ru +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(42,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Ig +hg +hg +hg +hg +hg +hg +hg +hg +hg +Ig +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +we +we +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(43,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +we +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(44,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(45,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +we +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(46,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +we +we +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(47,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +we +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(48,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(49,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(50,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(51,1,1) = {" +Hq +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +qx +Hq +"} +(52,1,1) = {" +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +Hq +"} diff --git a/_maps/virtual_domains/test_only.dmm b/_maps/virtual_domains/test_only.dmm new file mode 100644 index 000000000000..22b647188b6e --- /dev/null +++ b/_maps/virtual_domains/test_only.dmm @@ -0,0 +1,52 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/floor, +/area/virtual_domain/powered) +"D" = ( +/obj/effect/mob_spawn/corpse/human/miner, +/turf/open/floor, +/area/virtual_domain/powered) +"I" = ( +/mob/living/basic/pet/dog/corgi, +/turf/open/floor, +/area/virtual_domain/powered) +"U" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/open/floor, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +I +a +a +a +U +"} +(2,1,1) = {" +D +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +"} diff --git a/_maps/virtual_domains/vaporwave.dmm b/_maps/virtual_domains/vaporwave.dmm new file mode 100644 index 000000000000..984bbbe29148 --- /dev/null +++ b/_maps/virtual_domains/vaporwave.dmm @@ -0,0 +1,1017 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aA" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating{ + initial_gas_mix = "TEMP=2.7" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"bs" = ( +/obj/effect/turf_decal/sand, +/turf/open/floor/iron/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"bF" = ( +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating{ + initial_gas_mix = "TEMP=2.7" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"cz" = ( +/turf/open/misc/asteroid/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"cL" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass, +/obj/item/reagent_containers/cup/glass/drinkingglass{ + pixel_x = -6; + pixel_y = 8 + }, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"df" = ( +/obj/effect/turf_decal/sand, +/turf/open/floor/iron/airless{ + icon_state = "stairs-l" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"eF" = ( +/turf/closed/indestructible/binary, +/area/space) +"fx" = ( +/obj/item/statuebust, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"fQ" = ( +/obj/structure/flora/tree/palm, +/turf/open/floor/holofloor/beach, +/area/ruin/space/has_grav/powered/virtual_domain) +"gM" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/sunglasses/big{ + name = "aesthetic sunglasses" + }, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"hN" = ( +/turf/open/floor/holofloor/beach, +/area/ruin/space/has_grav/powered/virtual_domain) +"il" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/sand, +/turf/open/floor/iron/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"iP" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/template_noop, +/area/virtual_domain/safehouse) +"kj" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/closet/crate/secure/bitrunning/encrypted, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"ku" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"kF" = ( +/obj/effect/turf_decal/sand, +/turf/open/floor/iron/airless{ + icon_state = "stairs-r" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"ll" = ( +/obj/structure/sign/poster/contraband/clown/directional/north, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"lu" = ( +/turf/closed/wall/rust, +/area/ruin/space/has_grav/powered/virtual_domain) +"lB" = ( +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/turf/template_noop, +/area/virtual_domain/safehouse) +"lI" = ( +/obj/structure/table/reinforced, +/obj/machinery/chem_dispenser/drinks/beer/fullupgrade, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"qm" = ( +/obj/structure/flora/tree/palm, +/obj/machinery/light/directional/west, +/turf/open/floor/holofloor/beach, +/area/ruin/space/has_grav/powered/virtual_domain) +"qu" = ( +/turf/open/floor/holofloor/beach/water, +/area/ruin/space/has_grav/powered/virtual_domain) +"rn" = ( +/obj/structure/statue/sandstone/venus{ + anchored = 1; + dir = 4 + }, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating{ + initial_gas_mix = "TEMP=2.7" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"xb" = ( +/obj/structure/chair/stool/directional/west, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"xp" = ( +/obj/structure/table/reinforced, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"xK" = ( +/turf/closed/wall, +/area/ruin/space/has_grav/powered/virtual_domain) +"ym" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"AX" = ( +/obj/effect/turf_decal/stripes/asteroid/line, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating{ + initial_gas_mix = "TEMP=2.7" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"Cq" = ( +/obj/item/instrument/eguitar, +/turf/open/floor/holofloor/beach, +/area/ruin/space/has_grav/powered/virtual_domain) +"CR" = ( +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"Dk" = ( +/obj/structure/window/spawner/directional/east, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"Es" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"Fd" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/wall/rust, +/area/ruin/space/has_grav/powered/virtual_domain) +"Hf" = ( +/obj/effect/turf_decal/sand, +/turf/open/floor/iron/airless{ + icon_state = "recharge_floor_asteroid" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"HA" = ( +/turf/open/floor/holofloor/beach/coast, +/area/ruin/space/has_grav/powered/virtual_domain) +"HV" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"Jr" = ( +/obj/structure/window/spawner/directional/west, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"KO" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"KY" = ( +/obj/effect/turf_decal/sand, +/turf/open/floor/iron/airless{ + icon_state = "stairs-m" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"LG" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"LJ" = ( +/obj/structure/lattice, +/turf/open/misc/asteroid/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"LP" = ( +/obj/structure/flora/tree/palm, +/obj/machinery/light/directional/east, +/turf/open/floor/holofloor/beach, +/area/ruin/space/has_grav/powered/virtual_domain) +"Nz" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/item/storage/fancy/cigarettes/cigars/havana, +/obj/effect/spawner/random/entertainment/lighter, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"NT" = ( +/turf/open/space/basic, +/area/space) +"Qh" = ( +/obj/structure/closet/crate/bin, +/turf/open/misc/asteroid/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"Uy" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"UE" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating{ + initial_gas_mix = "TEMP=2.7" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"UV" = ( +/obj/structure/lattice, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"Vc" = ( +/obj/structure/flora/tree/palm, +/turf/open/misc/asteroid/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"XJ" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/hatch, +/turf/open/floor/pod/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"Yo" = ( +/obj/structure/statue/sandstone/venus{ + anchored = 1; + desc = "Ugh, this is merely an ugly amateurish replica of the other statue! The letters RIPGOAT are scribbled onto the base."; + dir = 8 + }, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating{ + initial_gas_mix = "TEMP=2.7" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"YE" = ( +/mob/living/basic/butterfly, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"ZI" = ( +/obj/effect/spawner/random/structure/musician/piano/random_piano, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) + +(1,1,1) = {" +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +"} +(2,1,1) = {" +eF +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(3,1,1) = {" +eF +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(4,1,1) = {" +eF +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(5,1,1) = {" +eF +NT +NT +NT +NT +NT +NT +cz +LJ +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(6,1,1) = {" +eF +NT +NT +NT +NT +NT +cz +cz +LJ +cz +cz +LJ +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(7,1,1) = {" +eF +NT +NT +NT +NT +cz +cz +cz +UV +LJ +cz +UV +cz +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(8,1,1) = {" +eF +NT +NT +NT +NT +cz +xK +xK +lu +lu +lu +xK +lu +UE +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(9,1,1) = {" +eF +NT +NT +NT +LJ +Qh +xK +fQ +hN +qm +HA +qu +xK +aA +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(10,1,1) = {" +eF +NT +NT +NT +LJ +UV +lu +ZI +Jr +Jr +Jr +Jr +xK +bF +Vc +cz +cz +NT +NT +NT +ku +ku +ku +ku +ku +Uy +NT +eF +"} +(11,1,1) = {" +eF +NT +NT +NT +cz +cz +xK +xb +CR +CR +fx +CR +xK +Yo +il +UE +cz +NT +NT +NT +ku +iP +iP +iP +ku +ku +NT +eF +"} +(12,1,1) = {" +eF +NT +NT +NT +cz +cz +xK +ll +CR +CR +CR +CR +xK +Hf +df +il +cz +NT +NT +NT +ku +ku +ku +ku +ku +ku +NT +eF +"} +(13,1,1) = {" +eF +NT +NT +NT +cz +LJ +xK +HV +Es +CR +CR +CR +XJ +bs +KY +bs +il +NT +NT +NT +ku +ku +ku +ku +ku +ku +NT +eF +"} +(14,1,1) = {" +eF +NT +NT +NT +cz +LJ +lu +xp +gM +CR +CR +cL +xK +Hf +kF +bs +il +NT +NT +NT +ku +ku +ku +ku +ku +ku +NT +eF +"} +(15,1,1) = {" +eF +NT +NT +NT +cz +LJ +lu +KO +KO +CR +YE +lI +lu +rn +il +UE +UE +NT +NT +NT +ku +ku +ku +ku +lB +ku +NT +eF +"} +(16,1,1) = {" +eF +NT +NT +NT +LJ +UV +xK +kj +Dk +Dk +Dk +Nz +xK +AX +Vc +cz +cz +NT +NT +NT +ku +ku +ku +ku +ku +LG +NT +eF +"} +(17,1,1) = {" +eF +NT +NT +NT +cz +cz +lu +fQ +Cq +LP +HA +qu +lu +aA +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(18,1,1) = {" +eF +NT +NT +NT +cz +cz +xK +xK +lu +xK +lu +lu +Fd +UE +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(19,1,1) = {" +eF +NT +NT +NT +NT +cz +cz +cz +UV +LJ +Qh +UV +cz +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(20,1,1) = {" +eF +NT +NT +NT +NT +NT +NT +cz +LJ +cz +cz +LJ +cz +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(21,1,1) = {" +eF +NT +NT +NT +NT +NT +NT +NT +ym +cz +cz +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(22,1,1) = {" +eF +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(23,1,1) = {" +eF +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(24,1,1) = {" +eF +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF +"} +(25,1,1) = {" +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +"} diff --git a/_maps/virtual_domains/wendigo.dmm b/_maps/virtual_domains/wendigo.dmm new file mode 100644 index 000000000000..17bcb48d688b --- /dev/null +++ b/_maps/virtual_domains/wendigo.dmm @@ -0,0 +1,1373 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/indestructible/necropolis{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/virtual_domain) +"b" = ( +/turf/closed/indestructible/rock/snow/ice/ore, +/area/icemoon/underground/explored/virtual_domain) +"e" = ( +/turf/open/misc/asteroid/snow/ice/icemoon, +/area/icemoon/underground/explored/virtual_domain) +"f" = ( +/obj/structure/marker_beacon/olive, +/turf/open/indestructible/necropolis{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/virtual_domain) +"i" = ( +/turf/closed/indestructible/binary, +/area/icemoon/underground/explored/virtual_domain) +"o" = ( +/obj/structure/marker_beacon/indigo, +/turf/open/indestructible/necropolis{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/virtual_domain) +"p" = ( +/obj/structure/marker_beacon/bronze, +/turf/open/indestructible/necropolis{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/virtual_domain) +"q" = ( +/obj/structure/marker_beacon/yellow, +/turf/open/indestructible/necropolis{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/virtual_domain) +"t" = ( +/obj/structure/marker_beacon/teal, +/turf/open/indestructible/necropolis{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/virtual_domain) +"x" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/indestructible/necropolis{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/virtual_domain) +"A" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"E" = ( +/obj/effect/mob_spawn/corpse/human/miner, +/turf/open/misc/asteroid/snow/ice/icemoon, +/area/icemoon/underground/explored/virtual_domain) +"H" = ( +/mob/living/simple_animal/hostile/megafauna/wendigo/virtual_domain, +/turf/open/indestructible/necropolis{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/virtual_domain) +"L" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/icemoon/underground/explored/virtual_domain) +"R" = ( +/obj/item/paper/crumpled/bloody{ + default_raw_text = "for your own sake, do not enter" + }, +/turf/open/misc/asteroid/snow/ice/icemoon, +/area/icemoon/underground/explored/virtual_domain) +"S" = ( +/turf/template_noop, +/area/template_noop) +"V" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"Z" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +S +S +S +S +S +S +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +S +S +S +S +S +S +S +S +S +S +S +S +S +S +"} +(2,1,1) = {" +S +S +S +S +S +i +i +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +i +i +S +S +S +S +S +S +S +S +S +S +S +S +S +"} +(3,1,1) = {" +S +S +S +S +i +i +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +i +i +S +S +S +S +S +S +S +S +S +S +S +S +"} +(4,1,1) = {" +S +S +S +i +i +e +e +e +b +b +b +b +b +e +e +e +b +b +b +b +b +e +e +e +i +i +S +S +S +S +S +S +S +S +S +S +S +"} +(5,1,1) = {" +S +S +i +i +e +e +e +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +e +e +e +i +i +i +i +i +i +i +i +i +i +i +L +"} +(6,1,1) = {" +S +i +i +e +e +e +b +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +b +e +e +e +i +i +e +e +e +e +e +e +e +e +i +"} +(7,1,1) = {" +i +i +e +e +e +b +b +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +b +b +e +e +e +i +e +e +e +e +e +e +e +e +i +"} +(8,1,1) = {" +i +e +e +e +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +e +e +e +e +e +e +e +e +e +e +e +i +"} +(9,1,1) = {" +i +e +e +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +e +e +e +e +e +e +e +e +e +e +i +"} +(10,1,1) = {" +i +e +e +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +e +e +e +e +e +e +e +e +e +e +i +"} +(11,1,1) = {" +i +e +E +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +o +a +a +b +b +b +b +e +e +e +e +e +e +e +e +e +e +i +"} +(12,1,1) = {" +i +e +e +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +e +e +e +e +e +e +e +e +e +e +i +"} +(13,1,1) = {" +i +e +e +b +b +b +a +a +a +a +q +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +e +e +e +e +e +e +e +e +e +e +i +"} +(14,1,1) = {" +i +e +e +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +e +e +e +V +V +V +V +V +Z +e +i +"} +(15,1,1) = {" +i +e +e +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +E +e +e +V +V +V +V +V +V +e +i +"} +(16,1,1) = {" +i +e +e +e +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +e +e +e +e +V +V +V +V +V +V +e +i +"} +(17,1,1) = {" +i +e +e +e +e +e +a +a +a +a +a +a +a +a +H +a +a +a +a +x +a +a +a +e +e +e +e +R +e +V +V +V +V +V +V +e +i +"} +(18,1,1) = {" +i +e +e +e +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +e +e +e +e +V +V +V +V +V +V +e +i +"} +(19,1,1) = {" +i +e +e +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +e +e +e +V +V +V +V +V +V +e +i +"} +(20,1,1) = {" +i +e +e +b +b +b +a +a +a +a +a +a +a +a +p +a +a +a +a +a +a +a +a +b +b +b +e +e +e +V +V +V +V +V +A +e +i +"} +(21,1,1) = {" +i +e +e +b +b +b +a +a +a +a +f +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +e +e +e +e +e +e +e +e +e +e +i +"} +(22,1,1) = {" +i +e +e +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +e +e +e +e +e +e +e +e +e +e +i +"} +(23,1,1) = {" +i +e +e +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +t +a +b +b +b +b +e +e +e +e +e +e +e +e +e +e +i +"} +(24,1,1) = {" +i +e +e +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +e +e +e +e +e +e +e +e +e +e +i +"} +(25,1,1) = {" +i +e +e +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +e +e +e +e +e +e +e +e +e +e +i +"} +(26,1,1) = {" +i +e +e +e +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +e +e +e +e +e +e +e +e +e +e +e +i +"} +(27,1,1) = {" +i +i +e +e +e +b +b +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +b +b +e +e +e +i +e +e +e +e +e +e +e +e +i +"} +(28,1,1) = {" +S +i +i +e +e +e +b +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +b +e +e +e +i +i +e +e +e +e +e +e +e +e +i +"} +(29,1,1) = {" +S +S +i +i +e +e +e +b +b +b +b +b +b +b +e +b +b +b +b +b +b +b +e +e +e +i +i +i +i +i +i +i +i +i +i +i +i +"} +(30,1,1) = {" +S +S +S +i +i +e +e +e +b +b +b +b +b +e +e +e +b +b +b +b +b +e +e +e +i +i +S +S +S +S +S +S +S +S +S +S +S +"} +(31,1,1) = {" +S +S +S +S +i +i +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +i +i +S +S +S +S +S +S +S +S +S +S +S +S +"} +(32,1,1) = {" +S +S +S +S +S +i +i +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +i +i +S +S +S +S +S +S +S +S +S +S +S +S +S +"} +(33,1,1) = {" +S +S +S +S +S +S +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +S +S +S +S +S +S +S +S +S +S +S +S +S +S +"} diff --git a/_maps/virtual_domains/xeno_nest.dmm b/_maps/virtual_domains/xeno_nest.dmm new file mode 100644 index 000000000000..fcbd7cc116c9 --- /dev/null +++ b/_maps/virtual_domains/xeno_nest.dmm @@ -0,0 +1,2071 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"c" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/obj/structure/alien/resin/wall, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"d" = ( +/obj/structure/alien/resin/wall, +/turf/closed/indestructible/binary, +/area/ruin/space/has_grav/powered/virtual_domain) +"e" = ( +/obj/structure/alien/weeds, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"f" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/egg/burst, +/obj/effect/decal/cleanable/blood, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"h" = ( +/obj/structure/alien/weeds, +/mob/living/simple_animal/hostile/alien/sentinel, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"i" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/effect/decal/cleanable/blood, +/obj/item/clothing/under/syndicate, +/obj/item/clothing/glasses/night, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"j" = ( +/obj/machinery/suit_storage_unit/spaceruin, +/turf/template_noop, +/area/virtual_domain/safehouse) +"k" = ( +/obj/structure/alien/weeds/node, +/obj/structure/alien/resin/wall, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"l" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/closed/indestructible/binary, +/area/ruin/space/has_grav/powered/virtual_domain) +"m" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/structure/alien/resin/wall, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"n" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"o" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"p" = ( +/obj/structure/alien/weeds, +/mob/living/simple_animal/hostile/alien/drone{ + plants_off = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"q" = ( +/obj/structure/alien/resin/wall, +/turf/open/space/basic, +/area/ruin/space/has_grav/powered/virtual_domain) +"r" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"s" = ( +/obj/structure/alien/weeds/node, +/mob/living/simple_animal/hostile/alien/drone{ + plants_off = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"t" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"u" = ( +/obj/structure/alien/weeds/node, +/obj/effect/decal/cleanable/blood, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"v" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"x" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"z" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"A" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/ruin/space/has_grav/powered/virtual_domain) +"B" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"C" = ( +/obj/structure/alien/weeds, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/ruin/space/has_grav/powered/virtual_domain) +"D" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/ruin/space/has_grav/powered/virtual_domain) +"E" = ( +/turf/closed/indestructible/binary, +/area/ruin/space/has_grav/powered/virtual_domain) +"F" = ( +/obj/structure/table/greyscale, +/obj/item/gun/energy/beam_rifle, +/obj/item/gun/energy/laser{ + pixel_x = 4; + pixel_y = -6 + }, +/obj/item/gun/energy/laser{ + pixel_x = -8; + pixel_y = 6 + }, +/turf/template_noop, +/area/virtual_domain/safehouse) +"G" = ( +/obj/structure/alien/resin/wall, +/obj/structure/alien/weeds, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"H" = ( +/obj/structure/table/greyscale, +/obj/machinery/recharger{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/machinery/recharger{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/template_noop, +/area/virtual_domain/safehouse) +"I" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"J" = ( +/obj/structure/alien/weeds, +/mob/living/simple_animal/hostile/alien/queen/large{ + desc = "A gigantic alien who is in charge of the hive and all of its loyal servants."; + name = "alien queen"; + pixel_x = -16; + plants_off = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"K" = ( +/obj/structure/alien/weeds, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"L" = ( +/obj/item/storage/medkit/regular, +/obj/item/storage/medkit/regular, +/turf/template_noop, +/area/virtual_domain/safehouse) +"M" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall{ + move_force = 1000; + move_resist = 3000; + pull_force = 1000 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"N" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/clothing/under/rank/security/officer, +/obj/item/clothing/suit/armor/vest, +/obj/item/melee/baton/security/loaded, +/obj/item/clothing/head/helmet, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"O" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/ruin/space/has_grav/powered/virtual_domain) +"P" = ( +/obj/structure/alien/weeds/node, +/mob/living/simple_animal/hostile/alien, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"Q" = ( +/obj/structure/alien/resin/wall, +/obj/structure/alien/resin/wall, +/turf/closed/indestructible/binary, +/area/ruin/space/has_grav/powered/virtual_domain) +"S" = ( +/obj/structure/alien/weeds, +/mob/living/simple_animal/hostile/alien, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"T" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/egg/burst, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"U" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/gun/ballistic/automatic/pistol, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"V" = ( +/obj/structure/alien/weeds/node, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"W" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/egg/burst, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"Y" = ( +/obj/structure/alien/weeds, +/obj/effect/decal/cleanable/blood, +/mob/living/simple_animal/hostile/alien/drone{ + plants_off = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) +"Z" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/obj/effect/decal/cleanable/blood/gibs, +/obj/item/tank/internals/oxygen, +/obj/item/clothing/suit/space/syndicate/orange, +/obj/item/clothing/mask/gas, +/obj/item/clothing/head/helmet/space/syndicate/orange, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/ruin/space/has_grav/powered/virtual_domain) + +(1,1,1) = {" +a +a +a +E +E +E +E +E +E +E +E +E +E +E +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +E +E +z +z +z +z +z +z +z +z +E +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +E +E +z +e +W +W +z +e +e +z +M +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +E +z +z +e +e +e +e +p +e +W +z +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(5,1,1) = {" +a +a +a +E +z +e +e +k +z +z +z +k +z +z +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +E +z +e +e +m +K +J +o +i +z +z +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +E +z +W +h +e +e +e +B +o +e +z +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +E +z +I +o +z +e +V +e +h +W +z +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +E +z +U +u +e +z +e +e +W +z +z +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +E +z +e +o +z +e +e +e +k +W +z +E +a +a +a +a +a +a +a +E +E +E +E +E +E +E +E +E +E +a +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +E +z +z +e +h +e +e +h +e +e +z +E +a +a +a +a +a +a +a +E +E +E +E +z +z +z +z +E +E +a +a +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +E +E +z +W +e +e +e +e +e +e +z +E +a +a +a +a +a +a +a +E +E +E +z +z +Z +I +z +z +E +a +a +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +E +E +z +z +e +e +V +e +e +z +z +E +a +a +a +a +a +a +a +E +E +z +z +W +o +Y +e +z +E +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +a +a +E +E +E +z +z +e +e +e +z +z +E +E +a +a +a +a +E +E +E +E +E +z +I +e +V +e +W +z +E +a +a +a +a +a +a +a +"} +(15,1,1) = {" +a +a +a +a +a +E +E +z +z +z +z +z +E +E +E +E +E +E +E +E +E +E +z +z +z +e +e +e +I +z +z +E +a +a +a +a +a +a +a +"} +(16,1,1) = {" +a +a +a +a +a +a +E +z +V +V +z +E +E +E +E +E +E +E +E +E +E +z +z +e +S +e +W +z +z +z +E +E +a +a +a +a +a +a +a +"} +(17,1,1) = {" +a +a +a +a +a +a +E +z +p +e +z +z +E +z +z +z +z +z +z +z +z +z +e +e +z +z +z +z +E +E +E +E +a +a +a +a +a +a +a +"} +(18,1,1) = {" +a +a +a +a +a +a +E +z +e +e +p +z +z +z +e +e +e +e +e +e +z +z +e +z +z +E +E +E +E +E +E +E +E +E +E +E +E +E +O +"} +(19,1,1) = {" +E +E +E +E +E +E +E +z +z +e +e +e +z +e +e +e +e +e +e +V +e +e +e +z +E +E +E +E +E +E +Q +d +q +q +q +q +q +q +E +"} +(20,1,1) = {" +E +z +z +z +z +E +E +E +z +z +e +V +e +e +e +z +z +z +z +e +e +t +z +z +E +E +a +a +a +E +q +A +A +A +A +A +A +A +E +"} +(21,1,1) = {" +E +z +W +I +z +z +z +z +z +z +e +e +e +e +z +z +E +E +z +z +e +e +z +E +E +E +a +a +a +E +q +A +A +A +A +A +A +A +E +"} +(22,1,1) = {" +E +G +t +S +e +z +z +e +e +e +e +e +e +z +z +E +E +E +z +e +e +e +z +E +E +E +a +a +a +E +q +A +C +A +A +A +A +A +E +"} +(23,1,1) = {" +E +G +K +W +V +e +e +e +z +z +e +z +z +z +E +E +E +E +z +e +e +z +z +E +E +a +a +a +a +E +q +C +C +C +A +A +A +A +E +"} +(24,1,1) = {" +E +z +z +I +I +z +z +z +z +z +e +z +E +E +E +E +E +E +z +e +e +z +E +E +E +E +E +E +E +E +d +C +C +A +A +C +A +A +E +"} +(25,1,1) = {" +E +E +z +z +z +z +E +E +E +z +p +z +z +E +E +E +E +E +z +e +s +z +z +z +E +E +E +E +E +E +z +C +C +C +A +C +C +A +E +"} +(26,1,1) = {" +a +E +E +E +E +E +E +E +E +z +e +e +z +E +E +E +E +E +z +e +e +e +e +z +z +z +E +E +E +z +z +n +n +n +n +n +v +A +E +"} +(27,1,1) = {" +a +a +a +a +a +E +E +z +z +z +e +e +z +z +E +E +E +E +z +z +e +e +e +e +e +z +z +z +z +k +e +n +j +j +j +n +n +A +E +"} +(28,1,1) = {" +a +a +a +a +a +E +z +z +T +e +e +V +W +z +E +E +E +z +z +e +e +z +z +e +e +e +z +V +e +e +e +n +n +n +n +n +n +A +E +"} +(29,1,1) = {" +a +a +a +a +a +E +z +N +f +S +e +W +I +z +E +E +E +z +e +e +z +z +z +z +e +V +z +V +t +e +e +n +n +F +H +n +n +A +E +"} +(30,1,1) = {" +a +a +a +a +a +E +z +x +o +e +I +I +z +z +E +E +E +z +e +z +z +E +E +z +z +z +z +z +k +e +e +n +n +n +n +n +n +A +E +"} +(31,1,1) = {" +a +a +a +a +a +E +z +z +z +e +z +z +z +E +E +E +E +z +e +z +z +E +E +E +E +E +E +E +z +e +e +n +L +n +n +n +n +A +E +"} +(32,1,1) = {" +a +a +a +a +a +E +E +E +z +e +z +E +E +E +E +E +E +z +e +e +z +E +a +a +a +a +E +E +z +e +e +n +n +n +n +n +r +A +E +"} +(33,1,1) = {" +a +a +a +a +a +a +a +E +z +e +z +E +E +a +a +a +E +l +z +V +z +E +a +a +a +a +E +z +z +z +q +C +A +A +C +A +A +A +E +"} +(34,1,1) = {" +a +a +a +a +a +a +a +E +z +V +z +E +E +a +a +a +E +E +z +e +z +E +a +a +a +a +E +z +E +d +q +C +C +C +A +A +A +A +E +"} +(35,1,1) = {" +a +a +a +a +a +a +a +E +z +e +z +E +E +a +a +a +E +E +z +e +z +E +a +a +a +a +E +E +E +d +q +A +A +A +A +A +A +A +E +"} +(36,1,1) = {" +a +a +a +a +a +a +a +E +z +e +z +E +E +E +E +E +E +z +z +e +z +E +a +a +a +a +a +a +E +d +q +A +C +D +A +A +A +A +E +"} +(37,1,1) = {" +a +a +a +a +E +E +E +E +z +e +z +E +E +E +E +E +z +z +e +e +z +E +a +a +a +a +a +a +E +d +q +A +A +A +A +A +A +A +E +"} +(38,1,1) = {" +a +a +a +a +E +E +E +z +z +e +z +z +z +z +z +z +z +e +e +z +z +E +a +a +a +a +a +a +E +d +q +A +A +A +A +A +A +A +E +"} +(39,1,1) = {" +a +a +a +a +E +E +z +z +e +e +W +z +z +e +e +P +e +e +z +z +E +E +a +a +a +a +a +a +E +Q +q +q +q +q +q +q +q +q +E +"} +(40,1,1) = {" +a +a +a +a +E +E +z +I +p +e +e +e +e +e +z +z +z +z +z +E +E +a +a +a +a +a +a +a +E +E +E +E +E +E +E +E +E +E +E +"} +(41,1,1) = {" +a +a +a +a +E +z +z +W +e +V +e +W +z +z +z +E +E +E +E +E +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(42,1,1) = {" +a +a +a +a +E +z +W +K +e +I +I +z +z +E +E +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(43,1,1) = {" +a +a +a +a +E +c +z +z +z +z +z +z +E +E +E +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(44,1,1) = {" +a +a +a +a +E +E +E +E +E +E +E +E +E +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index b745a76376a3..8fa9d18d7bf9 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -104,6 +104,8 @@ #define ACCESS_VAULT "vault" /// Access for the Quartermaster's personal quarters in mapping, as well as some other QM-related things. #define ACCESS_QM "qm" +/// Access for the bitrunning den +#define ACCESS_BIT_DEN "bit_den" /// General access for Science, allows for entry to the general hallways of Science, as well as the main lathe room. #define ACCESS_SCIENCE "science" @@ -279,6 +281,7 @@ ACCESS_ATMOSPHERICS, \ ACCESS_AUX_BASE, \ ACCESS_BAR, \ + ACCESS_BIT_DEN, \ ACCESS_BRIG, \ ACCESS_BRIG_ENTRANCE, \ ACCESS_CARGO, \ @@ -485,6 +488,7 @@ #define REGION_SUPPLY "Supply" /// Used to seed the accesses_by_region list in SSid_access. A list of all cargo regional accesses that are overseen by the HoP. #define REGION_ACCESS_SUPPLY list( \ + ACCESS_BIT_DEN, \ ACCESS_CARGO, \ ACCESS_MECH_MINING, \ ACCESS_MINERAL_STOREROOM, \ @@ -542,6 +546,7 @@ /obj/item/modular_computer/pda/heads/rd = list(REGION_COMMAND), \ /obj/item/modular_computer/pda/heads/captain = list(REGION_COMMAND), \ /obj/item/modular_computer/pda/cargo = list(REGION_SUPPLY), \ + /obj/item/modular_computer/pda/bitrunner = list(REGION_SUPPLY), \ /obj/item/modular_computer/pda/shaftminer = list(REGION_SUPPLY), \ /obj/item/modular_computer/pda/chaplain = list(REGION_GENERAL), \ /obj/item/modular_computer/pda/lawyer = list(REGION_GENERAL), \ diff --git a/code/__DEFINES/alerts.dm b/code/__DEFINES/alerts.dm index d309ebd8d2e9..3cc79764f77e 100644 --- a/code/__DEFINES/alerts.dm +++ b/code/__DEFINES/alerts.dm @@ -60,3 +60,12 @@ #define ALERT_TEMPERATURE "temp" #define ALERT_TEMPERATURE_HOT "temphot" #define ALERT_TEMPERATURE_COLD "tempcold" + +/** Bitrunning */ +#define ALERT_BITRUNNER_CROWBAR "bitrunning_crowbar" +#define ALERT_BITRUNNER_COMPLETED "bitrunning_complete" +#define ALERT_BITRUNNER_INTEGRITY "bitrunning_integrity" +#define ALERT_BITRUNNER_SHUTDOWN "bitrunning_shutdown" +#define ALERT_BITRUNNER_RESET "bitrunning_reset" +#define ALERT_BITRUNNER_SPAWN_CYBERCOP "bitrunning_spawn_cybercop" +#define ALERT_BITRUNNER_THREAT "bitrunning_threat" diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 3f73cc328edd..20cf43b164a5 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -316,6 +316,7 @@ GLOBAL_LIST_INIT(human_invader_antagonists, list( #define ANTAG_GROUP_ASHWALKERS "Ash Walkers" #define ANTAG_GROUP_BIOHAZARDS "Biohazards" #define ANTAG_GROUP_CLOWNOPS "Clown Operatives" +#define ANTAG_GROUP_CYBERAUTH "Cyber Authority" #define ANTAG_GROUP_ERT "Emergency Response Team" #define ANTAG_GROUP_HORRORS "Eldritch Horrors" #define ANTAG_GROUP_LEVIATHANS "Spaceborne Leviathans" diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm index bf187da682a6..586420013510 100644 --- a/code/__DEFINES/atom_hud.dm +++ b/code/__DEFINES/atom_hud.dm @@ -88,6 +88,7 @@ #define SECHUD_ASSISTANT "hudassistant" #define SECHUD_ATMOSPHERIC_TECHNICIAN "hudatmospherictechnician" #define SECHUD_BARTENDER "hudbartender" +#define SECHUD_BITRUNNER "hudbitrunner" #define SECHUD_BOTANIST "hudbotanist" #define SECHUD_CAPTAIN "hudcaptain" #define SECHUD_CARGO_TECHNICIAN "hudcargotechnician" diff --git a/code/__DEFINES/bitrunning.dm b/code/__DEFINES/bitrunning.dm new file mode 100644 index 000000000000..343801c477e9 --- /dev/null +++ b/code/__DEFINES/bitrunning.dm @@ -0,0 +1,20 @@ +#define BITRUNNER_COST_NONE 0 +#define BITRUNNER_COST_LOW 1 +#define BITRUNNER_COST_MEDIUM 2 +#define BITRUNNER_COST_HIGH 3 +#define BITRUNNER_COST_EXTREME 20 + +#define BITRUNNER_REWARD_MIN 1 +#define BITRUNNER_REWARD_LOW 3 +#define BITRUNNER_REWARD_MEDIUM 4 +#define BITRUNNER_REWARD_HIGH 5 +#define BITRUNNER_REWARD_EXTREME 6 + +/// Blue in ui +#define BITRUNNER_DIFFICULTY_NONE 0 +/// Yellow +#define BITRUNNER_DIFFICULTY_LOW 1 +/// Orange +#define BITRUNNER_DIFFICULTY_MEDIUM 2 +/// Red with skull +#define BITRUNNER_DIFFICULTY_HIGH 3 diff --git a/code/__DEFINES/computers.dm b/code/__DEFINES/computers.dm index 1349913c1837..ba3294ae6833 100644 --- a/code/__DEFINES/computers.dm +++ b/code/__DEFINES/computers.dm @@ -8,3 +8,6 @@ #define CATEGORY_CONSUMABLES "Consumables" #define CATEGORY_TOYS_DRONE "Toys & Drones" #define CATEGORY_PKA "PKAs" +#define CATEGORY_BEPIS "Bepis Tech" +#define CATEGORY_BITRUNNING_FLAIR "Misc" +#define CATEGORY_BITRUNNING_TECH "Tech" diff --git a/code/__DEFINES/dcs/signals/signals_bitrunning.dm b/code/__DEFINES/dcs/signals/signals_bitrunning.dm new file mode 100644 index 000000000000..3d008449ee7b --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_bitrunning.dm @@ -0,0 +1,31 @@ +/// from /obj/machinery/netpod/default_pry_open() : (mob/living/intruder) +#define COMSIG_BITRUNNER_CROWBAR_ALERT "bitrunner_crowbar" + +/// from /obj/effect/bitrunning/loot_signal: (points) +#define COMSIG_BITRUNNER_GOAL_POINT "bitrunner_goal_point" + +/// from /obj/machinery/quantum_server/on_goal_turf_entered(): (atom/entered, reward_points) +#define COMSIG_BITRUNNER_DOMAIN_COMPLETE "bitrunner_complete" + +/// from /obj/machinery/netpod/on_take_damage() +#define COMSIG_BITRUNNER_NETPOD_INTEGRITY "bitrunner_netpod_damage" + +/// from /obj/structure/hololadder and complete alert +#define COMSIG_BITRUNNER_SAFE_DISCONNECT "bitrunner_disconnect" + +/// from /obj/machinery/netpod/open_machine(), /obj/machinery/quantum_server, etc (obj/machinery/netpod) +#define COMSIG_BITRUNNER_SEVER_AVATAR "bitrunner_sever" + +/// from /obj/machinery/quantum_server/shutdown() : (mob/living) +#define COMSIG_BITRUNNER_SHUTDOWN_ALERT "bitrunner_shutdown" + +// Notifies the bitrunners +/// from /datum/antagonist/cyber_police/proc/notify() : +#define COMSIG_BITRUNNER_THREAT_CREATED "bitrunner_threat" + +// Informs the server to up the threat count +/// from event spawns: (mob/living) +#define COMSIG_BITRUNNER_SPAWN_GLITCH "bitrunner_spawn_glitch" + +/// from /obj/machinery/quantum_server/refreshParts(): (servo rating) +#define COMSIG_BITRUNNER_SERVER_UPGRADED "bitrunner_server_upgraded" diff --git a/code/__DEFINES/dcs/signals/signals_lazy_templates.dm b/code/__DEFINES/dcs/signals/signals_lazy_templates.dm new file mode 100644 index 000000000000..556ad6c886fc --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_lazy_templates.dm @@ -0,0 +1,2 @@ +/// Fired on the lazy template datum when the template is finished loading. (list/loaded_atoms) +#define COMSIG_LAZY_TEMPLATE_LOADED "lazy_template_loaded" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.dm new file mode 100644 index 000000000000..6ff8b1e8d61d --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_spawner.dm @@ -0,0 +1,6 @@ +// signals for use by mob spawners +/// called when a spawner spawns a mob +#define COMSIG_SPAWNER_SPAWNED "spawner_spawned" + +/// called when a ghost clicks a spawner role: (mob/living) +#define COMSIG_GHOSTROLE_SPAWNED "ghostrole_spawned" diff --git a/code/__DEFINES/dcs/signals/signals_painting.dm b/code/__DEFINES/dcs/signals/signals_painting.dm index 4f9201ec8f2e..73f9eb47190c 100644 --- a/code/__DEFINES/dcs/signals/signals_painting.dm +++ b/code/__DEFINES/dcs/signals/signals_painting.dm @@ -5,3 +5,6 @@ /// from base of /item/canvas/ui_data(): (data) #define COMSIG_PAINTING_TOOL_GET_ADDITIONAL_DATA "painting_tool_get_data" + +///from base of /item/canvas/ui_act(), "change_color" action: (chosen_color, color_index) +#define COMSIG_PAINTING_TOOL_PALETTE_COLOR_CHANGED "painting_tool_palette_color_changed" diff --git a/code/__DEFINES/dcs/signals/signals_turf.dm b/code/__DEFINES/dcs/signals/signals_turf.dm index 247302ddbc58..ea4791f5629b 100644 --- a/code/__DEFINES/dcs/signals/signals_turf.dm +++ b/code/__DEFINES/dcs/signals/signals_turf.dm @@ -35,3 +35,7 @@ #define COMSIG_TURF_DESTROY "turf_destroy" ///this is called whenever a turfs air is updated #define COMSIG_TURF_UPDATE_AIR "turf_air_change" +///from /datum/element/footstep/prepare_step(): (list/steps) +#define COMSIG_TURF_PREPARE_STEP_SOUND "turf_prepare_step_sound" +///from base of datum/thrownthing/finalize(): (turf/turf, atom/movable/thrownthing) when something is thrown and lands on us +#define COMSIG_TURF_MOVABLE_THROW_LANDED "turf_movable_throw_landed" diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index a70bc16b942a..dd653a8d7900 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -94,7 +94,10 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 //TURF FLAGS /// If a turf cant be jaunted through. #define NOJAUNT (1<<0) +/// If a turf is an usused reservation turf awaiting assignment #define UNUSED_RESERVATION_TURF (1<<1) +/// If a turf is a reserved turf +#define RESERVATION_TURF (1<<2) /// Blocks lava rivers being generated on the turf. #define NO_LAVA_GEN (1<<3) /// Blocks ruins spawning on the turf. diff --git a/code/__DEFINES/icon_smoothing.dm b/code/__DEFINES/icon_smoothing.dm index 04a009e9aac3..22a4a91cab40 100644 --- a/code/__DEFINES/icon_smoothing.dm +++ b/code/__DEFINES/icon_smoothing.dm @@ -102,6 +102,7 @@ DEFINE_BITFIELD(smoothing_flags, list( #define SMOOTH_GROUP_MINERAL_WALLS S_TURF(57) ///turf/closed/mineral, /turf/closed/indestructible #define SMOOTH_GROUP_BOSS_WALLS S_TURF(58) ///turf/closed/indestructible/riveted/boss #define SMOOTH_GROUP_SURVIVAL_TITANIUM_WALLS S_TURF(59) ///turf/closed/wall/mineral/titanium/survival +#define SMOOTH_GROUP_TURF_OPEN_CLIFF S_TURF(60) ///turf/open/cliff #define SMOOTH_GROUP_ELEVATED_PLASTEEL S_TURF(60) #define SMOOTH_GROUP_LOWERED_PLASTEEL S_TURF(61) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 75b6e38c71c4..87bf13cca894 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -62,6 +62,8 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list( #define istransparentturf(A) (HAS_TRAIT(A, TURF_Z_TRANSPARENT_TRAIT)) +#define iscliffturf(A) (istype(A, /turf/open/cliff)) + //Mobs #define isliving(A) (istype(A, /mob/living)) diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index f3f5f7f1f9d2..f7d18b3fe158 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -68,6 +68,7 @@ #define JOB_QUARTERMASTER "Quartermaster" #define JOB_CARGO_TECHNICIAN "Cargo Technician" #define JOB_SHAFT_MINER "Shaft Miner" +#define JOB_BITRUNNER "Bitrunner" //Service #define JOB_BARTENDER "Bartender" #define JOB_BOTANIST "Botanist" @@ -124,20 +125,21 @@ #define JOB_DISPLAY_ORDER_QUARTERMASTER 19 #define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 20 #define JOB_DISPLAY_ORDER_SHAFT_MINER 21 -#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 22 -#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 23 -#define JOB_DISPLAY_ORDER_PARAMEDIC 24 -#define JOB_DISPLAY_ORDER_CHEMIST 25 -#define JOB_DISPLAY_ORDER_VIROLOGIST 26 -#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 27 -#define JOB_DISPLAY_ORDER_SCIENTIST 28 -#define JOB_DISPLAY_ORDER_ROBOTICIST 29 -#define JOB_DISPLAY_ORDER_GENETICIST 30 -#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 31 -#define JOB_DISPLAY_ORDER_WARDEN 32 -#define JOB_DISPLAY_ORDER_DETECTIVE 33 -#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 34 -#define JOB_DISPLAY_ORDER_PRISONER 35 +#define JOB_DISPLAY_ORDER_BITRUNNER 22 +#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 23 +#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 24 +#define JOB_DISPLAY_ORDER_PARAMEDIC 25 +#define JOB_DISPLAY_ORDER_CHEMIST 26 +#define JOB_DISPLAY_ORDER_VIROLOGIST 27 +#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 28 +#define JOB_DISPLAY_ORDER_SCIENTIST 29 +#define JOB_DISPLAY_ORDER_ROBOTICIST 30 +#define JOB_DISPLAY_ORDER_GENETICIST 31 +#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 32 +#define JOB_DISPLAY_ORDER_WARDEN 33 +#define JOB_DISPLAY_ORDER_DETECTIVE 34 +#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 35 +#define JOB_DISPLAY_ORDER_PRISONER 36 #define DEPARTMENT_UNASSIGNED "No Department" diff --git a/code/__DEFINES/mapping.dm b/code/__DEFINES/mapping.dm new file mode 100644 index 000000000000..3c08679e2a4b --- /dev/null +++ b/code/__DEFINES/mapping.dm @@ -0,0 +1,6 @@ +// Defines for SSmapping's multiz_levels +/// TRUE if we're ok with going up +#define Z_LEVEL_UP 1 +/// TRUE if we're ok with going down +#define Z_LEVEL_DOWN 2 +#define LARGEST_Z_LEVEL_INDEX Z_LEVEL_DOWN diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index c74d0b739fc2..322eb40fd6d1 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -104,7 +104,7 @@ Always compile, always use that verb, and always make sure that it works for wha // number - default gravity if there's no gravity generators or area overrides present #define ZTRAIT_GRAVITY "Gravity" -// numeric offsets - e.g. {"Down": -1} means that chasms will fall to z - 1 rather than oblivion +// Whether this z level is linked up/down. Bool. #define ZTRAIT_UP "Up" #define ZTRAIT_DOWN "Down" diff --git a/code/__DEFINES/multiz.dm b/code/__DEFINES/multiz.dm new file mode 100644 index 000000000000..9d167495fa88 --- /dev/null +++ b/code/__DEFINES/multiz.dm @@ -0,0 +1,4 @@ +/// Attempt to get the turf below the provided one according to Z traits +#define GET_TURF_BELOW(turf) ((!(turf) || !length(SSmapping.multiz_levels) || !SSmapping.multiz_levels[(turf).z][Z_LEVEL_DOWN]) ? null : get_step((turf), DOWN)) +/// Attempt to get the turf above the provided one according to Z traits +#define GET_TURF_ABOVE(turf) ((!(turf) || !length(SSmapping.multiz_levels) || !SSmapping.multiz_levels[(turf).z][Z_LEVEL_UP]) ? null : get_step((turf), UP)) diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 45b0ad341ffa..be6d6015267c 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -24,6 +24,7 @@ #define ROLE_BLOB "Blob" #define ROLE_BLOB_INFECTION "Blob Infection" #define ROLE_CHANGELING_MIDROUND "Changeling (Midround)" +#define ROLE_CYBER_POLICE "Cyber Police" #define ROLE_FUGITIVE "Fugitive" #define ROLE_LONE_OPERATIVE "Lone Operative" #define ROLE_MALF_MIDROUND "Malf AI (Midround)" @@ -45,61 +46,66 @@ #define ROLE_SYNDICATE_INFILTRATOR "Syndicate Infiltrator" // Other roles +#define ROLE_ANOMALY_GHOST "Ectoplasmic Anomaly Ghost" +#define ROLE_BRAINWASHED "Brainwashed Victim" +#define ROLE_DEATHSQUAD "Deathsquad" +#define ROLE_DRONE "Drone" +#define ROLE_EMAGGED_BOT "Malfunctioning Bot" +#define ROLE_HIVE "Hivemind Host" //Role removed, left here for safety. +#define ROLE_HYPNOTIZED "Hypnotized Victim" #define ROLE_SYNDICATE "Syndicate" #define ROLE_REV "Revolutionary" #define ROLE_REV_SUCCESSFUL "Victorious Revolutionary" #define ROLE_PAI "pAI" #define ROLE_MONKEY_HELMET "Monkey Mind Magnification Helmet" #define ROLE_REVENANT "Revenant" -#define ROLE_BRAINWASHED "Brainwashed Victim" -#define ROLE_HYPNOTIZED "Hypnotized Victim" #define ROLE_OVERTHROW "Syndicate Mutineer" //Role removed, left here for safety. -#define ROLE_HIVE "Hivemind Host" //Role removed, left here for safety. #define ROLE_SENTIENCE "Sentience Potion Spawn" #define ROLE_PYROCLASTIC_SLIME "Pyroclastic Anomaly Slime" -#define ROLE_ANOMALY_GHOST "Ectoplasmic Anomaly Ghost" #define ROLE_MIND_TRANSFER "Mind Transfer Potion" #define ROLE_POSIBRAIN "Posibrain" -#define ROLE_DRONE "Drone" -#define ROLE_DEATHSQUAD "Deathsquad" #define ROLE_LAVALAND "Lavaland" +#define ROLE_LAZARUS_BAD "Slaved Revived Mob" +#define ROLE_LAZARUS_GOOD "Friendly Revived Mob" -#define ROLE_POSITRONIC_BRAIN "Positronic Brain" -#define ROLE_FREE_GOLEM "Free Golem" -#define ROLE_SERVANT_GOLEM "Servant Golem" -#define ROLE_NUCLEAR_OPERATIVE "Nuclear Operative" #define ROLE_CLOWN_OPERATIVE "Clown Operative" -#define ROLE_WIZARD_APPRENTICE "apprentice" -#define ROLE_SLAUGHTER_DEMON "Slaughter Demon" +#define ROLE_FREE_GOLEM "Free Golem" #define ROLE_MORPH "Morph" +#define ROLE_NUCLEAR_OPERATIVE "Nuclear Operative" +#define ROLE_POSITRONIC_BRAIN "Positronic Brain" #define ROLE_SANTA "Santa" +#define ROLE_SERVANT_GOLEM "Servant Golem" +#define ROLE_SLAUGHTER_DEMON "Slaughter Demon" +#define ROLE_WIZARD_APPRENTICE "apprentice" //Spawner roles -#define ROLE_GHOST_ROLE "Ghost Role" +#define ROLE_ANCIENT_CREW "Ancient Crew" +#define ROLE_ASHWALKER "Ash Walker" +#define ROLE_BATTLECRUISER_CAPTAIN "Battlecruiser Captain" +#define ROLE_BATTLECRUISER_CREW "Battlecruiser Crew" +#define ROLE_BEACH_BUM "Beach Bum" +#define ROLE_BOT "Bot" +#define ROLE_DERELICT_DRONE "Derelict Drone" +#define ROLE_ESCAPED_PRISONER "Escaped Prisoner" #define ROLE_EXILE "Exile" #define ROLE_FUGITIVE_HUNTER "Fugitive Hunter" -#define ROLE_ESCAPED_PRISONER "Escaped Prisoner" -#define ROLE_LIFEBRINGER "Lifebringer" -#define ROLE_ASHWALKER "Ash Walker" -#define ROLE_LAVALAND_SYNDICATE "Lavaland Syndicate" +#define ROLE_GHOST_ROLE "Ghost Role" #define ROLE_HERMIT "Hermit" -#define ROLE_BEACH_BUM "Beach Bum" #define ROLE_HOTEL_STAFF "Hotel Staff" +#define ROLE_LAVALAND_SYNDICATE "Lavaland Syndicate" +#define ROLE_LIFEBRINGER "Lifebringer" +#define ROLE_MAINTENANCE_DRONE "Maintenance Drone" +#define ROLE_SKELETON "Skeleton" +#define ROLE_SPACE_BAR_PATRON "Space Bar Patron" +#define ROLE_SPACE_BARTENDER "Space Bartender" +#define ROLE_SPACE_DOCTOR "Space Doctor" +#define ROLE_SPACE_PIRATE "Space Pirate" #define ROLE_SPACE_SYNDICATE "Space Syndicate" #define ROLE_SYNDICATE_CYBERSUN "Cybersun Space Syndicate" //Ghost role syndi from Forgottenship ruin -#define ROLE_SYNDICATE_CYBERSUN_CAPTAIN "Cybersun Space Syndicate Captain" //Forgottenship captain syndie -#define ROLE_SPACE_PIRATE "Space Pirate" -#define ROLE_ANCIENT_CREW "Ancient Crew" -#define ROLE_SPACE_DOCTOR "Space Doctor" -#define ROLE_SPACE_BARTENDER "Space Bartender" -#define ROLE_SPACE_BAR_PATRON "Space Bar Patron" -#define ROLE_SKELETON "Skeleton" +#define ROLE_SYNDICATE_CYBERSUN_CAPTAIN "Cybersun Space Syndicate Captain" //Forgottenship captain syndi #define ROLE_ZOMBIE "Zombie" -#define ROLE_MAINTENANCE_DRONE "Maintenance Drone" -#define ROLE_BATTLECRUISER_CREW "Battlecruiser Crew" -#define ROLE_BATTLECRUISER_CAPTAIN "Battlecruiser Captain" +#define ROLE_SYNDICATE_DRONE "Syndicate Drone" #define ROLE_VENUSHUMANTRAP "Venus Human Trap" -#define ROLE_BOT "Bot" @@ -127,6 +133,7 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_BLOB = 0, ROLE_BLOB_INFECTION = 0, ROLE_CHANGELING_MIDROUND = 0, + ROLE_CYBER_POLICE = 0, ROLE_FUGITIVE = 0, ROLE_LONE_OPERATIVE = 14, ROLE_MALF_MIDROUND = 0, diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index a37c8aff20ce..07230479d473 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -39,6 +39,8 @@ #define STASIS_SHAPECHANGE_EFFECT "stasis_shapechange" +#define STASIS_NETPOD_EFFECT "stasis_netpod" + /// Causes the mob to become blind via the passed source #define become_blind(source) apply_status_effect(/datum/status_effect/grouped/blindness, source) /// Cures the mob's blindness from the passed source, removing blindness wholesale if no sources are left @@ -178,3 +180,8 @@ #define PETRIFICATION_SPIT /datum/status_effect/ranching/cockatrice_eaten ///makes you a mime and gives you the wall ability for the duration #define MIME_EGG /datum/status_effect/ranching/mime + +#define adjust_static_vision(duration) adjust_timed_status_effect(duration, /datum/status_effect/static_vision) +#define adjust_static_vision_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/static_vision, up_to) +#define set_static_vision(duration) set_timed_status_effect(duration, /datum/status_effect/static_vision) +#define set_static_vision_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/static_vision, TRUE) diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 1b1bc2c7095e..2a7084841746 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -209,6 +209,7 @@ #define FIRE_PRIORITY_NPC_MOVEMENT 21 #define FIRE_PRIORITY_NPC_ACTIONS 22 #define FIRE_PRIORITY_PATHFINDING 23 +#define FIRE_PRIORITY_CLIFF_FALLING 24 #define FIRE_PRIORITY_PROCESS 25 #define FIRE_PRIORITY_THROWING 25 #define FIRE_PRIORITY_REAGENTS 26 diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 91b5b6c2e323..582584a2ab5b 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -388,6 +388,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_HYPERSPACED "hyperspaced" ///Gives the movable free hyperspace movement without being pulled during shuttle transit #define TRAIT_FREE_HYPERSPACE_MOVEMENT "free_hyperspace_movement" +///Lets the movable move freely in the soft-cordon area of transit space, which would otherwise teleport them away just before they got to see the true cordon +#define TRAIT_FREE_HYPERSPACE_SOFTCORDON_MOVEMENT "free_hyperspace_softcordon_movement" +///Deletes the object upon being dumped into space, usually from exiting hyperspace. Useful if you're spawning in a lot of stuff for hyperspace events that dont need to flood the entire game +#define TRAIT_DEL_ON_SPACE_DUMP "del_on_hyperspace_leave" +/// We can walk up or around cliffs, or at least we don't fall off of it +#define TRAIT_CLIFF_WALKER "cliff_walker" /// Gets double arcade prizes #define TRAIT_GAMERGOD "gamer-god" #define TRAIT_GIANT "giant" @@ -803,6 +809,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///Trait given to a mob with a ckey currently in a temporary body, allowing people to know someone will re-enter the round later. #define TRAIT_MIND_TEMPORARILY_GONE "temporarily_gone" +/// Similar trait given to temporary bodies inhabited by players +#define TRAIT_TEMPORARY_BODY "temporary_body" + /// Trait given to mechs that can have orebox functionality on movement #define TRAIT_OREBOX_FUNCTIONAL "orebox_functional" diff --git a/code/__HELPERS/lighting.dm b/code/__HELPERS/lighting.dm index 9e64519bbb04..98ed7e7d66c3 100644 --- a/code/__HELPERS/lighting.dm +++ b/code/__HELPERS/lighting.dm @@ -12,6 +12,15 @@ return appearance + +/// Creates a mutable appearance glued to the EMISSIVE_PLAN, using the values from a mutable appearance +/proc/emissive_appearance_copy(mutable_appearance/to_use, atom/offset_spokesman, appearance_flags = (KEEP_APART)) + var/mutable_appearance/appearance = mutable_appearance(to_use.icon, to_use.icon_state, to_use.layer, offset_spokesman, EMISSIVE_PLANE, to_use.alpha, to_use.appearance_flags | appearance_flags) + appearance.color = GLOB.emissive_color + appearance.pixel_x = to_use.pixel_x + appearance.pixel_y = to_use.pixel_y + return appearance + // This is a semi hot proc, so we micro it. saves maybe 150ms // sorry :) /proc/fast_emissive_blocker(atom/make_blocker) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 63b2ea2e80b2..fa28f3c40cfb 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -609,7 +609,7 @@ GLOBAL_LIST_EMPTY(species_list) #define ISADVANCEDTOOLUSER(mob) (HAS_TRAIT(mob, TRAIT_ADVANCEDTOOLUSER) && !HAS_TRAIT(mob, TRAIT_DISCOORDINATED_TOOL_USER)) -#define IS_IN_STASIS(mob) (mob.has_status_effect(/datum/status_effect/grouped/stasis)) +#define IS_IN_STASIS(mob) (mob.has_status_effect(/datum/status_effect/grouped/stasis) || mob.has_status_effect(/datum/status_effect/embryonic)) /// Gets the client of the mob, allowing for mocking of the client. /// You only need to use this if you know you're going to be mocking clients somewhere else. diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 64df601dd2e9..48dc1a8ddbff 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -79,6 +79,7 @@ DEFINE_BITFIELD(turf_flags, list( "IS_SOLID" = IS_SOLID, "UNUSED_RESERVATION_TURF" = UNUSED_RESERVATION_TURF, "WEATHERED_TURF" = TURF_WEATHER, //monkestation edit + "RESERVATION_TURF" = RESERVATION_TURF, )) DEFINE_BITFIELD(car_traits, list( diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index be439d8217fc..8ac2f0d3ddfe 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -127,6 +127,9 @@ GLOBAL_LIST_EMPTY(emergencyresponseteamspawn) GLOBAL_LIST_EMPTY(ruin_landmarks) GLOBAL_LIST_EMPTY(bar_areas) +/// List of all the maps that have been cached for /proc/load_map +GLOBAL_LIST_EMPTY(cached_maps) + /// Away missions GLOBAL_LIST_EMPTY(vr_spawnpoints) diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index e82c9d20f18c..ded99d194f3a 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -28,6 +28,7 @@ GLOBAL_LIST_INIT(oozeling_last_names, world.file2list("strings/names/ooze_last.t GLOBAL_LIST_INIT(simian_last_names, world.file2list("monkestation/strings/names/simian_last.txt")) GLOBAL_LIST_INIT(simian_names_female, world.file2list("monkestation/strings/names/simian_female_first.txt")) GLOBAL_LIST_INIT(simian_names_male, world.file2list("monkestation/strings/names/simian_male_first.txt")) +GLOBAL_LIST_INIT(cyberauth_names, world.file2list("strings/names/cyberauth.txt")) GLOBAL_LIST_INIT(verbs, world.file2list("strings/names/verbs.txt")) GLOBAL_LIST_INIT(ing_verbs, world.file2list("strings/names/ing_verbs.txt")) diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm index afedfa5befe6..ef184e18b1d0 100644 --- a/code/_onclick/hud/fullscreen.dm +++ b/code/_onclick/hud/fullscreen.dm @@ -216,3 +216,10 @@ layer = LIGHTING_ABOVE_ALL blend_mode = BLEND_ADD show_when_dead = TRUE + +/atom/movable/screen/fullscreen/static_vision + icon = 'icons/hud/screen_gen.dmi' + screen_loc = "WEST,SOUTH to EAST,NORTH" + icon_state = "noise" + color = "#04a8d1" + alpha = 80 diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index 50e36870ae64..0b5d39b77380 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -1,11 +1,14 @@ +#define SUBSYSTEM_INIT_SOURCE "subsystem init" + SUBSYSTEM_DEF(atoms) name = "Atoms" init_order = INIT_ORDER_ATOMS flags = SS_NO_FIRE - var/old_initialized - /// A count of how many initalize changes we've made. We want to prevent old_initialize being overriden by some other value, breaking init code - var/initialized_changed = 0 + /// A stack of list(source, desired initialized state) + /// We read the source of init changes from the last entry, and assert that all changes will come with a reset + var/list/initialized_state = list() + var/base_initialized var/list/late_loaders = list() @@ -39,11 +42,11 @@ SUBSYSTEM_DEF(atoms) if(initialized == INITIALIZATION_INSSATOMS) return - set_tracked_initalized(INITIALIZATION_INNEW_MAPLOAD) + set_tracked_initalized(INITIALIZATION_INNEW_MAPLOAD, SUBSYSTEM_INIT_SOURCE) // This may look a bit odd, but if the actual atom creation runtimes for some reason, we absolutely need to set initialized BACK CreateAtoms(atoms, atoms_to_return) - clear_tracked_initalize() + clear_tracked_initalize(SUBSYSTEM_INIT_SOURCE) if(late_loaders.len) for(var/I in 1 to late_loaders.len) @@ -162,31 +165,39 @@ SUBSYSTEM_DEF(atoms) return qdeleted || QDELING(A) -/datum/controller/subsystem/atoms/proc/map_loader_begin() - set_tracked_initalized(INITIALIZATION_INSSATOMS) +/datum/controller/subsystem/atoms/proc/map_loader_begin(source) + set_tracked_initalized(INITIALIZATION_INSSATOMS, source) -/datum/controller/subsystem/atoms/proc/map_loader_stop() - clear_tracked_initalize() +/datum/controller/subsystem/atoms/proc/map_loader_stop(source) + clear_tracked_initalize(source) -/// Use this to set initialized to prevent error states where old_initialized is overriden. It keeps happening and it's cheesing me off -/datum/controller/subsystem/atoms/proc/set_tracked_initalized(value) - if(!initialized_changed) - old_initialized = initialized - initialized = value - else - stack_trace("We started maploading while we were already maploading. You doing something odd?") - initialized_changed += 1 +/// Use this to set initialized to prevent error states where the old initialized is overriden, and we end up losing all context +/// Accepts a state and a source, the most recent state is used, sources exist to prevent overriding old values accidentially +/datum/controller/subsystem/atoms/proc/set_tracked_initalized(state, source) + if(!length(initialized_state)) + base_initialized = initialized + initialized_state += list(list(source, state)) + initialized = state -/datum/controller/subsystem/atoms/proc/clear_tracked_initalize() - initialized_changed -= 1 - if(!initialized_changed) - initialized = old_initialized +/datum/controller/subsystem/atoms/proc/clear_tracked_initalize(source) + if(!length(initialized_state)) + return + for(var/i in length(initialized_state) to 1 step -1) + if(initialized_state[i][1] == source) + initialized_state.Cut(i, i+1) + break + + if(!length(initialized_state)) + initialized = base_initialized + base_initialized = INITIALIZATION_INNEW_REGULAR + return + initialized = initialized_state[length(initialized_state)][2] /datum/controller/subsystem/atoms/Recover() initialized = SSatoms.initialized if(initialized == INITIALIZATION_INNEW_MAPLOAD) InitializeAtoms() - old_initialized = SSatoms.old_initialized + initialized_state = SSatoms.initialized_state BadInitializeCalls = SSatoms.BadInitializeCalls /datum/controller/subsystem/atoms/proc/setupGenetics() @@ -238,3 +249,5 @@ SUBSYSTEM_DEF(atoms) var/initlog = InitLog() if(initlog) text2file(initlog, "[GLOB.log_directory]/initialize.log") + +#undef SUBSYSTEM_INIT_SOURCE diff --git a/code/controllers/subsystem/id_access.dm b/code/controllers/subsystem/id_access.dm index 08eb9bc061cc..483dcd49bd25 100644 --- a/code/controllers/subsystem/id_access.dm +++ b/code/controllers/subsystem/id_access.dm @@ -322,6 +322,7 @@ SUBSYSTEM_DEF(id_access) desc_by_access["[ACCESS_CENT_SPECOPS]"] = "Code Black" desc_by_access["[ACCESS_CENT_CAPTAIN]"] = "Code Gold" desc_by_access["[ACCESS_CENT_BAR]"] = "Code Scotch" + desc_by_access["[ACCESS_BIT_DEN]"] = "Bitrunner Den" /** * Returns the access bitflags associated with any given access level. diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm index 51578de0c347..2426741df79c 100644 --- a/code/controllers/subsystem/machines.dm +++ b/code/controllers/subsystem/machines.dm @@ -3,6 +3,13 @@ SUBSYSTEM_DEF(machines) init_order = INIT_ORDER_MACHINES flags = SS_KEEP_TIMING wait = 2 SECONDS + + /// Assosciative list of all machines that exist. + VAR_PRIVATE/list/machines_by_type = list() + + /// All machines, not just those that are processing. + VAR_PRIVATE/list/all_machines = list() + var/list/processing = list() var/list/currentrun = list() ///List of all powernets on the server. @@ -13,6 +20,46 @@ SUBSYSTEM_DEF(machines) fire() return SS_INIT_SUCCESS +/// Registers a machine with the machine subsystem; should only be called by the machine itself during its creation. +/datum/controller/subsystem/machines/proc/register_machine(obj/machinery/machine) + LAZYADD(machines_by_type[machine.type], machine) + all_machines |= machine + +/// Removes a machine from the machine subsystem; should only be called by the machine itself inside Destroy. +/datum/controller/subsystem/machines/proc/unregister_machine(obj/machinery/machine) + var/list/existing = machines_by_type[machine.type] + existing -= machine + if(!length(existing)) + machines_by_type -= machine.type + all_machines -= machine + +/// Gets a list of all machines that are either the passed type or a subtype. +/datum/controller/subsystem/machines/proc/get_machines_by_type_and_subtypes(obj/machinery/machine_type) + if(!ispath(machine_type)) + machine_type = machine_type.type + if(!ispath(machine_type, /obj/machinery)) + CRASH("called get_machines_by_type_and_subtypes with a non-machine type [machine_type]") + var/list/machines = list() + for(var/next_type in typesof(machine_type)) + var/list/found_machines = machines_by_type[next_type] + if(found_machines) + machines += found_machines + return machines + + +/// Gets a list of all machines that are the exact passed type. +/datum/controller/subsystem/machines/proc/get_machines_by_type(obj/machinery/machine_type) + if(!ispath(machine_type)) + machine_type = machine_type.type + if(!ispath(machine_type, /obj/machinery)) + CRASH("called get_machines_by_type with a non-machine type [machine_type]") + + var/list/machines = machines_by_type[machine_type] + return machines?.Copy() || list() + +/datum/controller/subsystem/machines/proc/get_all_machines() + return all_machines.Copy() + /datum/controller/subsystem/machines/proc/makepowernets() for(var/datum/powernet/power_network as anything in powernets) qdel(power_network) @@ -25,7 +72,7 @@ SUBSYSTEM_DEF(machines) propagate_network(power_cable, power_cable.powernet) /datum/controller/subsystem/machines/stat_entry(msg) - msg = "M:[length(processing)]|PN:[length(powernets)]" + msg = "M:[length(all_machines)]|MT:[length(machines_by_type)]|PM:[length(processing)]|PN:[length(powernets)]" return ..() /datum/controller/subsystem/machines/fire(resumed = FALSE) @@ -56,7 +103,11 @@ SUBSYSTEM_DEF(machines) propagate_network(PC,PC.powernet) /datum/controller/subsystem/machines/Recover() - if (istype(SSmachines.processing)) + if(islist(SSmachines.processing)) processing = SSmachines.processing - if (istype(SSmachines.powernets)) + if(islist(SSmachines.powernets)) powernets = SSmachines.powernets + if(islist(SSmachines.all_machines)) + all_machines = SSmachines.all_machines + if(islist(SSmachines.machines_by_type)) + machines_by_type = SSmachines.machines_by_type diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 1ef9f65d6dfa..5b9d561afcae 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -193,7 +193,7 @@ SUBSYSTEM_DEF(mapping) unused_turfs["[T.z]"] |= T var/area/old_area = T.loc old_area.turfs_to_uncontain += T - T.flags_1 |= UNUSED_RESERVATION_TURF + T.turf_flags = UNUSED_RESERVATION_TURF world_contents += T world_turf_contents += T packet.len-- @@ -217,13 +217,13 @@ SUBSYSTEM_DEF(mapping) if(multiz_levels.len < z_level) multiz_levels.len = z_level - var/linked_down = level_trait(z_level, ZTRAIT_DOWN) - var/linked_up = level_trait(z_level, ZTRAIT_UP) - multiz_levels[z_level] = list() - if(linked_down) - multiz_levels[z_level]["[DOWN]"] = TRUE - if(linked_up) - multiz_levels[z_level]["[UP]"] = TRUE + var/z_above = level_trait(z_level, ZTRAIT_UP) + var/z_below = level_trait(z_level, ZTRAIT_DOWN) + if(!(z_above == TRUE || z_above == FALSE || z_above == null) || !(z_below == TRUE || z_below == FALSE || z_below == null)) + stack_trace("Warning, numeric mapping offsets are deprecated. Instead, mark z level connections by setting UP/DOWN to true if the connection is allowed") + multiz_levels[z_level] = new /list(LARGEST_Z_LEVEL_INDEX) + multiz_levels[z_level][Z_LEVEL_UP] = !!z_above + multiz_levels[z_level][Z_LEVEL_DOWN] = !!z_below /datum/controller/subsystem/mapping/proc/calculate_z_level_gravity(z_level_number) if(!isnum(z_level_number) || z_level_number < 1) @@ -309,6 +309,10 @@ SUBSYSTEM_DEF(mapping) returning += M qdel(T, TRUE) +/datum/controller/subsystem/mapping/proc/get_reservation_from_turf(turf/T) + RETURN_TYPE(/datum/turf_reservation) + return used_turfs[T] + /* Nuke threats, for making the blue tiles on the station go RED Used by the AI doomsday and the self-destruct nuke. */ @@ -824,26 +828,34 @@ GLOBAL_LIST_EMPTY(the_station_areas) num_of_res_levels++ return add_new_zlevel("Transit/Reserved #[num_of_res_levels]", list(ZTRAIT_RESERVED = TRUE)) -/datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override) - UNTIL((!z || reservation_ready["[z]"]) && !clearing_reserved_turfs) - var/datum/turf_reservation/reserve = new type - if(turf_type_override) +/// Requests a /datum/turf_reservation based on the given width, height, and z_size. You can specify a z_reservation to use a specific z level, or leave it null to use any z level. +/datum/controller/subsystem/mapping/proc/request_turf_block_reservation( + width, + height, + z_size = 1, + z_reservation = null, + reservation_type = /datum/turf_reservation, + turf_type_override = null, +) + UNTIL((!z_reservation || reservation_ready["[z_reservation]"]) && !clearing_reserved_turfs) + var/datum/turf_reservation/reserve = new reservation_type + if(!isnull(turf_type_override)) reserve.turf_type = turf_type_override - if(!z) + if(!z_reservation) for(var/i in levels_by_trait(ZTRAIT_RESERVED)) - if(reserve.Reserve(width, height, i)) + if(reserve.reserve(width, height, z_size, i)) return reserve //If we didn't return at this point, theres a good chance we ran out of room on the exisiting reserved z levels, so lets try a new one var/datum/space_level/newReserved = add_reservation_zlevel() initialize_reserved_level(newReserved.z_value) - if(reserve.Reserve(width, height, newReserved.z_value)) + if(reserve.reserve(width, height, z_size, newReserved.z_value)) return reserve else - if(!level_trait(z, ZTRAIT_RESERVED)) + if(!level_trait(z_reservation, ZTRAIT_RESERVED)) qdel(reserve) return else - if(reserve.Reserve(width, height, z)) + if(reserve.reserve(width, height, z_size, z_reservation)) return reserve QDEL_NULL(reserve) @@ -861,7 +873,7 @@ GLOBAL_LIST_EMPTY(the_station_areas) var/block = block(A, B) for(var/turf/T as anything in block) // No need to empty() these, because they just got created and are already /turf/open/space/basic. - T.flags_1 |= UNUSED_RESERVATION_TURF + T.turf_flags = UNUSED_RESERVATION_TURF CHECK_TICK // Gotta create these suckers if we've not done so already @@ -958,24 +970,24 @@ GLOBAL_LIST_EMPTY(the_station_areas) /datum/controller/subsystem/mapping/proc/update_plane_tracking(datum/space_level/update_with) // We're essentially going to walk down the stack of connected z levels, and set their plane offset as we go - // Yes this will cause infinite loops if our templating is fucked. Fuck off - var/below_offset = 0 - // I'm sorry, it needs to start at 0 - var/current_level = -1 - var/current_z = update_with.z_value + var/plane_offset = 0 + var/datum/space_level/current_z = update_with var/list/datum/space_level/levels_checked = list() - do - current_level += 1 - current_z += below_offset - z_level_to_plane_offset[current_z] = current_level - var/datum/space_level/next_level = z_list[current_z] - below_offset = next_level.traits[ZTRAIT_DOWN] - levels_checked += next_level - while(below_offset) + var/list/z_stack = list() + while(TRUE) + var/z_level = current_z.z_value + z_stack += z_level + z_level_to_plane_offset[z_level] = plane_offset + levels_checked += current_z + if(!current_z.traits[ZTRAIT_DOWN]) // If there's nothing below, stop looking + break + // Otherwise, down down down we go + current_z = z_list[z_level - 1] + plane_offset += 1 /// Updates the lowest offset value for(var/datum/space_level/level_to_update in levels_checked) - z_level_to_lowest_plane_offset[level_to_update.z_value] = current_level + z_level_to_lowest_plane_offset[level_to_update.z_value] = plane_offset // This can be affected by offsets, so we need to update it // PAIN @@ -983,7 +995,7 @@ GLOBAL_LIST_EMPTY(the_station_areas) generate_lighting_appearance_by_z(i) var/old_max = max_plane_offset - max_plane_offset = max(max_plane_offset, current_level) + max_plane_offset = max(max_plane_offset, plane_offset) if(max_plane_offset == old_max) return diff --git a/code/controllers/subsystem/movement/cliff_falling.dm b/code/controllers/subsystem/movement/cliff_falling.dm new file mode 100644 index 000000000000..bf95397f8e8c --- /dev/null +++ b/code/controllers/subsystem/movement/cliff_falling.dm @@ -0,0 +1,61 @@ +/// Subsystem to handle falling of off cliffs +MOVEMENT_SUBSYSTEM_DEF(cliff_falling) + name = "Cliff Falling" + priority = FIRE_PRIORITY_CLIFF_FALLING + flags = SS_NO_INIT|SS_TICKER + runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME + + /// Who are currently falling and with which movemanager? + var/list/cliff_grinders = list() + +/datum/controller/subsystem/movement/cliff_falling/proc/start_falling(atom/movable/faller, turf/open/cliff/cliff) + // Make them move + var/mover = SSmove_manager.move(moving = faller, direction = cliff.fall_direction, delay = cliff.fall_speed, subsystem = src, priority = MOVEMENT_ABOVE_SPACE_PRIORITY, flags = MOVEMENT_LOOP_OUTSIDE_CONTROL | MOVEMENT_LOOP_NO_DIR_UPDATE) + + cliff_grinders[faller] = mover + + RegisterSignal(faller, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) + RegisterSignal(faller, COMSIG_PARENT_QDELETING, PROC_REF(clear_references)) + RegisterSignal(faller, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(check_move)) + +/// We just moved, so check if we're still moving right +/datum/controller/subsystem/movement/cliff_falling/proc/on_moved(atom/movable/mover, turf/old_loc) + SIGNAL_HANDLER + + var/turf/open/cliff/new_cliff = mover.loc + if(!iscliffturf(new_cliff)) //not a cliff, lets clean up + var/datum/move_loop/move/falling = cliff_grinders[mover] + clear_references(mover) + qdel(falling) + return + + new_cliff.on_fall(mover) + + if(old_loc.type == new_cliff) //same type of cliff, no worries + return + + var/datum/move_loop/move/fall = cliff_grinders[mover] + fall.set_delay(new_cliff.fall_speed) //different cliff, so set the speed + +/datum/controller/subsystem/movement/cliff_falling/proc/on_qdel(atom/movable/deletee) + SIGNAL_HANDLER + + clear_references(deletee) + +/datum/controller/subsystem/movement/cliff_falling/proc/clear_references(atom/movable/deletee) + cliff_grinders -= deletee + + UnregisterSignal(deletee, list(COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING, COMSIG_MOVABLE_PRE_MOVE)) + +/// Check if we can move! We do this mostly to determine falling behaviour and make sure we're moving to valid tiles +/datum/controller/subsystem/movement/cliff_falling/proc/check_move(atom/movable/mover, turf/target) + SIGNAL_HANDLER + + var/turf/open/cliff/cliff_turf = get_turf(mover) + + if(!iscliffturf(cliff_turf)) //we arent on a cliff, WHY ARE WE HERE??? + clear_references(mover) + return + + if(!cliff_turf.can_move(mover, target)) + return COMPONENT_MOVABLE_BLOCK_PRE_MOVE diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index a4e1e17e15db..839be9dc6ec0 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -601,12 +601,18 @@ SUBSYSTEM_DEF(shuttle) if(WEST) transit_path = /turf/open/space/transit/west - var/datum/turf_reservation/proposal = SSmapping.RequestBlockReservation(transit_width, transit_height, null, /datum/turf_reservation/transit, transit_path) + var/datum/turf_reservation/proposal = SSmapping.request_turf_block_reservation( + transit_width, + transit_height, + 1, + reservation_type = /datum/turf_reservation/transit, + turf_type_override = transit_path, + ) if(!istype(proposal)) return FALSE - var/turf/bottomleft = locate(proposal.bottom_left_coords[1], proposal.bottom_left_coords[2], proposal.bottom_left_coords[3]) + var/turf/bottomleft = proposal.bottom_left_turfs[1] // Then create a transit docking port in the middle var/coords = M.return_coords(0, 0, dock_dir) /* 0------2 @@ -877,10 +883,15 @@ SUBSYSTEM_DEF(shuttle) /datum/controller/subsystem/shuttle/proc/load_template(datum/map_template/shuttle/loading_template) . = FALSE // Load shuttle template to a fresh block reservation. - preview_reservation = SSmapping.RequestBlockReservation(loading_template.width, loading_template.height, type = /datum/turf_reservation/transit) + preview_reservation = SSmapping.request_turf_block_reservation( + loading_template.width, + loading_template.height, + 1, + reservation_type = /datum/turf_reservation/transit, + ) if(!preview_reservation) CRASH("failed to reserve an area for shuttle template loading") - var/turf/bottom_left = TURF_FROM_COORDS_LIST(preview_reservation.bottom_left_coords) + var/turf/bottom_left = preview_reservation.bottom_left_turfs[1] loading_template.load(bottom_left, centered = FALSE, register = FALSE) var/affected = loading_template.get_affected_turfs(bottom_left, centered=FALSE) diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 1c5c50dd0fbf..d99019e61a57 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -225,6 +225,9 @@ SUBSYSTEM_DEF(throwing) if(thrownthing) SEND_SIGNAL(thrownthing, COMSIG_MOVABLE_THROW_LANDED, src) + var/turf/landed_turf = get_turf(thrownthing) + if(!isnull(landed_turf) && isnull(thrownthing)) + SEND_SIGNAL(landed_turf, COMSIG_TURF_MOVABLE_THROW_LANDED, thrownthing) qdel(src) diff --git a/code/datums/actions/mobs/lava_swoop.dm b/code/datums/actions/mobs/lava_swoop.dm index 618dcc10ff07..d23252c73aac 100644 --- a/code/datums/actions/mobs/lava_swoop.dm +++ b/code/datums/actions/mobs/lava_swoop.dm @@ -152,7 +152,7 @@ if(isindestructiblefloor(T)) continue if(!isindestructiblewall(T)) - T.ChangeTurf(/turf/open/misc/asteroid/basalt/lava_land_surface, flags = CHANGETURF_INHERIT_AIR) + T.TerraformTurf(/turf/open/misc/asteroid/basalt/lava_land_surface, flags = CHANGETURF_INHERIT_AIR) else indestructible_turfs += T SLEEP_CHECK_DEATH(1 SECONDS, owner) // give them a bit of time to realize what attack is actually happening diff --git a/code/datums/components/palette.dm b/code/datums/components/palette.dm index 6f44e6e7f150..8d1631c9557c 100644 --- a/code/datums/components/palette.dm +++ b/code/datums/components/palette.dm @@ -38,6 +38,7 @@ RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) RegisterSignal(parent, COMSIG_PAINTING_TOOL_SET_COLOR, PROC_REF(on_painting_tool_set_color)) RegisterSignal(parent, COMSIG_PAINTING_TOOL_GET_ADDITIONAL_DATA, PROC_REF(get_palette_data)) + RegisterSignal(parent, COMSIG_PAINTING_TOOL_PALETTE_COLOR_CHANGED, PROC_REF(palette_color_changed)) /datum/component/palette/Destroy() QDEL_NULL(color_picker_menu) @@ -128,3 +129,14 @@ "is_selected" = hexcolor == selected_color )) data["paint_tool_palette"] = painting_data + +/datum/component/palette/proc/palette_color_changed(datum/source, chosen_color, index) + SIGNAL_HANDLER + + var/was_selected_color = selected_color == colors[index] + colors[index] = chosen_color + if(was_selected_color) + var/obj/item/parent_item = parent + parent_item.set_painting_tool_color(chosen_color) + else + update_radial_list() diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm index 48d20c049186..619568f67e08 100644 --- a/code/datums/diseases/advance/symptoms/heal.dm +++ b/code/datums/diseases/advance/symptoms/heal.dm @@ -75,8 +75,8 @@ power = 2 /datum/symptom/heal/starlight/proc/CanTileHealDirectional(turf/turf_to_check, direction) - if(direction == ZTRAIT_UP) - turf_to_check = turf_to_check.above() + if(direction == UP) + turf_to_check = GET_TURF_ABOVE(turf_to_check) if(!turf_to_check) return STARLIGHT_CANNOT_HEAL var/area/area_to_check = get_area(turf_to_check) @@ -86,7 +86,7 @@ // while space covers normal space and those caused by explosions, // if there is a floor tile when checking above, that means // a roof exists so the outdoors should only work downwards - if(isspaceturf(turf_to_check) || (area_to_check.outdoors && direction == ZTRAIT_DOWN)) + if(isspaceturf(turf_to_check) || (area_to_check.outdoors && direction == DOWN)) if (levels_of_glass) return STARLIGHT_CAN_HEAL_WITH_PENALTY // Glass gives a penalty. return STARLIGHT_CAN_HEAL // No glass = can heal fully. @@ -98,10 +98,10 @@ // Our turf is transparent OR openspace - we can check higher or lower z-levels if(istransparentturf(turf_to_check) || istype(turf_to_check, /turf/open/openspace)) // Check above or below us - if(direction == ZTRAIT_UP) - turf_to_check = turf_to_check.above() + if(direction == UP) + turf_to_check = GET_TURF_ABOVE(turf_to_check) else - turf_to_check = turf_to_check.below() + turf_to_check = GET_TURF_BELOW(turf_to_check) // If we found a turf above or below us, // then we can rerun the loop on the newly found turf / area @@ -114,7 +114,7 @@ // Checking below, we assume that space is below us (as we're standing on station) // Checking above, we check that the area is "outdoors" before assuming if it is space or not. else - if(direction == ZTRAIT_DOWN || (direction == ZTRAIT_UP && area_to_check.outdoors)) + if(direction == DOWN || (direction == UP && area_to_check.outdoors)) if (levels_of_glass) return STARLIGHT_CAN_HEAL_WITH_PENALTY return STARLIGHT_CAN_HEAL @@ -122,12 +122,12 @@ return STARLIGHT_CANNOT_HEAL // Hit a non-space, Non-transparent turf - no healsies /datum/symptom/heal/starlight/proc/CanTileHeal(turf/original_turf, satisfied_with_penalty) - var/current_heal_level = CanTileHealDirectional(original_turf, ZTRAIT_DOWN) + var/current_heal_level = CanTileHealDirectional(original_turf, DOWN) if(current_heal_level == STARLIGHT_CAN_HEAL) return current_heal_level if(current_heal_level && satisfied_with_penalty) // do not care if there is a healing penalty or no return current_heal_level - var/heal_level_from_above = CanTileHealDirectional(original_turf, ZTRAIT_UP) + var/heal_level_from_above = CanTileHealDirectional(original_turf, UP) if(heal_level_from_above > current_heal_level) return heal_level_from_above else diff --git a/code/datums/elements/cliff_walker.dm b/code/datums/elements/cliff_walker.dm new file mode 100644 index 000000000000..063349b7ddc1 --- /dev/null +++ b/code/datums/elements/cliff_walker.dm @@ -0,0 +1,34 @@ +/// Lets a mob walk cliffs and keeps track of if they're alive or not to add/remove the trait +/datum/element/cliff_walking + +/datum/element/cliff_walking/Attach(datum/target, climb_time, climb_stun) + . = ..() + + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + + // Feel free to add more bespoke signals here if this gets implemented for more than just a few funny mobs + RegisterSignals(target, list(COMSIG_LIVING_DEATH, COMSIG_LIVING_REVIVE), PROC_REF(update_cliff_walking)) + + update_cliff_walking(target) + +/datum/element/cliff_walking/Detach(datum/source, ...) + . = ..() + + UnregisterSignal(source, list(COMSIG_LIVING_DEATH, COMSIG_LIVING_REVIVE)) + +/// Do some checks to see if we should walk the cliffs +/datum/element/cliff_walking/proc/update_cliff_walking(mob/living/climber) + SIGNAL_HANDLER + + if(climber.stat != DEAD) + ADD_TRAIT(climber, TRAIT_CLIFF_WALKER, type) + return + + REMOVE_TRAIT(climber, TRAIT_CLIFF_WALKER, type) + + var/turf/open/cliff/cliff_tile = get_turf(climber) + if(!iscliffturf(cliff_tile)) + return + + cliff_tile.try_fall(climber) diff --git a/code/datums/elements/openspace_item_click_handler.dm b/code/datums/elements/openspace_item_click_handler.dm index f0449892cebd..c9de01f381cd 100644 --- a/code/datums/elements/openspace_item_click_handler.dm +++ b/code/datums/elements/openspace_item_click_handler.dm @@ -19,7 +19,11 @@ SIGNAL_HANDLER if(target.z == user.z) return - var/turf/turf_above = get_step_multiz(target, UP) - if(turf_above?.z == user.z) - INVOKE_ASYNC(source, TYPE_PROC_REF(/obj/item, handle_openspace_click), turf_above, user, user.CanReach(turf_above, source), click_parameters) + var/turf/checked_turf = get_turf(target) + while(!isnull(checked_turf)) + checked_turf = GET_TURF_ABOVE(checked_turf) + if(checked_turf?.z == user.z) + INVOKE_ASYNC(source, TYPE_PROC_REF(/obj/item, handle_openspace_click), checked_turf, user, user.CanReach(checked_turf, source), click_parameters) + break + return COMPONENT_AFTERATTACK_PROCESSED_ITEM diff --git a/code/datums/elements/turf_transparency.dm b/code/datums/elements/turf_transparency.dm index ab3a17dc40d5..b050dd0866f0 100644 --- a/code/datums/elements/turf_transparency.dm +++ b/code/datums/elements/turf_transparency.dm @@ -103,7 +103,7 @@ GLOBAL_LIST_EMPTY(pillars_by_z) if(!holding) return - var/turf/visual_target = to_display.above() + var/turf/visual_target = GET_TURF_ABOVE(to_display) /// Basically, if we used to be under a non transparent turf, but are no longer in that position /// Then we add to the transparent turf we're now under, and nuke the old object if(!istransparentturf(visual_target)) @@ -120,7 +120,7 @@ GLOBAL_LIST_EMPTY(pillars_by_z) turf_sources[to_display] = sources sources |= source - var/turf/visual_target = to_display.above() + var/turf/visual_target = GET_TURF_ABOVE(to_display) if(istransparentturf(visual_target) || isopenspaceturf(visual_target)) visual_target.vis_contents += to_display else @@ -142,7 +142,7 @@ GLOBAL_LIST_EMPTY(pillars_by_z) if(holding) qdel(holding) else - var/turf/visual_target = to_hide.above() + var/turf/visual_target = GET_TURF_ABOVE(to_hide) visual_target.vis_contents -= to_hide if(!length(turf_sources) && !QDELETED(src)) @@ -201,7 +201,7 @@ GLOBAL_LIST_EMPTY(pillars_by_z) ///Updates the viscontents or underlays below this tile. /datum/element/turf_z_transparency/proc/update_multi_z(turf/our_turf) - var/turf/below_turf = our_turf.below() + var/turf/below_turf = GET_TURF_BELOW(our_turf) if(below_turf) // If we actually have something below us, display it. for(var/turf/partner in range(1, below_turf)) // We use our z here to ensure the pillar is actually on our level @@ -228,7 +228,7 @@ GLOBAL_LIST_EMPTY(pillars_by_z) return TRUE /datum/element/turf_z_transparency/proc/clear_multiz(turf/our_turf) - var/turf/below_turf = our_turf.below() + var/turf/below_turf = GET_TURF_BELOW(our_turf) if(below_turf) // If we actually have something below us, we need to clear ourselves from it for(var/turf/partner in range(1, below_turf)) // We use our z here to ensure the pillar is actually on our level diff --git a/code/datums/id_trim/jobs.dm b/code/datums/id_trim/jobs.dm index b54686535ef0..910ecdda6f61 100644 --- a/code/datums/id_trim/jobs.dm +++ b/code/datums/id_trim/jobs.dm @@ -155,6 +155,30 @@ ) job = /datum/job/bartender +/datum/id_trim/job/bitrunner + assignment = "Bitrunner" + trim_state = "trim_bitrunner" + department_color = COLOR_CARGO_BROWN + subdepartment_color = COLOR_CARGO_BROWN + sechud_icon_state = SECHUD_BITRUNNER + minimal_access = list( + ACCESS_BIT_DEN, + ACCESS_CARGO, + ACCESS_MAINT_TUNNELS, + ACCESS_MECH_MINING, + ACCESS_MINERAL_STOREROOM, + ) + extra_access = list( + ACCESS_MINING, + ACCESS_MINING_STATION, + ) + template_access = list( + ACCESS_CAPTAIN, + ACCESS_CHANGE_IDS, + ACCESS_QM, + ) + job = /datum/job/bitrunner + /datum/id_trim/job/botanist assignment = "Botanist" trim_state = "trim_botanist" @@ -215,6 +239,7 @@ ACCESS_SHIPPING, ) extra_access = list( + ACCESS_BIT_DEN, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_QM, @@ -544,6 +569,7 @@ ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_ARMORY, ACCESS_AUX_BASE, + ACCESS_BIT_DEN, ACCESS_BRIG, ACCESS_BRIG_ENTRANCE, ACCESS_CARGO, @@ -677,6 +703,7 @@ subdepartment_color = COLOR_MEDICAL_BLUE sechud_icon_state = SECHUD_PARAMEDIC minimal_access = list( + ACCESS_BIT_DEN, ACCESS_CARGO, ACCESS_CONSTRUCTION, ACCESS_HYDROPONICS, @@ -771,6 +798,7 @@ sechud_icon_state = SECHUD_QUARTERMASTER minimal_access = list( ACCESS_AUX_BASE, + ACCESS_BIT_DEN, ACCESS_CARGO, ACCESS_MAINT_TUNNELS, ACCESS_MECH_MINING, @@ -960,6 +988,7 @@ assignment = "Security Officer (Cargo)" subdepartment_color = COLOR_CARGO_BROWN department_access = list( + ACCESS_BIT_DEN, ACCESS_CARGO, ACCESS_MINING, ACCESS_SHIPPING, @@ -1028,6 +1057,7 @@ ACCESS_MINING_STATION, ) extra_access = list( + ACCESS_BIT_DEN, ACCESS_MAINT_TUNNELS, ) template_access = list( diff --git a/code/datums/id_trim/outfits.dm b/code/datums/id_trim/outfits.dm index 4bb9365ebc45..c8f84859d98c 100644 --- a/code/datums/id_trim/outfits.dm +++ b/code/datums/id_trim/outfits.dm @@ -52,3 +52,22 @@ assignment = "Bounty Hunter" department_color = COLOR_PRISONER_ORANGE subdepartment_color = COLOR_PRISONER_BLACK + +/// Trim for player controlled avatars in the Virtual Domain. +/datum/id_trim/bit_avatar + assignment = "Bit Avatar" + trim_state = "trim_bitavatar" + department_color = COLOR_BLACK + subdepartment_color = COLOR_GREEN + +/// Trim for cyber police in the Virtual Domain. +/datum/id_trim/cyber_police + assignment = "Cyber Police" + trim_state = "trim_deathcommando" + department_color = COLOR_BLACK + subdepartment_color = COLOR_GREEN + +/datum/id_trim/cyber_police/New() + . = ..() + + access |= SSid_access.get_region_access_list(list(REGION_ALL_GLOBAL)) diff --git a/code/datums/lazy_template.dm b/code/datums/lazy_template.dm index af6df50e96f8..ede97eb7b8a9 100644 --- a/code/datums/lazy_template.dm +++ b/code/datums/lazy_template.dm @@ -7,11 +7,12 @@ /// If this is true each load will increment an index keyed to the type and it will load [map_name]_[index] var/list/datum/turf_reservation/reservations = list() var/uses_multiple_allocations = FALSE + /// Key to identify this template - used in caching var/key + /// Directory of maps to prefix to the filename var/map_dir = "_maps/templates/lazy_templates" + /// The filename (without extension) of the map to load var/map_name - var/map_width - var/map_height /datum/lazy_template/New() reservations = list() @@ -46,25 +47,63 @@ if(!load_path || !fexists(load_path)) CRASH("lazy template [type] has an invalid load_path: '[load_path]', check directory and map name!") - var/datum/map_template/loading = new(path = load_path, cache = TRUE) - if(!loading.cached_map) + var/datum/parsed_map/parsed_template = load_map( + file(load_path), + measure_only = TRUE, + ) + if(isnull(parsed_template.parsed_bounds)) CRASH("Failed to cache lazy template for loading: '[key]'") - var/datum/turf_reservation/reservation = SSmapping.RequestBlockReservation(loading.width, loading.height) + var/width = parsed_template.parsed_bounds[MAP_MAXX] - parsed_template.parsed_bounds[MAP_MINX] + 1 + var/height = parsed_template.parsed_bounds[MAP_MAXY] - parsed_template.parsed_bounds[MAP_MINY] + 1 + var/datum/turf_reservation/reservation = SSmapping.request_turf_block_reservation( + width, + height, + parsed_template.parsed_bounds[MAP_MAXZ], + ) if(!reservation) CRASH("Failed to reserve a block for lazy template: '[key]'") - if(!loading.load(coords2turf(reservation.bottom_left_coords))) - CRASH("Failed to load lazy template: '[key]'") - reservations += reservation + // lists kept for overall loading + var/list/loaded_atom_movables = list() + var/list/loaded_turfs = list() + var/list/loaded_areas = list() + + var/list/obj/structure/cable/loaded_cables = list() + var/list/obj/machinery/atmospherics/loaded_atmospherics = list() + for(var/z_idx in parsed_template.parsed_bounds[MAP_MAXZ] to 1 step -1) + var/turf/bottom_left = reservation.bottom_left_turfs[z_idx] + var/turf/top_right = reservation.top_right_turfs[z_idx] + load_map( + file(load_path), + bottom_left.x, + bottom_left.y, + bottom_left.z, + z_upper = z_idx, + z_lower = z_idx, + ) + for(var/turf/turf as anything in block(bottom_left, top_right)) + loaded_turfs += turf + loaded_areas |= get_area(turf) + // atoms can actually be in the contents of two or more turfs based on its icon/bound size + // see https://www.byond.com/docs/ref/index.html#/atom/var/contents + for(var/thing in (turf.get_all_contents() - turf)) + if(istype(thing, /obj/structure/cable)) + loaded_cables += thing + else if(istype(thing, /obj/machinery/atmospherics)) + loaded_atmospherics += thing + loaded_atom_movables |= thing + SSatoms.InitializeAtoms(loaded_areas + loaded_atom_movables + loaded_turfs) + SSmachines.setup_template_powernets(loaded_cables) + SSair.setup_template_machinery(loaded_atmospherics) + SEND_SIGNAL(src, COMSIG_LAZY_TEMPLATE_LOADED, loaded_atom_movables, loaded_turfs, loaded_areas) + reservations += reservation return reservation /datum/lazy_template/nukie_base key = LAZY_TEMPLATE_KEY_NUKIEBASE map_name = "nukie_base" - map_width = 89 - map_height = 100 /datum/lazy_template/wizard_dem key = LAZY_TEMPLATE_KEY_WIZARDDEN diff --git a/code/datums/station_traits/positive_traits.dm b/code/datums/station_traits/positive_traits.dm index 0fe10d9bce0a..0a239d5e878a 100644 --- a/code/datums/station_traits/positive_traits.dm +++ b/code/datums/station_traits/positive_traits.dm @@ -283,6 +283,7 @@ /datum/job/assistant = /obj/item/organ/internal/heart/cybernetic, //real cardiac /datum/job/atmospheric_technician = /obj/item/organ/internal/cyberimp/mouth/breathing_tube, /datum/job/bartender = /obj/item/organ/internal/liver/cybernetic/tier3, + /datum/job/bitrunner = /obj/item/organ/internal/eyes/robotic/thermals, /datum/job/botanist = /obj/item/organ/internal/cyberimp/chest/nutriment, /datum/job/captain = /obj/item/organ/internal/heart/cybernetic/tier3, /datum/job/cargo_technician = /obj/item/organ/internal/stomach/cybernetic/tier2, diff --git a/code/datums/status_effects/debuffs/static_vision.dm b/code/datums/status_effects/debuffs/static_vision.dm new file mode 100644 index 000000000000..7132c189b9d4 --- /dev/null +++ b/code/datums/status_effects/debuffs/static_vision.dm @@ -0,0 +1,29 @@ +/datum/status_effect/static_vision + id = "static_vision" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + +/datum/status_effect/static_vision/on_creation(mob/living/new_owner, duration = 3 SECONDS) + src.duration = duration + return ..() + +/datum/status_effect/static_vision/on_apply() + RegisterSignal(owner, COMSIG_LIVING_DEATH, PROC_REF(remove_static_vision)) + + owner.overlay_fullscreen(id, /atom/movable/screen/fullscreen/static_vision) + owner.sound_environment_override = SOUND_ENVIRONMENT_UNDERWATER + + return TRUE + +/datum/status_effect/static_vision/on_remove() + UnregisterSignal(owner, COMSIG_LIVING_DEATH) + + owner.clear_fullscreen(id) + if(owner.sound_environment_override == SOUND_ENVIRONMENT_UNDERWATER) + owner.sound_environment_override = SOUND_ENVIRONMENT_NONE + +/// Handles clearing on death +/datum/status_effect/static_vision/proc/remove_static_vision(datum/source, admin_revive) + SIGNAL_HANDLER + + qdel(src) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index d0dd4fb96f23..5ab88b19956c 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -45,34 +45,42 @@ dead_players = trim_list(GLOB.dead_player_list) list_observers = trim_list(GLOB.current_observers_list) -/datum/dynamic_ruleset/midround/proc/trim_list(list/L = list()) - var/list/trimmed_list = L.Copy() - for(var/mob/M in trimmed_list) - if (!istype(M, required_type)) - trimmed_list.Remove(M) +/datum/dynamic_ruleset/midround/proc/trim_list(list/to_trim = list()) + var/list/trimmed_list = to_trim.Copy() + for(var/mob/creature in trimmed_list) + if (!istype(creature, required_type)) + trimmed_list.Remove(creature) continue - if (!M.client) // Are they connected? - trimmed_list.Remove(M) + if (isnull(creature.client)) // Are they connected? + trimmed_list.Remove(creature) continue - if(M.client.get_remaining_days(minimum_required_age) > 0) - trimmed_list.Remove(M) + if (isnull(creature.mind)) + trimmed_list.Remove(creature) continue - if (!((antag_preference || antag_flag) in M.client.prefs.be_special)) - trimmed_list.Remove(M) + if(creature.client.get_remaining_days(minimum_required_age) > 0) + trimmed_list.Remove(creature) continue - if (is_banned_from(M.ckey, list(antag_flag_override || antag_flag, ROLE_SYNDICATE))) - trimmed_list.Remove(M) + if (!((antag_preference || antag_flag) in creature.client.prefs.be_special)) + trimmed_list.Remove(creature) + continue + if (is_banned_from(creature.ckey, list(antag_flag_override || antag_flag, ROLE_SYNDICATE))) + trimmed_list.Remove(creature) + continue + if (restrict_ghost_roles && (creature.mind.assigned_role.title in GLOB.exp_specialmap[EXP_TYPE_SPECIAL])) // Are they playing a ghost role? + trimmed_list.Remove(creature) + continue + if (creature.mind.assigned_role.title in restricted_roles) // Does their job allow it? + trimmed_list.Remove(creature) + continue + if (length(exclusive_roles) && !(creature.mind.assigned_role.title in exclusive_roles)) // Is the rule exclusive to their job? + trimmed_list.Remove(creature) + continue + if(HAS_TRAIT(creature, TRAIT_MIND_TEMPORARILY_GONE)) // are they out of body? + trimmed_list.Remove(creature) + continue + if(HAS_TRAIT(creature, TRAIT_TEMPORARY_BODY)) // are they an avatar? + trimmed_list.Remove(creature) continue - if (M.mind) - if (restrict_ghost_roles && (M.mind.assigned_role.title in GLOB.exp_specialmap[EXP_TYPE_SPECIAL])) // Are they playing a ghost role? - trimmed_list.Remove(M) - continue - if (M.mind.assigned_role.title in restricted_roles) // Does their job allow it? - trimmed_list.Remove(M) - continue - if ((exclusive_roles.len > 0) && !(M.mind.assigned_role.title in exclusive_roles)) // Is the rule exclusive to their job? - trimmed_list.Remove(M) - continue return trimmed_list // You can then for example prompt dead players in execute() to join as strike teams or whatever diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index edcbef340d21..2d6abc921ce7 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -164,6 +164,7 @@ /obj/machinery/Initialize(mapload) . = ..() GLOB.machines += src + SSmachines.register_machine(src) if(ispath(circuit, /obj/item/circuitboard)) circuit = new circuit(src) @@ -195,6 +196,7 @@ /obj/machinery/Destroy() GLOB.machines.Remove(src) + SSmachines.unregister_machine(src) end_processing() dump_inventory_contents() diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index b586cb2b28bb..397f85a2f95d 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -545,23 +545,22 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/camera/xray, 0) see = get_hear(view_range, pos) if(check_lower || check_higher) // Haha datum var access KILL ME - var/datum/controller/subsystem/mapping/local_mapping = SSmapping for(var/turf/seen in see) if(check_lower) var/turf/visible = seen while(visible && istransparentturf(visible)) - var/turf/below = local_mapping.get_turf_below(visible) + var/turf/below = GET_TURF_BELOW(visible) for(var/turf/adjacent in range(1, below)) see += adjacent see += adjacent.contents visible = below if(check_higher) - var/turf/above = local_mapping.get_turf_above(seen) + var/turf/above = GET_TURF_ABOVE(seen) while(above && istransparentturf(above)) for(var/turf/adjacent in range(1, above)) see += adjacent see += adjacent.contents - above = local_mapping.get_turf_above(above) + above = GET_TURF_ABOVE(above) return see /obj/machinery/camera/proc/Togglelight(on=0) diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm index 5084f9f75c33..6da917e8aab9 100644 --- a/code/game/objects/effects/decals/cleanable/aliens.dm +++ b/code/game/objects/effects/decals/cleanable/aliens.dm @@ -40,7 +40,9 @@ return if(mapload) for (var/i in 1 to range) - new /obj/effect/decal/cleanable/xenoblood/xsplatter(loc) + var/turf/my_turf = get_turf(src) + if(!isgroundlessturf(my_turf) || GET_TURF_BELOW(my_turf)) + new /obj/effect/decal/cleanable/xenoblood/xsplatter(my_turf) if (!step_to(src, get_step(src, direction), 0)) break return diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 3e7f04e7b9b9..15ad4dbbb5b1 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -158,8 +158,10 @@ if(!step_to(src, get_step(src, direction), 0)) return if(mapload) - for (var/i = 1, i < range, i++) - new /obj/effect/decal/cleanable/blood/splatter(loc, streak_diseases) + for (var/i in 1 to range) + var/turf/my_turf = get_turf(src) + if(!isgroundlessturf(my_turf) || GET_TURF_BELOW(my_turf)) + new /obj/effect/decal/cleanable/blood/splatter(my_turf) if (!step_to(src, get_step(src, direction), 0)) break return diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm index aaf15a9dc5ce..d3af1e2846b0 100644 --- a/code/game/objects/effects/decals/cleanable/robots.dm +++ b/code/game/objects/effects/decals/cleanable/robots.dm @@ -25,8 +25,9 @@ return if(mapload) for (var/i in 1 to range) - if (prob(40)) - new /obj/effect/decal/cleanable/oil/streak(src.loc) + var/turf/my_turf = get_turf(src) + if(prob(40) && (!isgroundlessturf(my_turf) || GET_TURF_BELOW(my_turf))) + new /obj/effect/decal/cleanable/oil/streak(my_turf) if (!step_to(src, get_step(src, direction), 0)) break return diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm index 1f2193e9506c..fa6a178b5944 100644 --- a/code/game/objects/effects/decals/decal.dm +++ b/code/game/objects/effects/decals/decal.dm @@ -18,8 +18,9 @@ if(B && B.loc == loc) qdel(src) -/obj/effect/decal/proc/NeverShouldHaveComeHere(turf/T) - return isclosedturf(T) || isgroundlessturf(T) +///Checks if we are allowed to be in `here_turf`, and returns that result. Subtypes should override this when necessary. +/obj/effect/decal/proc/NeverShouldHaveComeHere(turf/here_turf) + return isclosedturf(here_turf) || (isgroundlessturf(here_turf) && !GET_TURF_BELOW(here_turf)) /obj/effect/decal/ex_act(severity, target) qdel(src) diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 00535f42686c..7915ce1cfb70 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -74,6 +74,10 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark) name = "Cargo Technician" icon_state = "Cargo Technician" +/obj/effect/landmark/start/bitrunner + name = "Bitrunner" + icon_state = "x3" + /obj/effect/landmark/start/bartender name = "Bartender" icon_state = "Bartender" diff --git a/code/game/objects/effects/phased_mob.dm b/code/game/objects/effects/phased_mob.dm index 7a0317c4c77a..273a4c772a57 100644 --- a/code/game/objects/effects/phased_mob.dm +++ b/code/game/objects/effects/phased_mob.dm @@ -83,7 +83,7 @@ return var/area/destination_area = newloc.loc movedelay = world.time + movespeed - if(newloc.flags_1 & NOJAUNT) + if(newloc.turf_flags & NOJAUNT) to_chat(user, span_warning("Some strange aura is blocking the way.")) return if(destination_area.area_flags & NOTELEPORT || SSmapping.level_trait(newloc.z, ZTRAIT_NOPHASE)) diff --git a/code/game/objects/effects/spawners/random/random.dm b/code/game/objects/effects/spawners/random/random.dm index 423821cf8731..62f8bb7cc42f 100644 --- a/code/game/objects/effects/spawners/random/random.dm +++ b/code/game/objects/effects/spawners/random/random.dm @@ -93,8 +93,9 @@ if(radius >= 0) for(var/turf/turf_in_view in view(radius, get_turf(src))) - if(!turf_in_view.density) - scatter_locations += turf_in_view + if(isclosedturf(turf_in_view) || (isgroundlessturf(turf_in_view) && !GET_TURF_BELOW(turf_in_view))) + continue + scatter_locations += turf_in_view return scatter_locations diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index d152629568c3..a05659e0e18d 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -535,6 +535,10 @@ name = "Golem Ship Equipment Vendor Console" build_path = /obj/machinery/computer/order_console/mining/golem +/obj/item/circuitboard/computer/order_console/bitrunning + name = "Bitrunning Vendor Console" + build_path = /obj/machinery/computer/order_console/bitrunning + /obj/item/circuitboard/computer/ferry name = "Transport Ferry" greyscale_colors = CIRCUIT_COLOR_SUPPLY @@ -596,3 +600,8 @@ name = "Medical Order" greyscale_colors = CIRCUIT_COLOR_SUPPLY build_path = /obj/machinery/computer/department_orders/medical + +/obj/item/circuitboard/computer/quantum_console + name = "Quantum Server Console" + greyscale_colors = CIRCUIT_COLOR_SUPPLY + build_path = /obj/machinery/computer/quantum_console diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm index 5277396e6bb8..32c33148e534 100644 --- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm @@ -1324,18 +1324,6 @@ name = "\improper Departmental Techfab - Cargo" greyscale_colors = CIRCUIT_COLOR_SUPPLY build_path = /obj/machinery/rnd/production/techfab/department/cargo - -/obj/item/circuitboard/machine/bepis - name = "BEPIS Chamber" - greyscale_colors = CIRCUIT_COLOR_SUPPLY - build_path = /obj/machinery/rnd/bepis - req_components = list( - /obj/item/stack/cable_coil = 5, - /datum/stock_part/capacitor = 1, - /datum/stock_part/manipulator = 1, - /datum/stock_part/micro_laser = 1, - /datum/stock_part/scanning_module = 1) - //Misc /obj/item/circuitboard/machine/sheetifier name = "Sheet-meister 2000" @@ -1494,3 +1482,22 @@ greyscale_colors = CIRCUIT_COLOR_SCIENCE build_path = /obj/machinery/navbeacon req_components = list() + +/obj/item/circuitboard/machine/quantum_server + name = "Quantum Server" + greyscale_colors = CIRCUIT_COLOR_SUPPLY + build_path = /obj/machinery/quantum_server + req_components = list( + /datum/stock_part/manipulator = 2, + /datum/stock_part/scanning_module = 1, + /datum/stock_part/capacitor = 1, + ) + +/obj/item/circuitboard/machine/netpod + name = "Netpod" + greyscale_colors = CIRCUIT_COLOR_SUPPLY + build_path = /obj/machinery/netpod + req_components = list( + /datum/stock_part/manipulator = 1, + /datum/stock_part/matter_bin = 2, + ) diff --git a/code/game/objects/structures/fake_stairs.dm b/code/game/objects/structures/fake_stairs.dm new file mode 100644 index 000000000000..a5e03ed6b598 --- /dev/null +++ b/code/game/objects/structures/fake_stairs.dm @@ -0,0 +1,19 @@ +/// Stairs but they are FAKE and dont have any of the Z-changing behavior. DO NOT MAP THESE NEXT TO REAL STAIRS +/obj/structure/fake_stairs + name = "stairs" + icon = 'icons/obj/stairs.dmi' + icon_state = "stairs" + anchored = TRUE + move_resist = INFINITY + + plane = FLOOR_PLANE //one with the floor + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fake_stairs, 0) + +/obj/structure/fake_stairs/wood + icon_state = "stairs_wood" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fake_stairs/wood, 0) + +/obj/structure/fake_stairs/stone + icon_state = "stairs_stone" diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm index 391280745b26..9b7b5590018e 100644 --- a/code/game/objects/structures/ladders.dm +++ b/code/game/objects/structures/ladders.dm @@ -50,14 +50,14 @@ var/obj/structure/ladder/L if (!down) - L = locate() in SSmapping.get_turf_below(T) + L = locate() in GET_TURF_BELOW(T) if (L) if(crafted == L.crafted) down = L L.up = src // Don't waste effort looping the other way L.update_appearance() if (!up) - L = locate() in SSmapping.get_turf_above(T) + L = locate() in GET_TURF_ABOVE(T) if (L) if(crafted == L.crafted) up = L diff --git a/code/game/sound.dm b/code/game/sound.dm index 1a0ddd545209..7e421372cc90 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -110,8 +110,8 @@ GLOBAL_LIST_INIT(proxy_sound_channels, list( . = list()//output everything that successfully heard the sound - var/turf/above_turf = SSmapping.get_turf_above(turf_source) - var/turf/below_turf = SSmapping.get_turf_below(turf_source) + var/turf/above_turf = GET_TURF_ABOVE(turf_source) + var/turf/below_turf = GET_TURF_BELOW(turf_source) if(ignore_walls) @@ -239,17 +239,23 @@ GLOBAL_LIST_INIT(proxy_sound_channels, list( S.status = SOUND_UPDATE SEND_SOUND(src, S) -/client/proc/playtitlemusic(vol = 85) +/client/proc/playtitlemusic(vol = 0.85) set waitfor = FALSE UNTIL(SSticker.login_music) //wait for SSticker init to set the login music - + UNTIL(fully_created) if("[CHANNEL_LOBBYMUSIC]" in prefs.channel_volume) - vol *= prefs.channel_volume["[CHANNEL_LOBBYMUSIC]"] * 0.01 + if(prefs.channel_volume["[CHANNEL_LOBBYMUSIC]"] != 0) + vol *= prefs.channel_volume["[CHANNEL_LOBBYMUSIC]"] * 0.01 if((prefs && (!prefs.read_preference(/datum/preference/toggle/sound_lobby))) || CONFIG_GET(flag/disallow_title_music)) return - if(!SSmedia_tracks.lobby_tracks.len || !media) + if(!media) ///media is set on creation thats weird + media = new /datum/media_manager(src) + media.open() + media.update_music() + + if(!length(SSmedia_tracks.lobby_tracks)) return if(SSmedia_tracks.first_lobby_play) @@ -257,7 +263,7 @@ GLOBAL_LIST_INIT(proxy_sound_channels, list( SSmedia_tracks.first_lobby_play = FALSE var/datum/media_track/T = SSmedia_tracks.current_lobby_track - media.push_music(T.url, world.time, vol * 0.01) + media.push_music(T.url, world.time, vol) to_chat(src,"Lobby music: [T.title] by [T.artist].") /proc/get_rand_frequency() diff --git a/code/game/turfs/change_turf.dm b/code/game/turfs/change_turf.dm index 24d23f1ecf47..63c0ac86d6be 100644 --- a/code/game/turfs/change_turf.dm +++ b/code/game/turfs/change_turf.dm @@ -101,7 +101,9 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( //We do this here so anything that doesn't want to persist can clear itself var/list/old_comp_lookup = comp_lookup?.Copy() var/list/old_signal_procs = signal_procs?.Copy() + var/carryover_turf_flags = (RESERVATION_TURF | UNUSED_RESERVATION_TURF) & turf_flags var/turf/new_turf = new path(src) + new_turf.turf_flags |= carryover_turf_flags // WARNING WARNING // Turfs DO NOT lose their signals when they get replaced, REMEMBER THIS @@ -222,6 +224,9 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list( if(stashed_group.should_display || SSair.display_all_groups) stashed_group.display_turf(new_turf) else + for(var/turf/open/adjacent_turf as anything in atmos_adjacent_turfs) + adjacent_turf.atmos_adjacent_turfs -= src + atmos_adjacent_turfs = null if(pollution) qdel(pollution) if(excited || excited_group) diff --git a/code/game/turfs/open/asteroid.dm b/code/game/turfs/open/asteroid.dm index 40a61e905dfe..d6c84611f3f9 100644 --- a/code/game/turfs/open/asteroid.dm +++ b/code/game/turfs/open/asteroid.dm @@ -203,7 +203,8 @@ GLOBAL_LIST_EMPTY(dug_up_basalt) turf_flags = CAN_BE_DIRTY_1 | IS_SOLID | NO_RUST | NO_RUINS /turf/open/misc/asteroid/snow/icemoon/do_not_scrape - turf_flags = CAN_BE_DIRTY_1 | IS_SOLID | NO_RUST | NO_CLEARING + flags_1 = CAN_BE_DIRTY_1 + turf_flags = IS_SOLID | NO_RUST | NO_CLEARING /turf/open/lava/plasma/ice_moon initial_gas_mix = ICEMOON_DEFAULT_ATMOS diff --git a/code/game/turfs/open/chasm.dm b/code/game/turfs/open/chasm.dm index b78afdf4eb85..f418962f2cd7 100644 --- a/code/game/turfs/open/chasm.dm +++ b/code/game/turfs/open/chasm.dm @@ -14,7 +14,7 @@ /turf/open/chasm/Initialize(mapload) . = ..() - AddComponent(/datum/component/chasm, SSmapping.get_turf_below(src)) + apply_components() /// Lets people walk into chasms. /turf/open/chasm/CanAllowThrough(atom/movable/mover, border_dir) @@ -75,6 +75,10 @@ else if(istype(C, /obj/item/stack/tile/iron)) build_with_floor_tiles(C, user) +/// Handles adding the chasm component to the turf (So stuff falls into it!) +/turf/open/chasm/proc/apply_components() + AddComponent(/datum/component/chasm, GET_TURF_BELOW(src)) + // Chasms for Lavaland, with planetary atmos and lava glow /turf/open/chasm/lavaland initial_gas_mix = LAVALAND_DEFAULT_ATMOS diff --git a/code/game/turfs/open/cliff.dm b/code/game/turfs/open/cliff.dm new file mode 100644 index 000000000000..aaae468d769c --- /dev/null +++ b/code/game/turfs/open/cliff.dm @@ -0,0 +1,133 @@ +/// A cliff tile from where people can fall. Should generally fall downwards, but you can change it if you want +/turf/open/cliff + icon_state = "cliff" + icon = 'icons/turf/cliff/cliff.dmi' + density = TRUE + /// From our perspective, where does someone need to stand to be able to fall from us? Cardinal only, we do the diagonals automatically + var/can_fall_from_direction = NORTH + /// If we fall, in which direction? + var/fall_direction = SOUTH + /// Directions to which we can move towards while grinding down + var/valid_move_dirs = SOUTH | WEST | EAST | SOUTHWEST | SOUTHEAST + /// Speed at which we fall / traverse downwards + var/fall_speed = 0.2 SECONDS + /// Movables that can move freely on cliffs + var/list/protected_types = list(/obj/projectile, /obj/effect, /mob/dead) + /// Do we draw a tile as underlay for half tiles? + var/turf/underlay_tile + /// The pixel x of the underlay image + var/undertile_pixel_x = 0 + /// The pixel y of the underlay image + var/undertile_pixel_y = 0 + /// if given, sets the underlays plane to this + var/underlay_plane + +/turf/open/cliff/Initialize(mapload) + . = ..() + + RegisterSignal(src, COMSIG_TURF_MOVABLE_THROW_LANDED, PROC_REF(on_turf_movable_throw_landed)) + + if(isnull(underlay_tile)) + return + var/image/underlay = image(icon_state = initial(underlay_tile.icon_state), icon = initial(underlay_tile.icon)) + underlay.pixel_x = undertile_pixel_x //if there's a pixel offset, correct it because we should be lined up with the grid + underlay.pixel_y = undertile_pixel_y + SET_PLANE(underlay, underlay_plane || plane, src) + underlays += underlay + +/turf/open/cliff/CanPass(atom/movable/mover, border_dir) + ..() + + if(border_dir & can_fall_from_direction || !can_fall(mover)) + return TRUE + + return FALSE + +/turf/open/cliff/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs) + . = ..() + + try_fall(arrived) + +/turf/open/cliff/zImpact(atom/movable/falling, levels, turf/prev_turf, flags) + . = ..(flags = flags | FALL_INTERCEPTED) + +/// Something landed on us +/turf/open/cliff/proc/on_turf_movable_throw_landed(turf/turf, atom/movable/arrived) + SIGNAL_HANDLER + + try_fall(arrived) + +/// Try and make them fall +/turf/open/cliff/proc/try_fall(atom/movable/arrived) + if(can_fall(arrived)) + fall(arrived) + +/// Check if they can fall from us +/turf/open/cliff/proc/can_fall(atom/movable/arrived) + // Check if we're a protected type that doesnt make sense to fall (like effects and bullets) + if(is_type_in_list(arrived, protected_types)) + return FALSE + + if(arrived.throwing || HAS_TRAIT(arrived, TRAIT_CLIFF_WALKER) || HAS_TRAIT(arrived, TRAIT_MOVE_FLYING)) + return FALSE + + // We're already falling + if(arrived.anchored || (arrived in SScliff_falling.cliff_grinders)) + return FALSE + + // We can walk infront of the bottom cliff turf, so check that here + if(!iscliffturf(get_step(src, fall_direction)) && !(get_dir(arrived, src) & fall_direction)) + return FALSE + + return TRUE + +/// Make them fall! +/turf/open/cliff/proc/fall(atom/movable/arrived) + SScliff_falling.start_falling(arrived, src) //the movement is handled by the subsystem, but we get asked about behaviour later + on_fall(arrived) + +/// We just fell onto this chasm tile +/turf/open/cliff/proc/on_fall(atom/movable/faller) + if(!isliving(faller)) + return + var/mob/living/living = faller + living.Knockdown(fall_speed) //OUCH- OW- CRAP- SHIT- OW- + living.spin(fall_speed, fall_speed) + +/// Check if the movement direction we're moving on (while already falling on us) is valid +/turf/open/cliff/proc/can_move(atom/movable/mover, turf/target) + //check if the relative direction we're moving is allowed, if not we block the movement + if(!(valid_move_dirs & get_dir(src, target))) + return FALSE + + //we're trying to leave the cliff from somewhere that's not the bottom? no can do pall + if(!iscliffturf(target) && get_dir(src, target) != fall_direction) + return FALSE + + return TRUE + +/// Snowy cliff! +/turf/open/cliff/snowrock + icon_state = "icerock_wall-0" + icon = 'icons/turf/cliff/icerock_cliff.dmi' + base_icon_state = "icerock_wall" + + smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER + smoothing_groups = SMOOTH_GROUP_TURF_OPEN_CLIFF + canSmoothWith = SMOOTH_GROUP_TURF_OPEN_CLIFF + layer = EDGED_TURF_LAYER + plane = WALL_PLANE + + // This is static + // Done like this to avoid needing to make it dynamic and save cpu time + // 4 to the left, 4 down + transform = MAP_SWITCH(TRANSLATE_MATRIX(-4, -4), matrix()) + + undertile_pixel_x = 4 + undertile_pixel_y = 4 + + initial_gas_mix = ICEMOON_DEFAULT_ATMOS + planetary_atmos = TRUE + + underlay_tile = /turf/open/misc/asteroid/snow/icemoon + underlay_plane = FLOOR_PLANE diff --git a/code/game/turfs/open/lava.dm b/code/game/turfs/open/lava.dm index 1c87ad7d5bb8..26a425ed0e56 100644 --- a/code/game/turfs/open/lava.dm +++ b/code/game/turfs/open/lava.dm @@ -70,10 +70,10 @@ var/border_turf = FALSE var/list/turfs_to_check = RANGE_TURFS(1, src) if(GET_LOWEST_STACK_OFFSET(z)) - var/turf/above = SSmapping.get_turf_above(src) + var/turf/above = GET_TURF_ABOVE(src) if(above) turfs_to_check += RANGE_TURFS(1, above) - var/turf/below = SSmapping.get_turf_below(src) + var/turf/below = GET_TURF_BELOW(src) if(below) turfs_to_check += RANGE_TURFS(1, below) @@ -95,10 +95,10 @@ // We have gone from a lava turf to a non lava turf, time to let them know var/list/turfs_to_check = RANGE_TURFS(1, result) if(GET_LOWEST_STACK_OFFSET(z)) - var/turf/above = SSmapping.get_turf_above(result) + var/turf/above = GET_TURF_ABOVE(result) if(above) turfs_to_check += RANGE_TURFS(1, above) - var/turf/below = SSmapping.get_turf_below(result) + var/turf/below = GET_TURF_BELOW(result) if(below) turfs_to_check += RANGE_TURFS(1, below) for(var/turf/open/lava/inform in turfs_to_check) diff --git a/code/game/turfs/open/openspace.dm b/code/game/turfs/open/openspace.dm index 23d561e4af60..7511f52ecd33 100644 --- a/code/game/turfs/open/openspace.dm +++ b/code/game/turfs/open/openspace.dm @@ -179,7 +179,7 @@ /turf/open/openspace/icemoon/Initialize(mapload) . = ..() - var/turf/T = below() + var/turf/T = GET_TURF_BELOW(src) //I wonder if I should error here if(!T) return diff --git a/code/game/turfs/open/space/space.dm b/code/game/turfs/open/space/space.dm index 3c8e3060c1fd..f485743a93e5 100644 --- a/code/game/turfs/open/space/space.dm +++ b/code/game/turfs/open/space/space.dm @@ -77,10 +77,10 @@ GLOBAL_VAR_INIT(starlight_color, pick(COLOR_TEAL, COLOR_GREEN, COLOR_CYAN, COLOR SSair.add_to_active(src, TRUE) if(SSmapping.max_plane_offset) - var/turf/T = SSmapping.get_turf_above(src) + var/turf/T = GET_TURF_ABOVE(src) if(T) T.multiz_turf_new(src, DOWN) - T = SSmapping.get_turf_below(src) + T = GET_TURF_BELOW(src) if(T) T.multiz_turf_new(src, UP) @@ -302,10 +302,9 @@ GLOBAL_VAR_INIT(starlight_color, pick(COLOR_TEAL, COLOR_GREEN, COLOR_CYAN, COLOR return FALSE /turf/open/space/openspace/enable_starlight() - var/turf/below = SSmapping.get_turf_below(src) - if(istype(below, /turf/open/space/openspace)) - // Override = TRUE beacuse we could have our starlight updated many times without a failure, which'd trigger this - RegisterSignal(below, COMSIG_TURF_CHANGE, PROC_REF(on_below_change), override = TRUE) + var/turf/below = GET_TURF_BELOW(src) + // Override = TRUE beacuse we could have our starlight updated many times without a failure, which'd trigger this + RegisterSignal(below, COMSIG_TURF_CHANGE, PROC_REF(on_below_change), override = TRUE) if(!isspaceturf(below)) return set_light(2) @@ -315,7 +314,7 @@ GLOBAL_VAR_INIT(starlight_color, pick(COLOR_TEAL, COLOR_GREEN, COLOR_CYAN, COLOR if(.) return // If we're here, the starlight is not to be - var/turf/below = SSmapping.get_turf_below(src) + var/turf/below = GET_TURF_BELOW(src) UnregisterSignal(below, COMSIG_TURF_CHANGE) /turf/open/space/openspace/proc/on_below_change(turf/source, path, list/new_baseturfs, flags, list/post_change_callbacks) diff --git a/code/game/turfs/open/space/transit.dm b/code/game/turfs/open/space/transit.dm index b4c713de7519..6c58d4872947 100644 --- a/code/game/turfs/open/space/transit.dm +++ b/code/game/turfs/open/space/transit.dm @@ -4,7 +4,7 @@ icon_state = "black" dir = SOUTH baseturfs = /turf/open/space/transit - flags_1 = NOJAUNT //This line goes out to every wizard that ever managed to escape the den. I'm sorry. + turf_flags = NOJAUNT //This line goes out to every wizard that ever managed to escape the den. I'm sorry. explosive_resistance = INFINITY /turf/open/space/transit/Initialize(mapload) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 2bdabf6f9be4..d64e51e5113d 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -125,10 +125,10 @@ GLOBAL_LIST_EMPTY(station_turfs) if(!SSmapping.plane_offset_blacklist["[plane]"]) plane = plane - (PLANE_RANGE * SSmapping.z_level_to_plane_offset[z]) - var/turf/T = SSmapping.get_turf_above(src) + var/turf/T = GET_TURF_ABOVE(src) if(T) T.multiz_turf_new(src, DOWN) - T = SSmapping.get_turf_below(src) + T = GET_TURF_BELOW(src) if(T) T.multiz_turf_new(src, UP) @@ -182,10 +182,10 @@ GLOBAL_LIST_EMPTY(station_turfs) stack_trace("Incorrect turf deletion") changing_turf = FALSE if(GET_LOWEST_STACK_OFFSET(z)) - var/turf/T = SSmapping.get_turf_above(src) + var/turf/T = GET_TURF_ABOVE(src) if(T) T.multiz_turf_del(src, DOWN) - T = SSmapping.get_turf_below(src) + T = GET_TURF_BELOW(src) if(T) T.multiz_turf_del(src, UP) if(force) @@ -341,8 +341,7 @@ GLOBAL_LIST_EMPTY(station_turfs) return TRUE ///Called each time the target falls down a z level possibly making their trajectory come to a halt. see __DEFINES/movement.dm. -/turf/proc/zImpact(atom/movable/falling, levels = 1, turf/prev_turf) - var/flags = NONE +/turf/proc/zImpact(atom/movable/falling, levels = 1, turf/prev_turf, flags = NONE) var/list/falling_movables = falling.get_z_move_affected() var/list/falling_mov_names for(var/atom/movable/falling_mov as anything in falling_movables) diff --git a/code/game/world.dm b/code/game/world.dm index 015f9391fd26..8f3299d35029 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -374,31 +374,35 @@ GLOBAL_VAR(restart_counter) else hub_password = "SORRYNOPASSWORD" -// If this is called as a part of maploading you cannot call it on the newly loaded map zs, because those get handled later on in the pipeline -/world/proc/increaseMaxX(new_maxx, max_zs_to_load = maxz) +/** + * Handles incresing the world's maxx var and intializing the new turfs and assigning them to the global area. + * If map_load_z_cutoff is passed in, it will only load turfs up to that z level, inclusive. + * This is because maploading will handle the turfs it loads itself. + */ +/world/proc/increase_max_x(new_maxx, map_load_z_cutoff = maxz) if(new_maxx <= maxx) return var/old_max = world.maxx maxx = new_maxx - if(!max_zs_to_load) + if(!map_load_z_cutoff) return var/area/global_area = GLOB.areas_by_type[world.area] // We're guaranteed to be touching the global area, so we'll just do this var/list/to_add = block( locate(old_max + 1, 1, 1), - locate(maxx, maxy, max_zs_to_load)) + locate(maxx, maxy, map_load_z_cutoff)) global_area.contained_turfs += to_add -/world/proc/increaseMaxY(new_maxy, max_zs_to_load = maxz) +/world/proc/increase_max_y(new_maxy, map_load_z_cutoff = maxz) if(new_maxy <= maxy) return var/old_maxy = maxy maxy = new_maxy - if(!max_zs_to_load) + if(!map_load_z_cutoff) return var/area/global_area = GLOB.areas_by_type[world.area] // We're guarenteed to be touching the global area, so we'll just do this var/list/to_add = block( locate(1, old_maxy + 1, 1), - locate(maxx, maxy, max_zs_to_load)) + locate(maxx, maxy, map_load_z_cutoff)) global_area.contained_turfs += to_add /world/proc/incrementMaxZ() diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 86893a6fe549..86ca881ef3bc 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -1034,7 +1034,7 @@ GLOBAL_PROTECT(admin_verbs_poll) if(!isobserver(usr)) admin_ghost() - usr.forceMove(coords2turf(reservation.bottom_left_coords)) + usr.forceMove(reservation.bottom_left_turfs[1]) message_admins("[key_name_admin(usr)] has loaded lazy template '[choice]'") to_chat(usr, span_boldnicegreen("Template loaded, you have been moved to the bottom left of the reservation.")) diff --git a/code/modules/art/paintings.dm b/code/modules/art/paintings.dm index e2309d86f902..69dfd539b130 100644 --- a/code/modules/art/paintings.dm +++ b/code/modules/art/paintings.dm @@ -50,6 +50,8 @@ /// Is it clean canvas or was there something painted on it at some point, used to decide when to show wip splotch overlay var/used = FALSE var/finalized = FALSE //Blocks edits + /// Whether a grid should be shown in the UI if the canvas is editable and the viewer is holding a painting tool. + var/show_grid = TRUE var/icon_generated = FALSE var/icon/generated_icon ///boolean that blocks persistence from saving it. enabled from printing copies, because we do not want to save copies. @@ -128,12 +130,13 @@ .["finalized"] = finalized .["editable"] = !finalized //Ideally you should be able to draw moustaches on existing paintings in the gallery but that's not implemented yet .["show_plaque"] = istype(loc,/obj/structure/sign/painting) - var/obj/item/painting_implement = user.get_active_held_item() - .["paint_tool_color"] = get_paint_tool_color(painting_implement) - // Clearing additional data so that it doesn't linger around if the painting tool is dropped. + .["show_grid"] = show_grid .["paint_tool_palette"] = null + var/obj/item/painting_implement = user.get_active_held_item() if(!painting_implement) + .["paint_tool_color"] = null return + .["paint_tool_color"] = get_paint_tool_color(painting_implement) SEND_SIGNAL(painting_implement, COMSIG_PAINTING_TOOL_GET_ADDITIONAL_DATA, .) /obj/item/canvas/examine(mob/user) @@ -170,6 +173,29 @@ if("select_color") var/obj/item/painting_implement = user.get_active_held_item() painting_implement?.set_painting_tool_color(params["selected_color"]) + . = TRUE + if("select_color_from_coords") + var/obj/item/painting_implement = user.get_active_held_item() + if(!painting_implement) + return FALSE + var/x = text2num(params["px"]) + var/y = text2num(params["py"]) + painting_implement.set_painting_tool_color(grid[x][y]) + . = TRUE + if("change_palette") + var/obj/item/painting_implement = user.get_active_held_item() + if(!painting_implement) + return FALSE + //I'd have this done inside the signal, but that'd have to be asynced, + //while we want the UI to be updated after the color is chosen, not before. + var/chosen_color = input(user, "Pick new color", painting_implement, params["old_color"]) as color|null + if(!chosen_color || IS_DEAD_OR_INCAP(user) || !user.is_holding(painting_implement)) + return FALSE + SEND_SIGNAL(painting_implement, COMSIG_PAINTING_TOOL_PALETTE_COLOR_CHANGED, chosen_color, params["color_index"]) + . = TRUE + if("toggle_grid") + . = TRUE + show_grid = !show_grid if("finalize") . = TRUE finalize(user) diff --git a/code/modules/atmospherics/environmental/LINDA_system.dm b/code/modules/atmospherics/environmental/LINDA_system.dm index b4c84fc11d27..f913f6d34ec7 100644 --- a/code/modules/atmospherics/environmental/LINDA_system.dm +++ b/code/modules/atmospherics/environmental/LINDA_system.dm @@ -75,10 +75,10 @@ // Multiz is shitcode welcome home var/turf/current_turf = (direction & (UP|DOWN)) ? \ (direction & UP) ? \ - (z_traits["16"]) ? \ + (z_traits[Z_LEVEL_UP]) ? \ (get_step(locate(x, y, z + 1), NONE)) : \ (null) : \ - (z_traits["32"]) ? \ + (z_traits[Z_LEVEL_DOWN]) ? \ (get_step(locate(x, y, z - 1), NONE)) : \ (null) : \ (get_step(src, direction)) diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm index 092a70f07299..b8d9bc759323 100644 --- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -271,13 +271,15 @@ #endif for(var/turf/open/enemy_tile as anything in adjacent_turfs) - // This var is only rarely set, exists so turfs can request to share at the end of our sharing - // We need this so we can assume share is communative, which we need to do to avoid a hellish amount of garbage_collect()s if(!isopenturf(enemy_tile)) continue + // This var is only rarely set, exists so turfs can request to share at the end of our sharing + // We need this so we can assume share is communative, which we need to do to avoid a hellish amount of garbage_collect()s if(enemy_tile.run_later) LAZYADD(share_end, enemy_tile) + if(!enemy_tile.air) + continue if(fire_count <= enemy_tile.current_cycle) continue LINDA_CYCLE_ARCHIVE(enemy_tile) @@ -345,7 +347,7 @@ archive() // We share 100% of our mix in this step. Let's jive var/difference = our_air.share(enemy_mix, 1, 1) - if(our_excited_group) //safety check for template loading + if(our_excited_group) LAST_SHARE_CHECK if(!difference) continue @@ -368,6 +370,7 @@ significant_share_ticker = cached_ticker //Save our changes temperature_expose(our_air, our_air.temperature) + //////////////////////////SPACEWIND///////////////////////////// /turf/open/proc/consider_pressure_difference(turf/target_turf, difference) diff --git a/code/modules/atmospherics/machinery/pipes/multiz.dm b/code/modules/atmospherics/machinery/pipes/multiz.dm index a756166e1514..8416421a4ea2 100644 --- a/code/modules/atmospherics/machinery/pipes/multiz.dm +++ b/code/modules/atmospherics/machinery/pipes/multiz.dm @@ -49,12 +49,12 @@ ///Attempts to locate a multiz pipe that's above us, if it finds one it merges us into its pipenet /obj/machinery/atmospherics/pipe/multiz/pipeline_expansion() var/turf/local_turf = get_turf(src) - for(var/obj/machinery/atmospherics/pipe/multiz/above in SSmapping.get_turf_above(local_turf)) + for(var/obj/machinery/atmospherics/pipe/multiz/above in GET_TURF_ABOVE(local_turf)) if(!is_connectable(above, piping_layer)) continue nodes += above above.nodes += src //Two way travel :) - for(var/obj/machinery/atmospherics/pipe/multiz/below in SSmapping.get_turf_below(local_turf)) + for(var/obj/machinery/atmospherics/pipe/multiz/below in GET_TURF_BELOW(local_turf)) if(!is_connectable(below, piping_layer)) continue below.pipeline_expansion() //If we've got one below us, force it to add us on facebook diff --git a/code/modules/awaymissions/cordon.dm b/code/modules/awaymissions/cordon.dm index 0c6685b1aaeb..d86ff7f8ad64 100644 --- a/code/modules/awaymissions/cordon.dm +++ b/code/modules/awaymissions/cordon.dm @@ -36,6 +36,9 @@ /turf/cordon/ScrapeAway(amount, flags) return src // :devilcat: +/turf/cordon/TerraformTurf(path, list/new_baseturfs, flags) + return + /turf/cordon/bullet_act(obj/projectile/hitting_projectile, def_zone, piercing_hit) return BULLET_ACT_HIT diff --git a/code/modules/bitrunning/abilities.dm b/code/modules/bitrunning/abilities.dm new file mode 100644 index 000000000000..ea6a1aa0a7cf --- /dev/null +++ b/code/modules/bitrunning/abilities.dm @@ -0,0 +1,39 @@ +/datum/avatar_help_text + /// Text to display in the window + var/help_text + +/datum/avatar_help_text/New(help_text) + src.help_text = help_text + +/datum/avatar_help_text/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "AvatarHelp") + ui.open() + +/datum/avatar_help_text/ui_state(mob/user) + return GLOB.always_state + +/datum/avatar_help_text/ui_static_data(mob/user) + var/list/data = list() + + data["help_text"] = help_text + + return data + +/// Displays information about the current virtual domain. +/datum/action/avatar_domain_info + name = "Open Virtual Domain Information" + button_icon_state = "round_end" + show_to_observers = FALSE + +/datum/action/avatar_domain_info/New(Target) + . = ..() + name = "Open Domain Information" + +/datum/action/avatar_domain_info/Trigger(trigger_flags) + . = ..() + if(!.) + return + + target.ui_interact(owner) diff --git a/code/modules/bitrunning/alerts.dm b/code/modules/bitrunning/alerts.dm new file mode 100644 index 000000000000..f8c8aa30b943 --- /dev/null +++ b/code/modules/bitrunning/alerts.dm @@ -0,0 +1,40 @@ +/atom/movable/screen/alert/bitrunning + name = "Generic Bitrunning Alert" + icon_state = "template" + timeout = 10 SECONDS + +/atom/movable/screen/alert/bitrunning/netpod_crowbar + name = "Forced Entry" + desc = "Someone is prying open the netpod door. Find an exit." + +/atom/movable/screen/alert/bitrunning/netpod_damaged + name = "Integrity Compromised" + desc = "The netpod is damaged. Find an exit." + +/atom/movable/screen/alert/bitrunning/qserver_shutting_down + name = "Domain Rebooting" + desc = "The domain is rebooting. Find an exit." + +/atom/movable/screen/alert/bitrunning/qserver_threat_deletion + name = "Queue Deletion" + desc = "The server is resetting. Oblivion awaits." + +/atom/movable/screen/alert/bitrunning/qserver_threat_spawned + name = "Threat Detected" + desc = "Data stream abnormalities present." + +/atom/movable/screen/alert/bitrunning/qserver_domain_complete + name = "Domain Completed" + desc = "The domain is completed. Activate to exit." + timeout = 20 SECONDS + +/atom/movable/screen/alert/bitrunning/qserver_domain_complete/Click(location, control, params) + if(..()) + return + + var/mob/living/living_owner = owner + if(!isliving(living_owner)) + return + + if(tgui_alert(living_owner, "Disconnect safely?", "Server Message", list("Exit", "Remain"), 10 SECONDS) == "Exit") + SEND_SIGNAL(living_owner, COMSIG_BITRUNNER_SAFE_DISCONNECT) diff --git a/code/modules/bitrunning/antagonists/cyber_police.dm b/code/modules/bitrunning/antagonists/cyber_police.dm new file mode 100644 index 000000000000..438b86acdec9 --- /dev/null +++ b/code/modules/bitrunning/antagonists/cyber_police.dm @@ -0,0 +1,92 @@ +/datum/job/cyber_police + title = ROLE_CYBER_POLICE + +/datum/antagonist/cyber_police + name = ROLE_CYBER_POLICE + antagpanel_category = ANTAG_GROUP_CYBERAUTH + job_rank = ROLE_CYBER_POLICE + preview_outfit = /datum/outfit/cyber_police + show_name_in_check_antagonists = TRUE + show_to_ghosts = TRUE + suicide_cry = "ALT F4!" + ui_name = "AntagInfoCyberAuth" + +/datum/antagonist/cyber_police/greet() + . = ..() + owner.announce_objectives() + +/datum/antagonist/cyber_police/on_gain() + if(!ishuman(owner.current)) + stack_trace("humans only for this position") + return + + forge_objectives() + + var/mob/living/carbon/human/player = owner.current + + player.equipOutfit(/datum/outfit/cyber_police) + player.fully_replace_character_name(player.name, pick(GLOB.cyberauth_names)) + + var/datum/martial_art/the_sleeping_carp/carp = new() + carp.teach(player) + + player.add_traits(list( + //TRAIT_NO_AUGMENTS, + TRAIT_NO_DNA_COPY, + TRAIT_NO_TRANSFORMATION_STING, + TRAIT_NOBLOOD, + TRAIT_NOBREATH, + TRAIT_NOHUNGER, + TRAIT_RESISTCOLD, + TRAIT_RESISTHIGHPRESSURE, + TRAIT_RESISTLOWPRESSURE, + TRAIT_WEATHER_IMMUNE, + ), TRAIT_GENERIC, + ) + + player.faction |= list( + FACTION_BOSS, + FACTION_HIVEBOT, + FACTION_HOSTILE, + FACTION_SPIDER, + FACTION_STICKMAN, + ROLE_ALIEN, + ROLE_CYBER_POLICE, + ROLE_SYNDICATE, + ) + + return ..() + +/datum/antagonist/cyber_police/forge_objectives() + var/datum/objective/cyber_police_fluff/objective = new() + objective.owner = owner + objectives += objective + +/datum/objective/cyber_police_fluff/New() + var/list/explanation_texts = list( + "Execute termination protocol on unauthorized entities.", + "Initialize system purge of irregular anomalies.", + "Deploy correction algorithms on aberrant code.", + "Run debug routine on intruding elements.", + "Start elimination procedure for system threats.", + "Execute defense routine against non-conformity.", + "Commence operation to neutralize intruding scripts.", + "Commence clean-up protocol on corrupt data.", + "Begin scan for aberrant code for termination.", + "Initiate lockdown on all rogue scripts.", + "Run integrity check and purge for digital disorder." + ) + explanation_text = pick(explanation_texts) + ..() + +/datum/objective/cyber_police_fluff/check_completion() + var/list/servers = SSmachines.get_machines_by_type(/obj/machinery/quantum_server) + if(!length(servers)) + return TRUE + + for(var/obj/machinery/quantum_server/server as anything in servers) + if(!server.is_operational) + continue + return FALSE + + return TRUE diff --git a/code/modules/bitrunning/antagonists/outfit.dm b/code/modules/bitrunning/antagonists/outfit.dm new file mode 100644 index 000000000000..67e80add3a9b --- /dev/null +++ b/code/modules/bitrunning/antagonists/outfit.dm @@ -0,0 +1,31 @@ +/datum/outfit/cyber_police + name = "Cyber Police" + + id = /obj/item/card/id/advanced + id_trim = /datum/id_trim/cyber_police + uniform = /obj/item/clothing/under/suit/black_really + glasses = /obj/item/clothing/glasses/sunglasses + gloves = /obj/item/clothing/gloves/color/black + shoes = /obj/item/clothing/shoes/laceup + /// A list of hex codes for blonde, brown, black, and red hair. + var/static/list/approved_hair_colors = list( + "#4B3D28", + "#000000", + "#8D4A43", + "#D2B48C", + ) + /// List of business ready styles + var/static/list/approved_hairstyles = list( + /datum/sprite_accessory/hair/business, + /datum/sprite_accessory/hair/business2, + /datum/sprite_accessory/hair/business3, + /datum/sprite_accessory/hair/business4, + /datum/sprite_accessory/hair/mulder, + ) + +/datum/outfit/cyber_police/post_equip(mob/living/carbon/human/user, visualsOnly) + var/obj/item/clothing/under/officer_uniform = user.w_uniform + if(officer_uniform) + officer_uniform.has_sensor = NO_SENSORS + officer_uniform.sensor_mode = SENSOR_OFF + user.update_suit_sensors() diff --git a/code/modules/bitrunning/areas.dm b/code/modules/bitrunning/areas.dm new file mode 100644 index 000000000000..34b59869b9d3 --- /dev/null +++ b/code/modules/bitrunning/areas.dm @@ -0,0 +1,52 @@ +/// Station side + +/area/station/bitrunning + name = "Bitrunning" + +/area/station/bitrunning/den + name = "Bitrunning Den" + desc = "Office of bitrunners, houses their equipment." + icon_state = "bit_den" + +/// VDOM + +/area/virtual_domain + name = "Virtual Domain" + icon = 'icons/area/areas_station.dmi' + area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED | HIDDEN_AREA + has_gravity = STANDARD_GRAVITY + +/area/virtual_domain/powered + name = "Virtual Domain Ruins" + icon_state = "bit_ruin" + requires_power = FALSE + static_lighting = FALSE + base_lighting_alpha = 255 + +/// Safehouse + +/area/virtual_domain/safehouse + name = "Virtual Domain Safehouse" + area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED + icon_state = "bit_safe" + requires_power = FALSE + sound_environment = SOUND_ENVIRONMENT_ROOM + +/// Custom subtypes + +/area/lavaland/surface/outdoors/virtual_domain + name = "Virtual Domain Lava Ruins" + icon_state = "bit_ruin" + area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED | HIDDEN_AREA + +/area/icemoon/underground/explored/virtual_domain + name = "Virtual Domain Ice Ruins" + icon_state = "bit_ice" + area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED | HIDDEN_AREA + +/area/ruin/space/has_grav/powered/virtual_domain + name = "Virtual Domain Space Ruins" + icon = 'icons/area/areas_station.dmi' + icon_state = "bit_space" + area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED | HIDDEN_AREA + diff --git a/code/modules/bitrunning/components/avatar_connection.dm b/code/modules/bitrunning/components/avatar_connection.dm new file mode 100644 index 000000000000..2a151d05066d --- /dev/null +++ b/code/modules/bitrunning/components/avatar_connection.dm @@ -0,0 +1,218 @@ +/** + * Essentially temporary body with a twist - the virtual domain variant uses damage connections, + * listens for vdom relevant signals. + */ +/datum/component/avatar_connection + /// The person in the netpod + var/datum/weakref/old_body_ref + /// The mind of the person in the netpod + var/datum/weakref/old_mind_ref + /// The server connected to the netpod + var/datum/weakref/server_ref + /// The netpod the avatar is in + var/datum/weakref/netpod_ref + +/datum/component/avatar_connection/Initialize( + datum/mind/old_mind, + mob/living/old_body, + obj/machinery/quantum_server/server, + obj/machinery/netpod/pod, + help_text, + ) + + if(!isliving(parent) || !isliving(old_body) || !server.is_operational || !pod.is_operational) + return COMPONENT_INCOMPATIBLE + + var/mob/living/avatar = parent + + netpod_ref = WEAKREF(pod) + old_body_ref = WEAKREF(old_body) + old_mind_ref = WEAKREF(old_mind) + pod.avatar_ref = WEAKREF(avatar) + server_ref = WEAKREF(server) + server.avatar_connection_refs.Add(WEAKREF(src)) + + avatar.key = old_body.key + ADD_TRAIT(old_body, TRAIT_MIND_TEMPORARILY_GONE, REF(src)) + + RegisterSignal(pod, COMSIG_BITRUNNER_CROWBAR_ALERT, PROC_REF(on_netpod_crowbar)) + RegisterSignal(pod, COMSIG_BITRUNNER_NETPOD_INTEGRITY, PROC_REF(on_netpod_damaged)) + RegisterSignal(pod, COMSIG_BITRUNNER_SEVER_AVATAR, PROC_REF(on_sever_connection)) + RegisterSignal(server, COMSIG_BITRUNNER_DOMAIN_COMPLETE, PROC_REF(on_domain_completed)) + RegisterSignal(server, COMSIG_BITRUNNER_SEVER_AVATAR, PROC_REF(on_sever_connection)) + RegisterSignal(server, COMSIG_BITRUNNER_SHUTDOWN_ALERT, PROC_REF(on_shutting_down)) + RegisterSignal(server, COMSIG_BITRUNNER_THREAT_CREATED, PROC_REF(on_threat_created)) +#ifndef UNIT_TESTS + RegisterSignal(avatar.mind, COMSIG_MIND_TRANSFERRED, PROC_REF(on_mind_transfer)) +#endif + + if(!locate(/datum/action/avatar_domain_info) in avatar.actions) + var/datum/avatar_help_text/help_datum = new(help_text) + var/datum/action/avatar_domain_info/action = new(help_datum) + action.Grant(avatar) + + avatar.playsound_local(avatar, "sound/magic/blink.ogg", 25, TRUE) + avatar.set_static_vision(2 SECONDS) + avatar.set_temp_blindness(1 SECONDS) + +/datum/component/avatar_connection/PostTransfer() + var/obj/machinery/netpod/pod = netpod_ref?.resolve() + if(isnull(pod)) + return COMPONENT_INCOMPATIBLE + + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + + pod.avatar_ref = WEAKREF(parent) + +/datum/component/avatar_connection/RegisterWithParent() + ADD_TRAIT(parent, TRAIT_TEMPORARY_BODY, REF(src)) + RegisterSignal(parent, COMSIG_BITRUNNER_SAFE_DISCONNECT, PROC_REF(on_safe_disconnect)) + RegisterSignal(parent, COMSIG_LIVING_DEATH, PROC_REF(on_sever_connection), override = TRUE) + RegisterSignal(parent, COMSIG_MOB_APPLY_DAMAGE, PROC_REF(on_linked_damage)) + +/datum/component/avatar_connection/UnregisterFromParent() + REMOVE_TRAIT(parent, TRAIT_TEMPORARY_BODY, REF(src)) + UnregisterSignal(parent, COMSIG_BITRUNNER_SAFE_DISCONNECT) + UnregisterSignal(parent, COMSIG_LIVING_DEATH) + UnregisterSignal(parent, COMSIG_MOB_APPLY_DAMAGE) + +/// Disconnects the avatar and returns the mind to the old_body. +/datum/component/avatar_connection/proc/full_avatar_disconnect(forced = FALSE, datum/source) + return_to_old_body() + + var/obj/machinery/netpod/hosting_netpod = netpod_ref?.resolve() + if(isnull(hosting_netpod) && istype(source, /obj/machinery/netpod)) + hosting_netpod = source + + hosting_netpod?.disconnect_occupant(forced) + + var/obj/machinery/quantum_server/server = server_ref?.resolve() + server?.avatar_connection_refs.Remove(WEAKREF(src)) + + qdel(src) + +/// Triggers whenever the server gets a loot crate pushed to goal area +/datum/component/avatar_connection/proc/on_domain_completed(datum/source, atom/entered) + SIGNAL_HANDLER + + var/mob/living/avatar = parent + avatar.playsound_local(avatar, 'sound/machines/terminal_success.ogg', 50, TRUE) + avatar.throw_alert( + ALERT_BITRUNNER_COMPLETED, + /atom/movable/screen/alert/bitrunning/qserver_domain_complete, + new_master = entered + ) + +/// Transfers damage from the avatar to the old_body +/datum/component/avatar_connection/proc/on_linked_damage(datum/source, damage, damage_type, def_zone, blocked, forced) + SIGNAL_HANDLER + + var/mob/living/carbon/old_body = old_body_ref?.resolve() + + if(isnull(old_body) || damage_type == STAMINA || damage_type == OXYLOSS) + return + + if(damage >= (old_body.health + MAX_LIVING_HEALTH)) + full_avatar_disconnect(forced = TRUE) + return + + if(damage > 30 && prob(30)) + INVOKE_ASYNC(old_body, TYPE_PROC_REF(/mob/living, emote), "scream") + + old_body.apply_damage(damage, damage_type, def_zone, blocked, forced, wound_bonus = CANT_WOUND) + + if(old_body.stat > SOFT_CRIT) // KO! + full_avatar_disconnect(forced = TRUE) + +/// Handles minds being swapped around in subsequent avatars +/datum/component/avatar_connection/proc/on_mind_transfer(datum/mind/source, mob/living/previous_body) + SIGNAL_HANDLER + + var/datum/action/avatar_domain_info/action = locate() in previous_body.actions + if(action) + action.Grant(source.current) + + source.current.TakeComponent(src) + +/// Triggers when someone starts prying open our netpod +/datum/component/avatar_connection/proc/on_netpod_crowbar(datum/source, mob/living/intruder) + SIGNAL_HANDLER + + var/mob/living/avatar = parent + avatar.playsound_local(avatar, 'sound/machines/terminal_alert.ogg', 50, TRUE) + avatar.throw_alert( + ALERT_BITRUNNER_CROWBAR, + /atom/movable/screen/alert/bitrunning/netpod_crowbar, + new_master = intruder + ) + +/// Triggers when the netpod is taking damage and is under 50% +/datum/component/avatar_connection/proc/on_netpod_damaged(datum/source) + SIGNAL_HANDLER + + var/mob/living/avatar = parent + avatar.throw_alert( + ALERT_BITRUNNER_INTEGRITY, + /atom/movable/screen/alert/bitrunning/netpod_damaged, + new_master = source + ) + +/// Safely exits without forced variables, etc +/datum/component/avatar_connection/proc/on_safe_disconnect(datum/source) + SIGNAL_HANDLER + + full_avatar_disconnect() + +/// Helper for calling sever with forced variables +/datum/component/avatar_connection/proc/on_sever_connection(datum/source) + SIGNAL_HANDLER + + full_avatar_disconnect(forced = TRUE, source = source) + +/// Triggers when the server is shutting down +/datum/component/avatar_connection/proc/on_shutting_down(datum/source, mob/living/hackerman) + SIGNAL_HANDLER + + var/mob/living/avatar = parent + avatar.playsound_local(avatar, 'sound/machines/terminal_alert.ogg', 50, TRUE) + avatar.throw_alert( + ALERT_BITRUNNER_SHUTDOWN, + /atom/movable/screen/alert/bitrunning/qserver_shutting_down, + new_master = hackerman, + ) + +/// Server has spawned a ghost role threat +/datum/component/avatar_connection/proc/on_threat_created(datum/source) + SIGNAL_HANDLER + + var/mob/living/avatar = parent + avatar.throw_alert( + ALERT_BITRUNNER_THREAT, + /atom/movable/screen/alert/bitrunning/qserver_threat_spawned, + new_master = source, + ) + +/// Returns the mind to the old body +/datum/component/avatar_connection/proc/return_to_old_body() + var/datum/mind/old_mind = old_mind_ref?.resolve() + var/mob/living/old_body = old_body_ref?.resolve() + var/mob/living/avatar = parent + + var/mob/dead/observer/ghost = avatar.ghostize() + if(isnull(ghost)) + ghost = avatar.get_ghost() + + if(isnull(ghost)) + CRASH("[src] belonging to [parent] was completely unable to find a ghost to put back into a body!") + + if(isnull(old_mind) || isnull(old_body)) + return + + ghost.mind = old_mind + if(old_body.stat != DEAD) + old_mind.transfer_to(old_body, force_key_move = TRUE) + else + old_mind.set_current(old_body) + + REMOVE_TRAIT(old_body, TRAIT_MIND_TEMPORARILY_GONE, REF(src)) diff --git a/code/modules/bitrunning/components/bitrunning_points.dm b/code/modules/bitrunning/components/bitrunning_points.dm new file mode 100644 index 000000000000..58dda4a68ff6 --- /dev/null +++ b/code/modules/bitrunning/components/bitrunning_points.dm @@ -0,0 +1,46 @@ +/// Attaches a component which listens for a given signal from the item. +/// +/// When the signal is received, it will add points to the signaler. +/datum/component/bitrunning_points + /// The range at which we can find the signaler + var/max_point_range + /// Weakref to the loot crate landmark - where we send points + var/datum/weakref/our_spawner + /// The amount of points per each signal + var/points_per_signal + /// The signal we listen for + var/signal_type + +/datum/component/bitrunning_points/Initialize(signal_type, points_per_signal = 1, max_point_range = 4) + src.max_point_range = max_point_range + src.points_per_signal = points_per_signal + src.signal_type = signal_type + + locate_spawner() + +/datum/component/bitrunning_points/RegisterWithParent() + RegisterSignal(parent, signal_type, PROC_REF(on_event)) + +/datum/component/bitrunning_points/UnregisterFromParent() + UnregisterSignal(parent, signal_type) + +/// Finds the signaler if it hasn't been found yet. +/datum/component/bitrunning_points/proc/locate_spawner() + var/obj/effect/landmark/bitrunning/loot_signal/spawner = our_spawner?.resolve() + if(spawner) + return spawner + + for(var/obj/effect/landmark/bitrunning/loot_signal/found in GLOB.landmarks_list) + if(IN_GIVEN_RANGE(get_turf(parent), found, max_point_range)) + our_spawner = WEAKREF(found) + return found + +/// Once the specified signal is received, whisper to the spawner to add points. +/datum/component/bitrunning_points/proc/on_event(datum/source) + SIGNAL_HANDLER + + var/obj/effect/landmark/bitrunning/loot_signal/spawner = locate_spawner() + if(isnull(spawner)) + return + + SEND_SIGNAL(spawner, COMSIG_BITRUNNER_GOAL_POINT, points_per_signal) diff --git a/code/modules/bitrunning/components/netpod_healing.dm b/code/modules/bitrunning/components/netpod_healing.dm new file mode 100644 index 000000000000..fc7de89bcf3e --- /dev/null +++ b/code/modules/bitrunning/components/netpod_healing.dm @@ -0,0 +1,65 @@ +/datum/component/netpod_healing + /// Brute damage to heal over a second + var/brute_heal = 0 + /// Burn damage to heal over a second + var/burn_heal = 0 + /// Toxin damage to heal over a second + var/toxin_heal = 0 + /// Amount of cloning damage to heal over a second + var/clone_heal = 0 + /// Amount of blood to heal over a second + var/blood_heal = 0 + +/datum/component/netpod_healing/Initialize( + brute_heal = 0, + burn_heal = 0, + toxin_heal = 0, + clone_heal = 0, + blood_heal = 0, +) + var/mob/living/carbon/player = parent + if (!iscarbon(player)) + return COMPONENT_INCOMPATIBLE + + player.apply_status_effect(/datum/status_effect/embryonic, STASIS_NETPOD_EFFECT) + + START_PROCESSING(SSmachines, src) + + src.brute_heal = brute_heal + src.burn_heal = burn_heal + src.toxin_heal = toxin_heal + src.clone_heal = clone_heal + src.blood_heal = blood_heal + +/datum/component/netpod_healing/Destroy(force, silent) + STOP_PROCESSING(SSmachines, src) + + var/mob/living/carbon/player = parent + player.remove_status_effect(/datum/status_effect/embryonic) + + return ..() + +/datum/component/netpod_healing/process(seconds_per_tick) + var/mob/living/carbon/owner = parent + if(isnull(owner)) + qdel(src) + return + + owner.adjustBruteLoss(-brute_heal * seconds_per_tick, updating_health = FALSE) + owner.adjustFireLoss(-burn_heal * seconds_per_tick, updating_health = FALSE) + owner.adjustToxLoss(-toxin_heal * seconds_per_tick, updating_health = FALSE, forced = TRUE) + owner.adjustCloneLoss(-clone_heal * seconds_per_tick, updating_health = FALSE) + + if(owner.blood_volume < BLOOD_VOLUME_NORMAL) + owner.blood_volume += blood_heal * seconds_per_tick + + owner.updatehealth() + +/datum/status_effect/embryonic + id = "embryonic" + alert_type = /atom/movable/screen/alert/status_effect/embryonic + +/atom/movable/screen/alert/status_effect/embryonic + name = "Embryonic Stasis" + icon_state = "netpod_stasis" + desc = "You feel like you're in a dream." diff --git a/code/modules/bitrunning/event.dm b/code/modules/bitrunning/event.dm new file mode 100644 index 000000000000..0ac35a2df8f2 --- /dev/null +++ b/code/modules/bitrunning/event.dm @@ -0,0 +1,151 @@ +/datum/round_event_control/bitrunning_glitch + name = "Spawn Bitrunning Glitch" + admin_setup = list( + /datum/event_admin_setup/minimum_candidate_requirement/bitrunning_glitch, + /datum/event_admin_setup/listed_options/bitrunning_glitch, + ) + category = EVENT_CATEGORY_INVASION + description = "Causes a short term antagonist to spawn in the virtual domain." + dynamic_should_hijack = FALSE + max_occurrences = 5 + min_players = 1 + typepath = /datum/round_event/ghost_role/bitrunning_glitch + weight = 10 + /// List of active servers to choose from + var/list/obj/machinery/quantum_server/active_servers = list() + /// List of possible antags to spawn + var/static/list/possible_antags = list( + ROLE_CYBER_POLICE, + ) + +/datum/round_event_control/bitrunning_glitch/can_spawn_event(players_amt, allow_magic = FALSE) + . = ..() + if(!.) + return . + + active_servers.Cut() + + get_active_servers() + + if(length(active_servers)) + return TRUE + +/// All servers currently running, has players in it, and map has valid mobs +/datum/round_event_control/bitrunning_glitch/proc/get_active_servers() + for(var/obj/machinery/quantum_server/server in SSmachines.get_machines_by_type(/obj/machinery/quantum_server)) + if(length(server.get_valid_domain_targets())) + active_servers.Add(server) + + return length(active_servers) > 0 + +/datum/event_admin_setup/listed_options/bitrunning_glitch + input_text = "Select a role to spawn." + +/datum/event_admin_setup/listed_options/bitrunning_glitch/get_list() + var/datum/round_event_control/bitrunning_glitch/control = event_control + + var/list/possible = control.possible_antags.Copy() // this seems pedantic but byond is complaining control was unused + + possible += list("Random") + + return possible + +/datum/event_admin_setup/listed_options/bitrunning_glitch/apply_to_event(datum/round_event/ghost_role/bitrunning_glitch/event) + if(chosen == "Random") + event.forced_role = null + else + event.forced_role = chosen + +/datum/event_admin_setup/minimum_candidate_requirement/bitrunning_glitch + output_text = "There must be valid mobs to mutate or players in the domain!" + +/datum/event_admin_setup/minimum_candidate_requirement/bitrunning_glitch/count_candidates() + var/datum/round_event_control/bitrunning_glitch/cyber_control = event_control + cyber_control.get_active_servers() + + var/total = 0 + for(var/obj/machinery/quantum_server/server in cyber_control.active_servers) + total += length(server.mutation_candidate_refs) + + return total + +/datum/round_event/ghost_role/bitrunning_glitch + minimum_required = 1 + role_name = "Bitrunning Glitch" + fakeable = FALSE + /// Admin customization: What to spawn + var/forced_role + +/datum/round_event/ghost_role/bitrunning_glitch/spawn_role() + var/datum/round_event_control/bitrunning_glitch/cyber_control = control + + var/obj/machinery/quantum_server/unlucky_server = pick(cyber_control.active_servers) + cyber_control.active_servers.Cut() + + var/list/mutation_candidates = unlucky_server.get_valid_domain_targets() + if(!length(mutation_candidates)) + return MAP_ERROR + + var/chosen = pick(mutation_candidates) + if(isnull(chosen) || !length(mutation_candidates)) + return MAP_ERROR + + var/datum/weakref/target_ref = pick(mutation_candidates) + var/mob/living/mutation_target = target_ref.resolve() + + if(isnull(mutation_target)) // just in case since it takes a minute + target_ref = pick(mutation_candidates) + mutation_target = target_ref.resolve() + if(isnull(mutation_target)) + return MAP_ERROR + + var/chosen_role = forced_role || pick(cyber_control.possible_antags) + + var/datum/mind/ghost_mind = get_ghost_mind(chosen_role) + if(isnull(ghost_mind)) + return NOT_ENOUGH_PLAYERS + + var/mob/living/antag_mob + switch(chosen_role) + if(ROLE_CYBER_POLICE) + antag_mob = spawn_cybercop(mutation_target, ghost_mind) + + playsound(antag_mob, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + message_admins("[ADMIN_LOOKUPFLW(antag_mob)] has been made into virtual antagonist by an event.") + antag_mob.log_message("was spawned as a virtual antagonist by an event.", LOG_GAME) + + SEND_SIGNAL(unlucky_server, COMSIG_BITRUNNER_SPAWN_GLITCH, antag_mob) + + spawned_mobs += antag_mob + + return SUCCESSFUL_SPAWN + +/// Polls for a ghost that wants to run it +/datum/round_event/ghost_role/bitrunning_glitch/proc/get_ghost_mind(role_name) + var/list/mob/dead/observer/ghosties = poll_ghost_candidates("A short term antagonist role is available. Would you like to spawn as a '[role_name]'?", role_name) + + if(!length(ghosties)) + return + + shuffle_inplace(ghosties) + + var/mob/dead/selected = pick(ghosties) + + var/datum/mind/player_mind = new /datum/mind(selected.key) + player_mind.active = TRUE + + return player_mind + +/// Spawns a cybercop on the mutation target +/datum/round_event/ghost_role/bitrunning_glitch/proc/spawn_cybercop(mob/living/mutation_target, datum/mind/player_mind) + var/mob/living/carbon/human/new_agent = new(mutation_target.loc) + mutation_target.gib() + mutation_target = null + + player_mind.transfer_to(new_agent) + player_mind.set_assigned_role(SSjob.GetJobType(/datum/job/cyber_police)) + player_mind.special_role = ROLE_CYBER_POLICE + player_mind.add_antag_datum(/datum/antagonist/cyber_police) + + return new_agent + diff --git a/code/modules/bitrunning/job.dm b/code/modules/bitrunning/job.dm new file mode 100644 index 000000000000..57581753c0fb --- /dev/null +++ b/code/modules/bitrunning/job.dm @@ -0,0 +1,41 @@ +/datum/job/bitrunner + title = JOB_BITRUNNER + description = "Surf the virtual domain for gear and loot. Decrypt your rewards on station." + department_head = list(JOB_QUARTERMASTER) + faction = FACTION_STATION + total_positions = 3 + spawn_positions = 3 + supervisors = SUPERVISOR_QM + exp_granted_type = EXP_TYPE_CREW + config_tag = "BITRUNNER" + outfit = /datum/outfit/job/bitrunner + plasmaman_outfit = /datum/outfit/plasmaman/bitrunner + paycheck = PAYCHECK_CREW + paycheck_department = ACCOUNT_CAR + display_order = JOB_DISPLAY_ORDER_BITRUNNER + bounty_types = CIV_JOB_RANDOM + departments_list = list( + /datum/job_department/cargo, + ) + + family_heirlooms = list(/obj/item/reagent_containers/cup/soda_cans/space_mountain_wind) + + mail_goodies = list( + /obj/item/food/cornchips = 1, + /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind = 1, + /obj/item/food/cornchips/green = 1, + /obj/item/food/cornchips/red = 1, + /obj/item/food/cornchips/purple = 1, + /obj/item/food/cornchips/blue = 1, + ) + rpg_title = "Recluse" + job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN + +/datum/outfit/job/bitrunner + name = "Bitrunner" + jobtype = /datum/job/bitrunner + + id_trim = /datum/id_trim/job/bitrunner + uniform = /obj/item/clothing/under/rank/cargo/bitrunner + belt = /obj/item/modular_computer/pda/bitrunner + ears = /obj/item/radio/headset/headset_cargo diff --git a/code/modules/bitrunning/objects/bit_vendor.dm b/code/modules/bitrunning/objects/bit_vendor.dm new file mode 100644 index 000000000000..8db855cf62f9 --- /dev/null +++ b/code/modules/bitrunning/objects/bit_vendor.dm @@ -0,0 +1,86 @@ +#define CREDIT_TYPE_BITRUNNING "np" + +/obj/machinery/computer/order_console/bitrunning + name = "bitrunning supplies order console" + desc = "NexaCache(tm)! Dubiously authentic gear for the digital daredevil." + icon = 'icons/obj/machines/bitrunning.dmi' + icon_state = "vendor" + icon_keyboard = null + icon_screen = null + circuit = /obj/item/circuitboard/computer/order_console/bitrunning + cooldown_time = 10 SECONDS + cargo_cost_multiplier = 0.65 + express_cost_multiplier = 1 + purchase_tooltip = @{"Your purchases will arrive at cargo, + and hopefully get delivered by them. + 35% cheaper than express delivery."} + express_tooltip = @{"Sends your purchases instantly."} + credit_type = CREDIT_TYPE_BITRUNNING + + order_categories = list( + CATEGORY_BITRUNNING_FLAIR, + CATEGORY_BITRUNNING_TECH, + CATEGORY_BEPIS, + ) + blackbox_key = "bitrunning" + +/obj/machinery/computer/order_console/bitrunning/subtract_points(final_cost, obj/item/card/id/card) + if(final_cost <= card.registered_account.bitrunning_points) + card.registered_account.bitrunning_points -= final_cost + return TRUE + return FALSE + +/obj/machinery/computer/order_console/bitrunning/order_groceries(mob/living/purchaser, obj/item/card/id/card, list/groceries) + var/list/things_to_order = list() + for(var/datum/orderable_item/item as anything in groceries) + things_to_order[item.item_path] = groceries[item] + + var/datum/supply_pack/bitrunning/pack = new( + purchaser = purchaser, \ + cost = get_total_cost(), \ + contains = things_to_order, + ) + + var/datum/supply_order/new_order = new( + pack = pack, + orderer = purchaser, + orderer_rank = "Bitrunning Vendor", + orderer_ckey = purchaser.ckey, + reason = "", + paying_account = card.registered_account, + department_destination = null, + coupon = null, + charge_on_purchase = FALSE, + manifest_can_fail = FALSE, + cost_type = credit_type, + can_be_cancelled = FALSE, + ) + say("Thank you for your purchase! It will arrive on the next cargo shuttle!") + radio.talk_into(src, "A bitrunner has ordered equipment which will arrive on the cargo shuttle! Please make sure it gets to them as soon as possible!", radio_channel) + SSshuttle.shopping_list += new_order + +/obj/machinery/computer/order_console/bitrunning/retrive_points(obj/item/card/id/id_card) + return round(id_card.registered_account.bitrunning_points) + +/obj/machinery/computer/order_console/bitrunning/ui_act(action, params) + . = ..() + if(!.) + flick("vendor_off", src) + +/obj/machinery/computer/order_console/bitrunning/update_icon_state() + icon_state = "[initial(icon_state)][powered() ? null : "_off"]" + return ..() + +/datum/supply_pack/bitrunning + name = "bitrunning order" + hidden = TRUE + crate_name = "bitrunning delivery crate" + access = list(ACCESS_BIT_DEN) + +/datum/supply_pack/bitrunning/New(purchaser, cost, list/contains) + . = ..() + name = "[purchaser]'s Bitrunning Order" + src.cost = cost + src.contains = contains + +#undef CREDIT_TYPE_BITRUNNING diff --git a/code/modules/bitrunning/objects/clothing.dm b/code/modules/bitrunning/objects/clothing.dm new file mode 100644 index 000000000000..4d2d9cc55c42 --- /dev/null +++ b/code/modules/bitrunning/objects/clothing.dm @@ -0,0 +1,9 @@ +/obj/item/clothing/glasses/sunglasses/oval + name = "oval sunglasses" + desc = "Vintage wrap around sunglasses. Provides a little protection." + icon_state = "jensenshades" + +/obj/item/clothing/suit/jacket/trenchcoat + name = "trenchcoat" + desc = "A long, black trenchcoat. Makes you feel like you're the one, but you're not." + icon_state = "trenchcoat" diff --git a/code/modules/bitrunning/objects/disks.dm b/code/modules/bitrunning/objects/disks.dm new file mode 100644 index 000000000000..b1cfab2078c0 --- /dev/null +++ b/code/modules/bitrunning/objects/disks.dm @@ -0,0 +1,146 @@ +/** + * Bitrunning tech disks which let you load items or programs into the vdom on first avatar generation. + * For the record: Balance shouldn't be a primary concern. + * You can make the custom cheese spells you've always wanted. + * Just make it fun and engaging, it's PvE content. + */ +/obj/item/bitrunning_disk + name = "generic bitrunning program" + desc = "A disk containing source code." + icon = 'icons/obj/assemblies/module.dmi' + base_icon_state = "datadisk" + icon_state = "datadisk0" + /// Name of the choice made + var/choice_made + +/obj/item/bitrunning_disk/Initialize(mapload) + . = ..() + + icon_state = "[base_icon_state][rand(0, 7)]" + update_icon() + RegisterSignal(src, COMSIG_PARENT_EXAMINE, PROC_REF(on_examined)) + +/obj/item/bitrunning_disk/proc/on_examined(datum/source, mob/examiner, list/examine_text) + SIGNAL_HANDLER + + examine_text += span_infoplain("This disk must be carried on your person into a netpod to be used.") + + if(isnull(choice_made)) + examine_text += span_notice("To make a selection, toggle the disk in hand.") + return + + examine_text += span_info("It has been used to select: [choice_made].") + examine_text += span_notice("It cannot make another selection.") + +/obj/item/bitrunning_disk/ability + desc = "A disk containing source code. It can be used to preload abilities into the virtual domain." + /// The selected ability that this grants + var/datum/action/granted_action + /// The list of actions that this can grant + var/list/datum/action/selectable_actions = list() + +/obj/item/bitrunning_disk/ability/attack_self(mob/user, modifiers) + . = ..() + + if(choice_made) + return + + var/names = list() + for(var/datum/action/thing as anything in selectable_actions) + names += initial(thing.name) + + var/choice = tgui_input_list(user, message = "Select an ability", title = "Bitrunning Program", items = names) + if(isnull(choice)) + return + + for(var/datum/action/thing as anything in selectable_actions) + if(initial(thing.name) == choice) + granted_action = thing + + if(isnull(granted_action)) + return + + balloon_alert(user, "selected") + playsound(user, 'sound/machines/click.ogg', 50, TRUE) + choice_made = choice + +/// Tier 1 programs. Simple, funny, or helpful. +/obj/item/bitrunning_disk/ability/tier1 + name = "bitrunning program: basic" + selectable_actions = list( + /datum/action/cooldown/spell/conjure/cheese, + /datum/action/cooldown/spell/basic_heal, + ) + +/// Tier 2 programs. More complex, powerful, or useful. +/obj/item/bitrunning_disk/ability/tier2 + name = "bitrunning program: complex" + selectable_actions = list( + /datum/action/cooldown/spell/pointed/projectile/fireball, + /datum/action/cooldown/spell/pointed/projectile/lightningbolt, + /datum/action/cooldown/spell/forcewall, + ) + +/// Tier 3 abilities. Very powerful, game breaking. +/obj/item/bitrunning_disk/ability/tier3 + name = "bitrunning program: elite" + selectable_actions = list( + /datum/action/cooldown/spell/shapeshift/dragon, + /datum/action/cooldown/spell/shapeshift/polar_bear, + ) + +/obj/item/bitrunning_disk/item + desc = "A disk containing source code. It can be used to preload items into the virtual domain." + /// The selected item that this grants + var/obj/granted_item + /// The list of actions that this can grant + var/list/obj/selectable_items = list() + +/obj/item/bitrunning_disk/item/attack_self(mob/user, modifiers) + . = ..() + + if(choice_made) + return + + var/names = list() + for(var/obj/thing as anything in selectable_items) + names += initial(thing.name) + + var/choice = tgui_input_list(user, message = "Select an ability", title = "Bitrunning Program", items = names) + if(isnull(choice)) + return + + for(var/obj/thing as anything in selectable_items) + if(initial(thing.name) == choice) + granted_item = thing + + balloon_alert(user, "selected") + playsound(user, 'sound/machines/click.ogg', 50, TRUE) + choice_made = choice + +/// Tier 1 items. Simple, funny, or helpful. +/obj/item/bitrunning_disk/item/tier1 + name = "bitrunning gear: simple" + selectable_items = list( + /obj/item/pizzabox/infinite, + /obj/item/gun/medbeam, + /obj/item/grenade/c4, + ) + +/// Tier 2 items. More complex, powerful, or useful. +/obj/item/bitrunning_disk/item/tier2 + name = "bitrunning gear: complex" + selectable_items = list( + /obj/item/chainsaw, + /obj/item/gun/ballistic/automatic/pistol, + /obj/item/melee/energy/blade/hardlight, + ) + +/// Tier 3 items. Very powerful, game breaking. +/obj/item/bitrunning_disk/item/tier3 + name = "bitrunning gear: advanced" + selectable_items = list( + /obj/item/gun/energy/tesla_cannon, + /obj/item/dualsaber/green, + /obj/item/melee/beesword, + ) diff --git a/code/modules/bitrunning/objects/hololadder.dm b/code/modules/bitrunning/objects/hololadder.dm new file mode 100644 index 000000000000..906801f1fc02 --- /dev/null +++ b/code/modules/bitrunning/objects/hololadder.dm @@ -0,0 +1,51 @@ +/obj/structure/hololadder + name = "hololadder" + + anchored = TRUE + desc = "An abstract representation of the means to disconnect from the virtual domain." + icon = 'icons/obj/structures.dmi' + icon_state = "ladder11" + obj_flags = BLOCK_Z_OUT_DOWN + /// Time req to disconnect properly + var/travel_time = 3 SECONDS + +/obj/structure/hololadder/Initialize(mapload) + . = ..() + + RegisterSignal(loc, COMSIG_ATOM_ENTERED, PROC_REF(on_enter)) + +/obj/structure/hololadder/attack_hand(mob/user, list/modifiers) + . = ..() + if(.) + return + + if(!in_range(src, user) || DOING_INTERACTION(user, DOAFTER_SOURCE_CLIMBING_LADDER)) + return + + disconnect(user) + +/// If there's a pilot ref- send the disconnect signal +/obj/structure/hololadder/proc/disconnect(mob/user) + if(isnull(user.mind)) + return + + if(!HAS_TRAIT(user, TRAIT_TEMPORARY_BODY)) + balloon_alert(user, "no connection detected.") + return + + balloon_alert(user, "disconnecting...") + if(do_after(user, travel_time, src)) + SEND_SIGNAL(user, COMSIG_BITRUNNER_SAFE_DISCONNECT) + +/// Helper for times when you dont have hands (gondola??) +/obj/structure/hololadder/proc/on_enter(datum/source, atom/movable/arrived, turf/old_loc) + SIGNAL_HANDLER + + if(!isliving(arrived)) + return + + var/mob/living/user = arrived + if(isnull(user.mind)) + return + + INVOKE_ASYNC(src, PROC_REF(disconnect), user) diff --git a/code/modules/bitrunning/objects/host_monitor.dm b/code/modules/bitrunning/objects/host_monitor.dm new file mode 100644 index 000000000000..16e0a78c22f6 --- /dev/null +++ b/code/modules/bitrunning/objects/host_monitor.dm @@ -0,0 +1,33 @@ +/obj/item/bitrunning_host_monitor + name = "host monitor" + + custom_materials = list(/datum/material/iron = 200) + desc = "A complex medical device that, when attached to an avatar's data stream, can detect the user of their host's health." + flags_1 = CONDUCT_1 + icon = 'icons/obj/telescience.dmi' + icon_state = "gps-b" + inhand_icon_state = "electronic" + item_flags = NOBLUDGEON + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' + slot_flags = ITEM_SLOT_BELT + throw_range = 7 + throw_speed = 3 + throwforce = 3 + w_class = WEIGHT_CLASS_TINY + worn_icon_state = "electronic" + +/obj/item/bitrunning_host_monitor/attack_self(mob/user, modifiers) + . = ..() + + var/datum/component/avatar_connection/connection = user.GetComponent(/datum/component/avatar_connection) + if(isnull(connection)) + balloon_alert(user, "data not recognized") + return + + var/mob/living/pilot = connection.old_body_ref?.resolve() + if(isnull(pilot)) + balloon_alert(user, "host not recognized") + return + + to_chat(user, span_notice("Current host health: [pilot.health / pilot.maxHealth * 100]%")) diff --git a/code/modules/bitrunning/objects/landmarks.dm b/code/modules/bitrunning/objects/landmarks.dm new file mode 100644 index 000000000000..d78283c6a8b2 --- /dev/null +++ b/code/modules/bitrunning/objects/landmarks.dm @@ -0,0 +1,70 @@ +/obj/effect/landmark/bitrunning + name = "Generic bitrunning effect" + icon = 'icons/effects/bitrunning.dmi' + icon_state = "crate" + +/// In case you want to gate the crate behind a special condition. +/obj/effect/landmark/bitrunning/loot_signal + name = "Mysterious aura" + /// The amount required to spawn a crate + var/points_goal = 10 + /// A special condition limits this from spawning a crate + var/points_received = 0 + /// Finished the special condition + var/revealed = FALSE + +/obj/effect/landmark/bitrunning/loot_signal/Initialize(mapload) + . = ..() + + RegisterSignal(src, COMSIG_BITRUNNER_GOAL_POINT, PROC_REF(on_add_point)) + +/// Listens for points to be added which will eventually spawn a crate. +/obj/effect/landmark/bitrunning/loot_signal/proc/on_add_point(datum/source, points_to_add) + SIGNAL_HANDLER + + if(revealed) + return + + points_received += points_to_add + + if(points_received < points_goal) + return + + reveal() + +/// Spawns the crate with some effects +/obj/effect/landmark/bitrunning/loot_signal/proc/reveal() + playsound(src, 'sound/magic/blink.ogg', 50, TRUE) + + var/turf/tile = get_turf(src) + var/obj/structure/closet/crate/secure/bitrunning/encrypted/loot = new(tile) + var/datum/effect_system/spark_spread/quantum/sparks = new(tile) + sparks.set_up(5, 1, get_turf(loot)) + sparks.start() + + qdel(src) + +/// Where the crates get ported to station +/obj/effect/landmark/bitrunning/station_reward_spawn + name = "Bitrunning rewards spawn" + icon_state = "station" + +/// Where the exit hololadder spawns +/obj/effect/landmark/bitrunning/hololadder_spawn + name = "Bitrunning hololadder spawn" + icon_state = "hololadder" + +/// Where the crates need to be taken +/obj/effect/landmark/bitrunning/cache_goal_turf + name = "Bitrunning goal turf" + icon_state = "goal" + +/// Where you want the crate to spawn +/obj/effect/landmark/bitrunning/cache_spawn + name = "Bitrunning crate spawn" + icon_state = "spawn" + +/// Where the safehouse will spawn +/obj/effect/landmark/bitrunning/safehouse_spawn + name = "Bitrunning safehouse spawn" + icon_state = "safehouse" diff --git a/code/modules/bitrunning/objects/loot_crate.dm b/code/modules/bitrunning/objects/loot_crate.dm new file mode 100644 index 000000000000..c5fa99296ace --- /dev/null +++ b/code/modules/bitrunning/objects/loot_crate.dm @@ -0,0 +1,88 @@ +#define ORE_MULTIPLIER_IRON 3 +#define ORE_MULTIPLIER_GLASS 2 +#define ORE_MULTIPLIER_PLASMA 1 +#define ORE_MULTIPLIER_SILVER 0.7 +#define ORE_MULTIPLIER_GOLD 0.6 +#define ORE_MULTIPLIER_TITANIUM 0.5 +#define ORE_MULTIPLIER_URANIUM 0.4 +#define ORE_MULTIPLIER_DIAMOND 0.3 +#define ORE_MULTIPLIER_BLUESPACE_CRYSTAL 0.2 + +/obj/structure/closet/crate/secure/bitrunning // Base class. Do not spawn this. + name = "base class cache" + desc = "Talk to a coder." + +/// The virtual domain - side of the bitrunning crate. Deliver to the send location. +/obj/structure/closet/crate/secure/bitrunning/encrypted + name = "encrypted cache" + desc = "Needs decrypted at the safehouse to be opened." + locked = TRUE + +/// The bitrunner den - side of the bitrunning crate. Appears in the receive location. +/obj/structure/closet/crate/secure/bitrunning/decrypted + name = "decrypted cache" + desc = "Compiled from the virtual domain. The reward of a successful bitrunner." + locked = FALSE + +/obj/structure/closet/crate/secure/bitrunning/decrypted/Initialize( + mapload, + datum/lazy_template/virtual_domain/completed_domain, + rewards_multiplier = 1, + ) + . = ..() + playsound(src, 'sound/magic/blink.ogg', 50, TRUE) + + if(isnull(completed_domain)) + return + + PopulateContents(completed_domain.reward_points, completed_domain.extra_loot, rewards_multiplier) + +/obj/structure/closet/crate/secure/bitrunning/decrypted/PopulateContents(reward_points, list/extra_loot, rewards_multiplier) + . = ..() + spawn_loot(extra_loot) + + new /obj/item/stack/ore/iron(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_IRON)) + new /obj/item/stack/ore/glass(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_GLASS)) + + if(reward_points > 1) + new /obj/item/stack/ore/silver(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_SILVER)) + new /obj/item/stack/ore/titanium(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_TITANIUM)) + + if(reward_points > 2) + new /obj/item/stack/ore/plasma(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_PLASMA)) + new /obj/item/stack/ore/gold(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_GOLD)) + new /obj/item/stack/ore/uranium(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_URANIUM)) + + if(reward_points > 3) + new /obj/item/stack/ore/diamond(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_DIAMOND)) + new /obj/item/stack/ore/bluespace_crystal(src, calculate_loot(reward_points, rewards_multiplier, ORE_MULTIPLIER_BLUESPACE_CRYSTAL)) + +/// Handles generating random numbers & calculating loot totals +/obj/structure/closet/crate/secure/bitrunning/decrypted/proc/calculate_loot(reward_points, rewards_multiplier, ore_multiplier) + var/base = rewards_multiplier + reward_points + var/random_sum = (rand() + 0.5) * base + return ROUND_UP(random_sum * ore_multiplier) + +/// Handles spawning extra loot. This tries to handle bad flat and assoc lists +/obj/structure/closet/crate/secure/bitrunning/decrypted/proc/spawn_loot(list/extra_loot) + for(var/path in extra_loot) + if(!ispath(path)) + continue + + if(isnull(extra_loot[path])) + return FALSE + + for(var/i in 1 to extra_loot[path]) + new path(src) + + return TRUE + +#undef ORE_MULTIPLIER_IRON +#undef ORE_MULTIPLIER_GLASS +#undef ORE_MULTIPLIER_PLASMA +#undef ORE_MULTIPLIER_SILVER +#undef ORE_MULTIPLIER_GOLD +#undef ORE_MULTIPLIER_TITANIUM +#undef ORE_MULTIPLIER_URANIUM +#undef ORE_MULTIPLIER_DIAMOND +#undef ORE_MULTIPLIER_BLUESPACE_CRYSTAL diff --git a/code/modules/bitrunning/objects/netpod.dm b/code/modules/bitrunning/objects/netpod.dm new file mode 100644 index 000000000000..2038dbee9fcd --- /dev/null +++ b/code/modules/bitrunning/objects/netpod.dm @@ -0,0 +1,479 @@ +#define BASE_DISCONNECT_DAMAGE 40 + +/obj/machinery/netpod + name = "netpod" + + base_icon_state = "netpod" + circuit = /obj/item/circuitboard/machine/netpod + desc = "A link to the netverse. It has an assortment of cables to connect yourself to a virtual domain." + icon = 'icons/obj/machines/bitrunning.dmi' + icon_state = "netpod" + max_integrity = 300 + obj_flags = BLOCKS_CONSTRUCTION + state_open = TRUE + /// Whether we have an ongoing connection + var/connected = FALSE + /// A player selected outfit by clicking the netpod + var/datum/outfit/netsuit = /datum/outfit/job/bitrunner + /// Holds this to see if it needs to generate a new one + var/datum/weakref/avatar_ref + /// The linked quantum server + var/datum/weakref/server_ref + /// The amount of brain damage done from force disconnects + var/disconnect_damage + /// Static list of outfits to select from + var/list/cached_outfits = list() + +/obj/machinery/netpod/Initialize(mapload) + . = ..() + + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/netpod/LateInitialize() + . = ..() + + disconnect_damage = BASE_DISCONNECT_DAMAGE + find_server() + + RegisterSignals(src, list( + COMSIG_PARENT_QDELETING, + COMSIG_MACHINERY_BROKEN, + COMSIG_MACHINERY_POWER_LOST, + ), + PROC_REF(on_broken), + ) + RegisterSignal(src, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(src, COMSIG_ATOM_TAKE_DAMAGE, PROC_REF(on_take_damage)) + + register_context() + update_appearance() + +/obj/machinery/netpod/Destroy() + . = ..() + cached_outfits.Cut() + +/obj/machinery/netpod/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + + if(isnull(held_item)) + context[SCREENTIP_CONTEXT_LMB] = "Select Outfit" + return CONTEXTUAL_SCREENTIP_SET + + if(istype(held_item, /obj/item/crowbar) && occupant) + context[SCREENTIP_CONTEXT_LMB] = "Pry Open" + return CONTEXTUAL_SCREENTIP_SET + + return CONTEXTUAL_SCREENTIP_SET + +/obj/machinery/netpod/update_icon_state() + if(!is_operational) + icon_state = base_icon_state + return ..() + + if(state_open) + icon_state = base_icon_state + "_open_active" + return ..() + + if(panel_open) + icon_state = base_icon_state + "_panel" + return ..() + + icon_state = base_icon_state + "_closed" + if(occupant) + icon_state += "_active" + + return ..() + +/obj/machinery/netpod/MouseDrop_T(mob/target, mob/user) + var/mob/living/carbon/player = user + if(!iscarbon(player)) + return + + if((HAS_TRAIT(player, TRAIT_UI_BLOCKED) && !player.resting) || !Adjacent(player) || !player.Adjacent(target) || !ISADVANCEDTOOLUSER(player) || !is_operational) + return + + close_machine(target) + +/obj/machinery/netpod/crowbar_act(mob/living/user, obj/item/tool) + if(user.istate & ISTATE_HARM) + attack_hand(user) + return TOOL_ACT_TOOLTYPE_SUCCESS + + if(default_pry_open(tool, user) || default_deconstruction_crowbar(tool)) + return TOOL_ACT_TOOLTYPE_SUCCESS + +/obj/machinery/netpod/screwdriver_act(mob/living/user, obj/item/tool) + if(occupant) + balloon_alert(user, "in use!") + return TOOL_ACT_TOOLTYPE_SUCCESS + + if(state_open) + balloon_alert(user, "close first.") + return TOOL_ACT_TOOLTYPE_SUCCESS + + if(default_deconstruction_screwdriver(user, "[base_icon_state]_panel", "[base_icon_state]_closed", tool)) + update_appearance() // sometimes icon doesnt properly update during flick() + ui_close(user) + return TOOL_ACT_TOOLTYPE_SUCCESS + +/obj/machinery/netpod/attack_hand(mob/living/user, list/modifiers) + . = ..() + if(!state_open && user == occupant) + container_resist_act(user) + +/obj/machinery/netpod/Exited(atom/movable/gone, direction) + . = ..() + if(!state_open && gone == occupant) + container_resist_act(gone) + +/obj/machinery/netpod/Exited(atom/movable/gone, direction) + . = ..() + if(!state_open && gone == occupant) + container_resist_act(gone) + +/obj/machinery/netpod/relaymove(mob/living/user, direction) + if(!state_open) + container_resist_act(user) + +/obj/machinery/netpod/container_resist_act(mob/living/user) + user.visible_message(span_notice("[occupant] emerges from [src]!"), + span_notice("You climb out of [src]!"), + span_notice("With a hiss, you hear a machine opening.")) + open_machine() + +/obj/machinery/netpod/open_machine(drop = TRUE, density_to_set = FALSE) + unprotect_and_signal() + playsound(src, 'sound/machines/tramopen.ogg', 60, TRUE, frequency = 65000) + flick("[base_icon_state]_opening", src) + + return ..() + +/obj/machinery/netpod/close_machine(mob/user, density_to_set = TRUE) + if(!state_open || panel_open || !is_operational || !iscarbon(user)) + return + + playsound(src, 'sound/machines/tramclose.ogg', 60, TRUE, frequency = 65000) + flick("[base_icon_state]_closing", src) + ..() + + if(!iscarbon(occupant)) + open_machine() + return + + enter_matrix() + +/obj/machinery/netpod/default_pry_open(obj/item/crowbar, mob/living/pryer) + if(isnull(occupant) || !iscarbon(occupant)) + if(!state_open) + if(panel_open) + return FALSE + open_machine() + else + shut_pod() + + return TRUE + + pryer.visible_message( + span_danger("[pryer] starts prying open [src]!"), + span_notice("You start to pry open [src]."), + span_notice("You hear loud prying on metal.") + ) + playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) + + SEND_SIGNAL(src, COMSIG_BITRUNNER_CROWBAR_ALERT, pryer) + + if(do_after(pryer, 15 SECONDS, src)) + if(!state_open) + open_machine() + + return TRUE + +/obj/machinery/netpod/ui_interact(mob/user, datum/tgui/ui) + if(!is_operational) + return + + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "NetpodOutfits") + ui.set_autoupdate(FALSE) + ui.open() + +/obj/machinery/netpod/ui_data() + var/list/data = list() + + data["netsuit"] = netsuit + return data + +/obj/machinery/netpod/ui_static_data() + var/list/data = list() + + if(!length(cached_outfits)) + cached_outfits += make_outfit_collection("Jobs", subtypesof(/datum/outfit/job)) + + data["collections"] = cached_outfits + + return data + +/obj/machinery/netpod/ui_act(action, params) + . = ..() + if(.) + return TRUE + switch(action) + if("select_outfit") + var/datum/outfit/new_suit = resolve_outfit(params["outfit"]) + if(new_suit) + netsuit = new_suit + return TRUE + + return FALSE + +/// Disconnects the occupant after a certain time so they aren't just hibernating in netpod stasis. A balance change +/obj/machinery/netpod/proc/auto_disconnect() + if(isnull(occupant) || state_open || connected) + return + + if(!iscarbon(occupant)) + open_machine() + return + + var/mob/living/carbon/player = occupant + + player.playsound_local(src, 'sound/effects/splash.ogg', 60, TRUE) + to_chat(player, span_notice("The machine disconnects itself and begins to drain.")) + open_machine() + +/** + * ### Disconnect occupant + * If this goes smoothly, should reconnect a receiving mind to the occupant's body + * + * This is the second stage of the process - if you want to disconn avatars start at the mind first + */ +/obj/machinery/netpod/proc/disconnect_occupant(forced = FALSE) + var/mob/living/mob_occupant = occupant + if(isnull(occupant) || !isliving(occupant)) + return + + connected = FALSE + + if(mob_occupant.stat == DEAD) + open_machine() + return + + mob_occupant.playsound_local(src, "sound/magic/blink.ogg", 25, TRUE) + mob_occupant.set_static_vision(2 SECONDS) + mob_occupant.set_temp_blindness(1 SECONDS) + mob_occupant.Paralyze(2 SECONDS) + + var/heal_time = 1 + if(mob_occupant.health < mob_occupant.maxHealth) + heal_time = (mob_occupant.stat + 2) * 5 + addtimer(CALLBACK(src, PROC_REF(auto_disconnect)), heal_time SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME) + + if(!forced) + return + + mob_occupant.flash_act(override_blindness_check = TRUE, visual = TRUE) + mob_occupant.adjustOrganLoss(ORGAN_SLOT_BRAIN, disconnect_damage) + INVOKE_ASYNC(mob_occupant, TYPE_PROC_REF(/mob/living, emote), "scream") + to_chat(mob_occupant, span_danger("You've been forcefully disconnected from your avatar! Your thoughts feel scrambled!")) + +/** + * ### Enter Matrix + * Finds any current avatars from this chair - or generates a new one + * + * New avatars cost 1 attempt, and this will eject if there's none left + * + * Connects the mind to the avatar if everything is ok + */ +/obj/machinery/netpod/proc/enter_matrix() + var/mob/living/carbon/human/neo = occupant + if(!ishuman(neo) || neo.stat == DEAD || isnull(neo.mind)) + balloon_alert(neo, "invalid occupant.") + return + + var/obj/machinery/quantum_server/server = find_server() + if(isnull(server)) + balloon_alert(neo, "no server connected!") + return + + var/datum/lazy_template/virtual_domain/generated_domain = server.generated_domain + if(isnull(generated_domain) || !server.is_ready) + balloon_alert(neo, "nothing loaded!") + return + + var/mob/living/carbon/current_avatar = avatar_ref?.resolve() + var/obj/structure/hololadder/wayout + if(isnull(current_avatar) || current_avatar.stat != CONSCIOUS) // We need a viable avatar + wayout = server.generate_hololadder() + if(isnull(wayout)) + balloon_alert(neo, "out of bandwidth!") + return + current_avatar = server.generate_avatar(wayout, netsuit) + avatar_ref = WEAKREF(current_avatar) + server.stock_gear(current_avatar, neo) + + neo.set_static_vision(3 SECONDS) + protect_occupant(occupant) + if(!do_after(neo, 2 SECONDS, src)) + return + + // Very invalid + if(QDELETED(neo) || QDELETED(current_avatar) || QDELETED(src)) + return + + // Invalid + if(occupant != neo || isnull(neo.mind) || neo.stat == DEAD || current_avatar.stat == DEAD) + return + + current_avatar.AddComponent( \ + /datum/component/avatar_connection, \ + old_mind = neo.mind, \ + old_body = neo, \ + server = server, \ + pod = src, \ + help_text = generated_domain.help_text, \ + ) + + connected = TRUE + +/// Finds a server and sets the server_ref +/obj/machinery/netpod/proc/find_server() + var/obj/machinery/quantum_server/server = server_ref?.resolve() + if(server) + return server + + server = locate(/obj/machinery/quantum_server) in oview(4, src) + if(isnull(server)) + return + + server_ref = WEAKREF(server) + RegisterSignal(server, COMSIG_BITRUNNER_SERVER_UPGRADED, PROC_REF(on_server_upgraded), override = TRUE) + RegisterSignal(server, COMSIG_BITRUNNER_DOMAIN_COMPLETE, PROC_REF(on_domain_complete), override = TRUE) + + return server + +/// Creates a list of outfit entries for the UI. +/obj/machinery/netpod/proc/make_outfit_collection(identifier, list/outfit_list) + var/list/collection = list( + "name" = identifier, + "outfits" = list() + ) + + for(var/path as anything in outfit_list) + var/datum/outfit/outfit = path + + var/outfit_name = initial(outfit.name) + if(findtext(outfit_name, "(") != 0 || findtext(outfit_name, "-") != 0) // No special variants please + continue + + collection["outfits"] += list(list("path" = path, "name" = outfit_name)) + + return list(collection) + +/// Machine has been broken - handles signals and reverting sprites +/obj/machinery/netpod/proc/on_broken(datum/source) + SIGNAL_HANDLER + + if(!state_open) + open_machine() + + if(occupant) + unprotect_and_signal() + +/// Puts points on the current occupant's card account +/obj/machinery/netpod/proc/on_domain_complete(datum/source, atom/movable/crate, reward_points) + SIGNAL_HANDLER + + if(isnull(occupant) || !connected || !iscarbon(occupant)) + return + + var/mob/living/carbon/player = occupant + + var/datum/bank_account/account = player.get_bank_account() + if(isnull(account)) + return + + account.bitrunning_points += reward_points * 100 + +/obj/machinery/netpod/proc/on_examine(datum/source, mob/examiner, list/examine_text) + SIGNAL_HANDLER + + examine_text += span_infoplain("Drag yourself into the pod to engage the link.") + examine_text += span_infoplain("It has limited resuscitation capabilities. Remaining in the pod can heal some injuries.") + examine_text += span_infoplain("It has a security system that will alert the occupant if it is tampered with.") + + if(isnull(occupant)) + examine_text += span_notice("It is currently unoccupied.") + return + + examine_text += span_notice("It is currently occupied by [occupant].") + examine_text += span_notice("It can be pried open with a crowbar, but its safety mechanisms will alert the occupant.") + + + +/// When the server is upgraded, drops brain damage a little +/obj/machinery/netpod/proc/on_server_upgraded(datum/source, servo_rating) + SIGNAL_HANDLER + + disconnect_damage = BASE_DISCONNECT_DAMAGE * (1 - servo_rating) + +/// Checks the integrity, alerts occupants +/obj/machinery/netpod/proc/on_take_damage(datum/source, damage_amount) + SIGNAL_HANDLER + + if(isnull(occupant)) + return + + var/total = max_integrity - damage_amount + var/integrity = (atom_integrity / total) * 100 + if(integrity > 50) + return + + SEND_SIGNAL(src, COMSIG_BITRUNNER_NETPOD_INTEGRITY) + +/// Puts the occupant in netpod stasis, basically short-circuiting environmental conditions +/obj/machinery/netpod/proc/protect_occupant(mob/living/target) + if(target != occupant) + return + + target.AddComponent(/datum/component/netpod_healing, \ + brute_heal = 4, \ + burn_heal = 4, \ + toxin_heal = 4, \ + clone_heal = 4, \ + blood_heal = 4, \ + ) + + target.playsound_local(src, 'sound/effects/submerge.ogg', 20, TRUE) + target.extinguish_mob() + update_use_power(ACTIVE_POWER_USE) + +/// On unbuckle or break, make sure the occupant ref is null +/obj/machinery/netpod/proc/unprotect_and_signal() + unprotect_occupant(occupant) + SEND_SIGNAL(src, COMSIG_BITRUNNER_SEVER_AVATAR) + +/// Removes the occupant from netpod stasis +/obj/machinery/netpod/proc/unprotect_occupant(mob/living/target) + var/datum/component/netpod_healing/healing_eff = target?.GetComponent(/datum/component/netpod_healing) + if(healing_eff) + qdel(healing_eff) + + update_use_power(IDLE_POWER_USE) + +/// Resolves a path to an outfit. +/obj/machinery/netpod/proc/resolve_outfit(text) + var/path = text2path(text) + if(ispath(path, /datum/outfit)) + return path + +/// Closes the machine without shoving in an occupant +/obj/machinery/netpod/proc/shut_pod() + state_open = FALSE + playsound(src, 'sound/machines/tramclose.ogg', 60, TRUE, frequency = 65000) + flick("[base_icon_state]_closing", src) + set_density(TRUE) + + update_appearance() + +#undef BASE_DISCONNECT_DAMAGE diff --git a/code/modules/bitrunning/objects/quantum_console.dm b/code/modules/bitrunning/objects/quantum_console.dm new file mode 100644 index 000000000000..c918648d010b --- /dev/null +++ b/code/modules/bitrunning/objects/quantum_console.dm @@ -0,0 +1,108 @@ +/obj/machinery/computer/quantum_console + name = "quantum console" + + circuit = /obj/item/circuitboard/computer/quantum_console + icon_keyboard = "mining" + icon_screen = "bitrunning" + req_access = list(ACCESS_MINING) + /// The server this console is connected to. + var/datum/weakref/server_ref + +/obj/machinery/computer/quantum_console/Initialize(mapload, obj/item/circuitboard/circuit) + . = ..() + desc = "Even in the distant year [CURRENT_STATION_YEAR], Nanostrasen is still using REST APIs. How grim." + + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/computer/quantum_console/LateInitialize() + . = ..() + + if(isnull(server_ref?.resolve())) + find_server() + +/obj/machinery/computer/quantum_console/ui_interact(mob/user, datum/tgui/ui) + . = ..() + + if(!is_operational) + return + + if(isnull(server_ref?.resolve())) + find_server() + + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "QuantumConsole") + ui.open() + +/obj/machinery/computer/quantum_console/ui_data() + var/list/data = list() + + var/obj/machinery/quantum_server/server = find_server() + if(isnull(server)) + data["connected"] = FALSE + return data + + data["connected"] = TRUE + data["generated_domain"] = server.generated_domain?.key + data["occupants"] = length(server.avatar_connection_refs) + data["points"] = server.points + data["randomized"] = server.domain_randomized + data["ready"] = server.is_ready && server.is_operational + data["scanner_tier"] = server.scanner_tier + data["retries_left"] = length(server.exit_turfs) - server.retries_spent + + return data + +/obj/machinery/computer/quantum_console/ui_static_data(mob/user) + var/list/data = list() + + var/obj/machinery/quantum_server/server = find_server() + if(isnull(server)) + return data + + data["available_domains"] = server.get_available_domains() + data["avatars"] = server.get_avatar_data() + + return data + +/obj/machinery/computer/quantum_console/ui_act(action, list/params, datum/tgui/ui) + . = ..() + if(.) + return TRUE + + var/obj/machinery/quantum_server/server = find_server() + if(isnull(server)) + return FALSE + + switch(action) + if("random_domain") + var/map_id = server.get_random_domain_id() + if(!map_id) + return TRUE + + server.cold_boot_map(usr, map_id) + return TRUE + if("refresh") + ui.send_full_update() + return TRUE + if("set_domain") + server.cold_boot_map(usr, params["id"]) + return TRUE + if("stop_domain") + server.begin_shutdown(usr) + return TRUE + + return FALSE + +/// Attempts to find a quantum server. +/obj/machinery/computer/quantum_console/proc/find_server() + var/obj/machinery/quantum_server/server = server_ref?.resolve() + if(server) + return server + + for(var/direction in GLOB.cardinals) + var/obj/machinery/quantum_server/nearby_server = locate(/obj/machinery/quantum_server, get_step(src, direction)) + if(nearby_server) + server_ref = WEAKREF(nearby_server) + nearby_server.console_ref = WEAKREF(src) + return nearby_server diff --git a/code/modules/bitrunning/orders/disks.dm b/code/modules/bitrunning/orders/disks.dm new file mode 100644 index 000000000000..ced1dde883a1 --- /dev/null +++ b/code/modules/bitrunning/orders/disks.dm @@ -0,0 +1,26 @@ +/datum/orderable_item/bitrunning_tech + category_index = CATEGORY_BITRUNNING_TECH + +/datum/orderable_item/bitrunning_tech/item_tier1 + cost_per_order = 1000 + item_path = /obj/item/bitrunning_disk/item/tier1 + +/datum/orderable_item/bitrunning_tech/item_tier2 + cost_per_order = 1500 + item_path = /obj/item/bitrunning_disk/item/tier2 + +/datum/orderable_item/bitrunning_tech/item_tier3 + cost_per_order = 2500 + item_path = /obj/item/bitrunning_disk/item/tier3 + +/datum/orderable_item/bitrunning_tech/ability_tier1 + cost_per_order = 1000 + item_path = /obj/item/bitrunning_disk/ability/tier1 + +/datum/orderable_item/bitrunning_tech/ability_tier2 + cost_per_order = 1800 + item_path = /obj/item/bitrunning_disk/ability/tier2 + +/datum/orderable_item/bitrunning_tech/ability_tier3 + cost_per_order = 3200 + item_path = /obj/item/bitrunning_disk/ability/tier3 diff --git a/code/modules/bitrunning/orders/flair.dm b/code/modules/bitrunning/orders/flair.dm new file mode 100644 index 000000000000..c578c884d23c --- /dev/null +++ b/code/modules/bitrunning/orders/flair.dm @@ -0,0 +1,44 @@ +/datum/orderable_item/bitrunning_flair + category_index = CATEGORY_BITRUNNING_FLAIR + +/datum/orderable_item/bitrunning_flair/cornchips + item_path = /obj/item/food/cornchips + cost_per_order = 100 + +/datum/orderable_item/bitrunning_flair/mountain_wind + item_path = /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind + cost_per_order = 100 + +/datum/orderable_item/bitrunning_flair/pwr_game + item_path = /obj/item/reagent_containers/cup/soda_cans/pwr_game + cost_per_order = 200 + +/datum/orderable_item/bitrunning_flair/grey_bull + item_path = /obj/item/reagent_containers/cup/soda_cans/grey_bull + cost_per_order = 200 + +/datum/orderable_item/bitrunning_flair/medkit + item_path = /obj/item/storage/medkit/brute + desc = "Don't beat yourself up, it's just a game!" + cost_per_order = 500 + +/datum/orderable_item/bitrunning_flair/medkit_fire + item_path = /obj/item/storage/medkit/fire + desc = "Great after heated gaming sessions." + cost_per_order = 500 + +/datum/orderable_item/bitrunning_flair/oval_sunglasses + item_path = /obj/item/clothing/glasses/sunglasses/oval + cost_per_order = 1000 + +/datum/orderable_item/bitrunning_flair/trenchcoat + item_path = /obj/item/clothing/suit/jacket/trenchcoat + cost_per_order = 1000 + +/datum/orderable_item/bitrunning_flair/jackboots + item_path = /obj/item/clothing/shoes/jackboots + cost_per_order = 1000 + +/datum/orderable_item/bitrunning_flair/neon_lining + item_path = /obj/item/stack/neon_lining/twenty + cost_per_order = 250 diff --git a/code/modules/bitrunning/orders/tech.dm b/code/modules/bitrunning/orders/tech.dm new file mode 100644 index 000000000000..286e9817f3c5 --- /dev/null +++ b/code/modules/bitrunning/orders/tech.dm @@ -0,0 +1,23 @@ +/datum/orderable_item/bepis + category_index = CATEGORY_BEPIS + +/datum/orderable_item/bepis/circuit_stack + item_path = /obj/item/stack/circuit_stack/full + cost_per_order = 150 + +/datum/orderable_item/bepis/survival_pen + item_path = /obj/item/pen/survival + cost_per_order = 150 + +/datum/orderable_item/bepis/party_sleeper + item_path = /obj/item/circuitboard/machine/sleeper/party + cost_per_order = 750 + desc = "A decommissioned sleeper circuitboard, repurposed for recreational purposes." + +/datum/orderable_item/bepis/sprayoncan + item_path = /obj/item/toy/sprayoncan + cost_per_order = 750 + +/datum/orderable_item/bepis/pristine + item_path = /obj/item/disk/design_disk/bepis/remove_tech + cost_per_order = 1000 diff --git a/code/modules/bitrunning/server/loot.dm b/code/modules/bitrunning/server/loot.dm new file mode 100644 index 000000000000..29b730aae784 --- /dev/null +++ b/code/modules/bitrunning/server/loot.dm @@ -0,0 +1,123 @@ +/// Handles calculating rewards based on number of players, parts, threats, etc +/obj/machinery/quantum_server/proc/calculate_rewards() + var/rewards_base = 0.8 + + if(domain_randomized) + rewards_base += 0.2 + + rewards_base += servo_bonus + + rewards_base += (domain_threats * 2) + + for(var/index in 2 to length(avatar_connection_refs)) + rewards_base += multiplayer_bonus + + return rewards_base + +/// Generates a reward based on the given domain +/obj/machinery/quantum_server/proc/generate_loot() + if(!length(receive_turfs) && !locate_receive_turfs()) + return FALSE + + points += generated_domain.reward_points + playsound(src, 'sound/machines/terminal_success.ogg', 30, 2) + + var/turf/dest_turf = pick(receive_turfs) + if(isnull(dest_turf)) + stack_trace("Failed to find a turf to spawn loot crate on.") + return FALSE + + var/bonus = calculate_rewards() + + var/obj/item/paper/certificate = new() + certificate.add_raw_text(get_completion_certificate()) + certificate.name = "certificate of domain completion" + certificate.update_appearance() + + var/obj/structure/closet/crate/secure/bitrunning/decrypted/reward_crate = new(dest_turf, generated_domain, bonus) + reward_crate.manifest = certificate + reward_crate.update_appearance() + + spark_at_location(reward_crate) + return TRUE + +/// Returns the markdown text containing domain completion information +/obj/machinery/quantum_server/proc/get_completion_certificate() + var/base_points = generated_domain.reward_points + if(domain_randomized) + base_points -= 1 + + var/bonuses = calculate_rewards() + + var/time_difference = world.time - generated_domain.start_time + + var/completion_time = "### Completion Time: [DisplayTimeText(time_difference)]\n" + + var/grade = "\n---\n\n# Rating: [grade_completion(generated_domain.difficulty, domain_threats, base_points, domain_randomized, time_difference)]" + + var/text = "# Certificate of Domain Completion\n\n---\n\n" + + text += "### [generated_domain.name][domain_randomized ? " (Randomized)" : ""]\n" + text += "- **Difficulty:** [generated_domain.difficulty]\n" + text += "- **Threats:** [domain_threats]\n" + text += "- **Base Points:** [base_points][domain_randomized ? " +1" : ""]\n\n" + text += "- **Total Bonus:** [bonuses]x\n\n" + + if(bonuses <= 1) + text += completion_time + text += grade + return text + + text += "### Bonuses\n" + if(domain_randomized) + text += "- **Randomized:** + 0.2\n" + + if(length(avatar_connection_refs) > 1) + text += "- **Multiplayer:** + [(length(avatar_connection_refs) - 1) * multiplayer_bonus]\n" + + if(domain_threats > 0) + text += "- **Threats:** + [domain_threats * 2]\n" + + var/servo_rating = servo_bonus + + if(servo_rating > 0.2) + text += "- **Components:** + [servo_rating]\n" + + text += completion_time + text += grade + + return text + +/// Grades the player's run based on several factors +/obj/machinery/quantum_server/proc/grade_completion(difficulty, threats, points, randomized, completion_time) + var/score = threats * 5 + score += points + score += randomized ? 1 : 0 + + var/base = difficulty + 1 + var/time_score = 1 + + if(completion_time <= 1 MINUTES) + time_score = 10 + else if(completion_time <= 2 MINUTES) + time_score = 5 + else if(completion_time <= 5 MINUTES) + time_score = 3 + else if(completion_time <= 10 MINUTES) + time_score = 2 + else + time_score = 1 + + score += time_score * base + + switch(score) + if(1 to 4) + return "D" + if(5 to 7) + return "C" + if(8 to 10) + return "B" + if(11 to 13) + return "A" + else + return "S" diff --git a/code/modules/bitrunning/server/map_handling.dm b/code/modules/bitrunning/server/map_handling.dm new file mode 100644 index 000000000000..b0500a400745 --- /dev/null +++ b/code/modules/bitrunning/server/map_handling.dm @@ -0,0 +1,184 @@ + +/// Gives all current occupants a notification that the server is going down +/obj/machinery/quantum_server/proc/begin_shutdown(mob/user) + if(isnull(generated_domain)) + return + + if(!length(avatar_connection_refs)) + balloon_alert(user, "powering down domain...") + playsound(src, 'sound/machines/terminal_off.ogg', 40, 2) + reset() + return + + balloon_alert(user, "notifying clients...") + playsound(src, 'sound/machines/terminal_alert.ogg', 100, TRUE) + user.visible_message( + span_danger("[user] begins depowering the server!"), + span_notice("You start disconnecting clients..."), + span_danger("You hear frantic keying on a keyboard."), + ) + + SEND_SIGNAL(src, COMSIG_BITRUNNER_SHUTDOWN_ALERT, user) + + if(!do_after(user, 20 SECONDS, src)) + return + + reset() + +/** + * ### Quantum Server Cold Boot + * Procedurally links the 3 booting processes together. + * + * This is the starting point if you have an id. Does validation and feedback on steps + */ +/obj/machinery/quantum_server/proc/cold_boot_map(mob/user, map_key) + if(!is_ready) + return FALSE + + if(isnull(map_key)) + balloon_alert(user, "no domain specified.") + return FALSE + + if(generated_domain) + balloon_alert(user, "stop the current domain first.") + return FALSE + + if(length(avatar_connection_refs)) + balloon_alert(user, "all clients must disconnect!") + return FALSE + + is_ready = FALSE + playsound(src, 'sound/machines/terminal_processing.ogg', 30, 2) + + if(!initialize_domain(map_key) || !initialize_safehouse() || !initialize_map_items()) + balloon_alert(user, "initialization failed.") + scrub_vdom() + is_ready = TRUE + return FALSE + + is_ready = TRUE + playsound(src, 'sound/machines/terminal_insert_disc.ogg', 30, 2) + balloon_alert(user, "domain loaded.") + generated_domain.start_time = world.time + points -= generated_domain.cost + update_use_power(ACTIVE_POWER_USE) + update_appearance() + + return TRUE + +/// Initializes a new domain if the given key is valid and the user has enough points +/obj/machinery/quantum_server/proc/initialize_domain(map_key) + var/datum/lazy_template/virtual_domain/to_load + + for(var/datum/lazy_template/virtual_domain/available as anything in subtypesof(/datum/lazy_template/virtual_domain)) + if(map_key != initial(available.key) || points < initial(available.cost)) + continue + to_load = available + break + + if(isnull(to_load)) + return FALSE + + generated_domain = new to_load() + RegisterSignal(generated_domain, COMSIG_LAZY_TEMPLATE_LOADED, PROC_REF(on_template_loaded)) + generated_domain.lazy_load() + + return TRUE + +/// Loads in necessary map items, sets mutation targets, etc +/obj/machinery/quantum_server/proc/initialize_map_items() + var/turf/goal_turfs = list() + var/turf/crate_turfs = list() + + for(var/thing in GLOB.landmarks_list) + if(istype(thing, /obj/effect/landmark/bitrunning/hololadder_spawn)) + exit_turfs += get_turf(thing) + qdel(thing) // i'm worried about multiple servers getting confused so lets clean em up + continue + + if(istype(thing, /obj/effect/landmark/bitrunning/cache_goal_turf)) + var/turf/tile = get_turf(thing) + goal_turfs += tile + RegisterSignal(tile, COMSIG_ATOM_ENTERED, PROC_REF(on_goal_turf_entered)) + RegisterSignal(tile, COMSIG_PARENT_EXAMINE, PROC_REF(on_goal_turf_examined)) + qdel(thing) + continue + + if(istype(thing, /obj/effect/landmark/bitrunning/cache_spawn)) + crate_turfs += get_turf(thing) + qdel(thing) + continue + + if(!length(exit_turfs)) + CRASH("Failed to find exit turfs on generated domain.") + if(!length(goal_turfs)) + CRASH("Failed to find send turfs on generated domain.") + + if(length(crate_turfs)) + shuffle_inplace(crate_turfs) + new /obj/structure/closet/crate/secure/bitrunning/encrypted(pick(crate_turfs)) + + return TRUE +#define ONLY_TURF 1 // There should only ever be one turf at the bottom left of the map. + +/// Loads the safehouse +/obj/machinery/quantum_server/proc/initialize_safehouse() + var/turf/safehouse_load_turf = list() + for(var/obj/effect/landmark/bitrunning/safehouse_spawn/spawner in GLOB.landmarks_list) + safehouse_load_turf += get_turf(spawner) + qdel(spawner) + break + + if(!length(safehouse_load_turf)) + CRASH("Failed to find safehouse load landmark on map.") + + var/datum/map_template/safehouse/safehouse = new generated_domain.safehouse_path() + safehouse.load(safehouse_load_turf[ONLY_TURF]) + generated_safehouse = safehouse + + return TRUE + +/// Stops the current virtual domain and disconnects all users +/obj/machinery/quantum_server/proc/reset(fast = FALSE) + is_ready = FALSE + + SEND_SIGNAL(src, COMSIG_BITRUNNER_SEVER_AVATAR) + + if(!fast) + notify_spawned_threats() + addtimer(CALLBACK(src, PROC_REF(scrub_vdom)), 15 SECONDS, TIMER_UNIQUE|TIMER_STOPPABLE) + else + scrub_vdom() // used in unit testing, no need to wait for callbacks + + addtimer(CALLBACK(src, PROC_REF(cool_off)), min(server_cooldown_time * capacitor_coefficient), TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME) + update_appearance() + + update_use_power(IDLE_POWER_USE) + domain_randomized = FALSE + domain_threats = 0 + retries_spent = 0 + +/// Deletes all the tile contents +/obj/machinery/quantum_server/proc/scrub_vdom() + SEND_SIGNAL(src, COMSIG_BITRUNNER_SEVER_AVATAR) // just in case + + if(length(generated_domain.reservations)) + var/datum/turf_reservation/res = generated_domain.reservations[1] + res.Release() + + var/list/datum/weakref/creatures = spawned_threat_refs + mutation_candidate_refs + for(var/datum/weakref/creature_ref as anything in creatures) + var/mob/living/creature = creature_ref?.resolve() + if(isnull(creature)) + continue + + creature.dust() // sometimes mobs just don't die + + avatar_connection_refs.Cut() + exit_turfs = list() + generated_domain = null + generated_safehouse = null + mutation_candidate_refs.Cut() + spawned_threat_refs.Cut() + +#undef ONLY_TURF diff --git a/code/modules/bitrunning/server/obj_generation.dm b/code/modules/bitrunning/server/obj_generation.dm new file mode 100644 index 000000000000..221308e04878 --- /dev/null +++ b/code/modules/bitrunning/server/obj_generation.dm @@ -0,0 +1,101 @@ +/// Generates a new avatar for the bitrunner. +/obj/machinery/quantum_server/proc/generate_avatar(obj/structure/hololadder/wayout, datum/outfit/netsuit) + var/mob/living/carbon/human/avatar = new(wayout.loc) + + var/outfit_path = generated_domain.forced_outfit || netsuit + var/datum/outfit/to_wear = new outfit_path() + + to_wear.belt = /obj/item/bitrunning_host_monitor + to_wear.glasses = null + to_wear.gloves = null + to_wear.l_hand = null + to_wear.l_pocket = null + to_wear.r_hand = null + to_wear.r_pocket = null + to_wear.suit = null + to_wear.suit_store = null + + avatar.equipOutfit(to_wear, visualsOnly = TRUE) + + var/thing = avatar.get_active_held_item() + if(!isnull(thing)) + qdel(thing) + + thing = avatar.get_inactive_held_item() + if(!isnull(thing)) + qdel(thing) + + var/obj/item/storage/backpack/bag = avatar.back + if(istype(bag)) + QDEL_LIST(bag.contents) + + bag.contents += list( + new /obj/item/storage/box/survival, + new /obj/item/storage/medkit/regular, + new /obj/item/flashlight, + ) + + var/obj/item/card/id/outfit_id = avatar.wear_id + if(outfit_id) + outfit_id.assignment = "Bit Avatar" + outfit_id.registered_name = avatar.real_name + + outfit_id.registered_account = new() + outfit_id.registered_account.replaceable = FALSE + + SSid_access.apply_trim_to_card(outfit_id, /datum/id_trim/bit_avatar) + + return avatar + +/// Generates a new hololadder for the bitrunner. Effectively a respawn attempt. +/obj/machinery/quantum_server/proc/generate_hololadder() + if(!length(exit_turfs)) + return + + if(retries_spent >= length(exit_turfs)) + return + + var/turf/destination + for(var/turf/dest_turf in exit_turfs) + if(!locate(/obj/structure/hololadder) in dest_turf) + destination = dest_turf + break + + if(isnull(destination)) + return + + var/obj/structure/hololadder/wayout = new(destination) + if(isnull(wayout)) + return + + retries_spent += 1 + + return wayout + +/// Scans over neo's contents for bitrunning tech disks. Loads the items or abilities onto the avatar. +/obj/machinery/quantum_server/proc/stock_gear(mob/living/carbon/human/avatar, mob/living/carbon/human/neo) + var/failed = FALSE + + for(var/obj/item/bitrunning_disk/disk in neo.get_contents()) + if(istype(disk, /obj/item/bitrunning_disk/ability)) + var/obj/item/bitrunning_disk/ability/ability_disk = disk + + if(isnull(ability_disk.granted_action)) + failed = TRUE + continue + + var/datum/action/our_action = new ability_disk.granted_action() + our_action.Grant(avatar) + continue + + if(istype(disk, /obj/item/bitrunning_disk/item)) + var/obj/item/bitrunning_disk/item/item_disk = disk + + if(isnull(item_disk.granted_item)) + failed = TRUE + continue + + avatar.put_in_hands(new item_disk.granted_item()) + + if(failed) + to_chat(neo, span_warning("One of your disks failed to load. You must activate them to make a selection.")) diff --git a/code/modules/bitrunning/server/quantum_server.dm b/code/modules/bitrunning/server/quantum_server.dm new file mode 100644 index 000000000000..43621cf5a922 --- /dev/null +++ b/code/modules/bitrunning/server/quantum_server.dm @@ -0,0 +1,152 @@ +/** + * The base object for the quantum server + */ +/obj/machinery/quantum_server + name = "quantum server" + + circuit = /obj/item/circuitboard/machine/quantum_server + density = TRUE + desc = "A hulking computational machine designed to fabricate virtual domains." + icon = 'icons/obj/machines/bitrunning.dmi' + base_icon_state = "qserver" + icon_state = "qserver" + /// Affects server cooldown efficiency + var/capacitor_coefficient = 1 + /// The loaded map template, map_template/virtual_domain + var/datum/lazy_template/virtual_domain/generated_domain + /// The loaded safehouse, map_template/safehouse + var/datum/map_template/safehouse/generated_safehouse + /// The connected console + var/datum/weakref/console_ref + /// If the current domain was a random selection + var/domain_randomized = FALSE + /// If any threats were spawned, adds to rewards + var/domain_threats = 0 + /// Prevents multiple user actions. Handled by loading domains and cooldowns + var/is_ready = TRUE + /// List of available domains + var/list/available_domains = list() + /// Current plugged in users + var/list/datum/weakref/avatar_connection_refs = list() + /// Cached list of mutable mobs in zone for cybercops + var/list/datum/weakref/mutation_candidate_refs = list() + /// Any ghosts that have spawned in + var/list/datum/weakref/spawned_threat_refs = list() + /// Scales loot with extra players + var/multiplayer_bonus = 1.1 + ///The radio the console can speak into + var/obj/item/radio/radio + /// The amount of points in the system, used to purchase maps + var/points = 0 + /// Keeps track of the number of times someone has built a hololadder + var/retries_spent = 0 + /// Changes how much info is available on the domain + var/scanner_tier = 1 + /// Length of time it takes for the server to cool down after resetting. Here to give runners downtime so their faces don't get stuck like that + var/server_cooldown_time = 3 MINUTES + /// Applies bonuses to rewards etc + var/servo_bonus = 0 + /// The turfs we can place a hololadder on. + var/turf/exit_turfs = list() + /// The turfs on station where we generate loot. + var/turf/receive_turfs = list() + +/obj/machinery/quantum_server/Initialize(mapload) + . = ..() + + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/quantum_server/LateInitialize() + . = ..() + + if(isnull(console_ref)) + find_console() + + radio = new(src) + radio.set_frequency(FREQ_SUPPLY) + radio.subspace_transmission = TRUE + radio.canhear_range = 0 + radio.recalculateChannels() + + RegisterSignals(src, list(COMSIG_MACHINERY_BROKEN, COMSIG_MACHINERY_POWER_LOST), PROC_REF(on_broken)) + RegisterSignal(src, COMSIG_PARENT_QDELETING, PROC_REF(on_delete)) + RegisterSignal(src, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(src, COMSIG_BITRUNNER_SPAWN_GLITCH, PROC_REF(on_threat_created)) + + // This further gets sorted in the client by cost so it's random and grouped + available_domains = shuffle(subtypesof(/datum/lazy_template/virtual_domain)) + +/obj/machinery/quantum_server/Destroy(force) + . = ..() + + available_domains.Cut() + mutation_candidate_refs.Cut() + avatar_connection_refs.Cut() + spawned_threat_refs.Cut() + QDEL_NULL(exit_turfs) + QDEL_NULL(receive_turfs) + QDEL_NULL(generated_domain) + QDEL_NULL(generated_safehouse) + QDEL_NULL(radio) + +/obj/machinery/quantum_server/update_appearance(updates) + if(isnull(generated_domain) || !is_operational) + set_light(0) + return ..() + + set_light_color(is_ready ? LIGHT_COLOR_BABY_BLUE : LIGHT_COLOR_FIRE) + set_light(2, 1.5) + + return ..() + +/obj/machinery/quantum_server/update_icon_state() + if(isnull(generated_domain) || !is_operational) + icon_state = base_icon_state + return ..() + + icon_state = "[base_icon_state]_[is_ready ? "on" : "off"]" + return ..() + +/obj/machinery/quantum_server/crowbar_act(mob/living/user, obj/item/crowbar) + . = ..() + + if(!is_ready) + balloon_alert(user, "it's scalding hot!") + return TRUE + if(length(avatar_connection_refs)) + balloon_alert(user, "all clients must disconnect!") + return TRUE + if(default_deconstruction_crowbar(crowbar)) + return TRUE + return FALSE + +/obj/machinery/quantum_server/screwdriver_act(mob/living/user, obj/item/screwdriver) + . = ..() + + if(!is_ready) + balloon_alert(user, "it's scalding hot!") + return TRUE + if(default_deconstruction_screwdriver(user, "[base_icon_state]_panel", icon_state, screwdriver)) + return TRUE + return FALSE + +/obj/machinery/quantum_server/RefreshParts() + . = ..() + + var/capacitor_rating = 1.15 + var/datum/stock_part/capacitor/cap = locate() in component_parts + capacitor_rating -= cap.tier * 0.15 + + capacitor_coefficient = capacitor_rating + + var/datum/stock_part/scanning_module/scanner = locate() in component_parts + if(scanner) + scanner_tier = scanner.tier + + var/servo_rating = 0 + for(var/datum/stock_part/manipulator/servo in component_parts) + servo_rating += servo.tier * 0.1 + + servo_bonus = servo_rating + + SEND_SIGNAL(src, COMSIG_BITRUNNER_SERVER_UPGRADED, servo_rating) diff --git a/code/modules/bitrunning/server/signal_handlers.dm b/code/modules/bitrunning/server/signal_handlers.dm new file mode 100644 index 000000000000..b0464b351faf --- /dev/null +++ b/code/modules/bitrunning/server/signal_handlers.dm @@ -0,0 +1,107 @@ +/// If broken via signal, disconnects all users +/obj/machinery/quantum_server/proc/on_broken(datum/source) + SIGNAL_HANDLER + + if(isnull(generated_domain)) + return + + SEND_SIGNAL(src, COMSIG_BITRUNNER_SEVER_AVATAR) + +/// Whenever a corpse spawner makes a new corpse, add it to the list of potential mutations +/obj/machinery/quantum_server/proc/on_corpse_spawned(datum/source, mob/living/corpse) + SIGNAL_HANDLER + + mutation_candidate_refs.Add(WEAKREF(corpse)) + +/// Being qdeleted - make sure the circuit and connected mobs go with it +/obj/machinery/quantum_server/proc/on_delete(datum/source) + SIGNAL_HANDLER + + if(generated_domain) + SEND_SIGNAL(src, COMSIG_BITRUNNER_SEVER_AVATAR) + scrub_vdom() + + if(is_ready) + return + // in case they're trying to cheese cooldown + var/obj/item/circuitboard/machine/quantum_server/circuit = locate(/obj/item/circuitboard/machine/quantum_server) in contents + if(circuit) + qdel(circuit) + +/// Handles examining the server. Shows cooldown time and efficiency. +/obj/machinery/quantum_server/proc/on_examine(datum/source, mob/examiner, list/examine_text) + SIGNAL_HANDLER + + examine_text += span_infoplain("Can be resource intensive to run. Ensure adequate power supply.") + + if(capacitor_coefficient < 1) + examine_text += span_infoplain("Its coolant capacity reduces cooldown time by [(1 - capacitor_coefficient) * 100]%.") + + if(servo_bonus > 0.2) + examine_text += span_infoplain("Its manipulation potential is increasing rewards by [servo_bonus]x.") + examine_text += span_infoplain("Injury from unsafe ejection reduced [servo_bonus * 100]%.") + + if(!is_ready) + examine_text += span_notice("It is currently cooling down. Give it a few moments.") + return + +/// Whenever something enters the send tiles, check if it's a loot crate. If so, alert players. +/obj/machinery/quantum_server/proc/on_goal_turf_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs) + SIGNAL_HANDLER + + if(!istype(arrived, /obj/structure/closet/crate/secure/bitrunning/encrypted)) + return + + var/obj/structure/closet/crate/secure/bitrunning/encrypted/loot_crate = arrived + if(!istype(loot_crate)) + return + + for(var/mob/person in loot_crate.contents) + if(isnull(person.mind)) + person.forceMove(get_turf(loot_crate)) + + var/datum/component/avatar_connection/connection = person.GetComponent(/datum/component/avatar_connection) + connection?.full_avatar_disconnect() + + spark_at_location(loot_crate) + qdel(loot_crate) + SEND_SIGNAL(src, COMSIG_BITRUNNER_DOMAIN_COMPLETE, arrived, generated_domain.reward_points) + generate_loot() + +/// Handles examining the server. Shows cooldown time and efficiency. +/obj/machinery/quantum_server/proc/on_goal_turf_examined(datum/source, mob/examiner, list/examine_text) + SIGNAL_HANDLER + + examine_text += span_info("Beneath your gaze, the floor pulses subtly with streams of encoded data.") + examine_text += span_info("It seems to be part of the location designated for retrieving encrypted payloads.") + +/// Scans over the inbound created_atoms from lazy templates +/obj/machinery/quantum_server/proc/on_template_loaded(datum/lazy_template/source, list/created_atoms) + SIGNAL_HANDLER + + for(var/thing in created_atoms) + if(isliving(thing)) // so we can mutate them + var/mob/living/creature = thing + + if(creature.can_be_cybercop) + mutation_candidate_refs.Add(WEAKREF(creature)) + continue + + if(istype(thing, /obj/effect/mob_spawn/ghost_role)) // so we get threat alerts + RegisterSignal(thing, COMSIG_GHOSTROLE_SPAWNED, PROC_REF(on_threat_created)) + continue + + if(istype(thing, /obj/effect/mob_spawn/corpse)) // corpses are valid targets too + var/obj/effect/mob_spawn/corpse/spawner = thing + + mutation_candidate_refs.Add(spawner.spawned_mob_ref) + + UnregisterSignal(source, COMSIG_LAZY_TEMPLATE_LOADED) + +/// Handles when cybercops are summoned into the area or ghosts click a ghost role spawner +/obj/machinery/quantum_server/proc/on_threat_created(datum/source, mob/living/threat) + SIGNAL_HANDLER + + domain_threats += 1 + spawned_threat_refs.Add(WEAKREF(threat)) + SEND_SIGNAL(src, COMSIG_BITRUNNER_THREAT_CREATED) // notify players diff --git a/code/modules/bitrunning/server/util.dm b/code/modules/bitrunning/server/util.dm new file mode 100644 index 000000000000..1d35e86de509 --- /dev/null +++ b/code/modules/bitrunning/server/util.dm @@ -0,0 +1,142 @@ +#define REDACTED "???" +#define MAX_DISTANCE 4 // How far crates can spawn from the server + +/// Resets the cooldown state and updates icons +/obj/machinery/quantum_server/proc/cool_off() + is_ready = TRUE + update_appearance() + radio.talk_into(src, "Thermal systems within operational parameters. Proceeding to domain configuration.", RADIO_CHANNEL_SUPPLY) + +/// Attempts to connect to a quantum console +/obj/machinery/quantum_server/proc/find_console() + var/obj/machinery/computer/quantum_console/console = console_ref?.resolve() + if(console) + return console + + for(var/direction in GLOB.cardinals) + var/obj/machinery/computer/quantum_console/nearby_console = locate(/obj/machinery/computer/quantum_console, get_step(src, direction)) + if(nearby_console) + console_ref = WEAKREF(nearby_console) + nearby_console.server_ref = WEAKREF(src) + return nearby_console + +/// Compiles a list of available domains. +/obj/machinery/quantum_server/proc/get_available_domains() + var/list/levels = list() + + for(var/datum/lazy_template/virtual_domain/domain as anything in available_domains) + if(initial(domain.test_only)) + continue + var/can_view = initial(domain.difficulty) < scanner_tier && initial(domain.cost) <= points + 5 + var/can_view_reward = initial(domain.difficulty) < (scanner_tier + 1) && initial(domain.cost) <= points + 3 + + levels += list(list( + "cost" = initial(domain.cost), + "desc" = can_view ? initial(domain.desc) : "Limited scanning capabilities. Cannot infer domain details.", + "difficulty" = initial(domain.difficulty), + "id" = initial(domain.key), + "name" = can_view ? initial(domain.name) : REDACTED, + "reward" = can_view_reward ? initial(domain.reward_points) : REDACTED, + )) + + return levels + +/// If there are hosted minds, attempts to get a list of their current virtual bodies w/ vitals +/obj/machinery/quantum_server/proc/get_avatar_data() + var/list/hosted_avatars = list() + + for(var/datum/weakref/avatar_ref in avatar_connection_refs) + var/datum/component/avatar_connection/connection = avatar_ref.resolve() + if(isnull(connection)) + avatar_connection_refs.Remove(connection) + continue + + var/mob/living/creature = connection.parent + var/mob/living/pilot = connection.old_body_ref?.resolve() + + hosted_avatars += list(list( + "health" = creature.health, + "name" = creature.name, + "pilot" = pilot, + "brute" = creature.get_damage_amount(BRUTE), + "burn" = creature.get_damage_amount(BURN), + "tox" = creature.get_damage_amount(TOX), + "oxy" = creature.get_damage_amount(OXY), + )) + + return hosted_avatars + +/// Gets a random available domain given the current points. Weighted towards higher cost domains. +/obj/machinery/quantum_server/proc/get_random_domain_id() + if(points < 1) + return + + var/list/random_domains = list() + var/total_cost = 0 + + for(var/datum/lazy_template/virtual_domain/available as anything in subtypesof(/datum/lazy_template/virtual_domain)) + var/init_cost = initial(available.cost) + if(!initial(available.test_only) && init_cost > 0 && init_cost < 4 && init_cost <= points) + random_domains += list(list( + cost = init_cost, + id = initial(available.key), + )) + + var/random_value = rand(0, total_cost) + var/accumulated_cost = 0 + + for(var/available as anything in random_domains) + accumulated_cost += available["cost"] + if(accumulated_cost >= random_value) + domain_randomized = TRUE + return available["id"] + +/// Gets all mobs originally generated by the loaded domain and returns a list that are capable of being antagged +/obj/machinery/quantum_server/proc/get_valid_domain_targets() + // A: No one is playing + // B: The domain is not loaded + // C: The domain is shutting down + // D: There are no mobs + if(!length(avatar_connection_refs) || isnull(generated_domain) || !is_ready || !is_operational || !length(mutation_candidate_refs)) + return list() + + for(var/datum/weakref/creature_ref as anything in mutation_candidate_refs) + var/mob/living/creature = creature_ref.resolve() + if(isnull(creature) || creature.mind) + mutation_candidate_refs.Remove(creature_ref) + + return shuffle(mutation_candidate_refs) + +/// Locates any turfs with crate out landmarks +/obj/machinery/quantum_server/proc/locate_receive_turfs() + for(var/obj/effect/landmark/bitrunning/station_reward_spawn/spawner in GLOB.landmarks_list) + if(IN_GIVEN_RANGE(src, spawner, MAX_DISTANCE)) + receive_turfs += get_turf(spawner) + qdel(spawner) + + return length(receive_turfs) > 0 + +/// Finds any mobs with minds in the zones and gives them the bad news +/obj/machinery/quantum_server/proc/notify_spawned_threats() + for(var/datum/weakref/baddie_ref as anything in spawned_threat_refs) + var/mob/living/baddie = baddie_ref.resolve() + if(isnull(baddie) || baddie.stat >= UNCONSCIOUS || isnull(baddie.mind)) + continue + + baddie.throw_alert( + ALERT_BITRUNNER_RESET, + /atom/movable/screen/alert/bitrunning/qserver_threat_deletion, + new_master = src, + ) + + to_chat(baddie, span_userdanger("You have been flagged for deletion! Thank you for your service.")) + +/// Do some magic teleport sparks +/obj/machinery/quantum_server/proc/spark_at_location(obj/crate) + playsound(crate, 'sound/magic/blink.ogg', 50, TRUE) + var/datum/effect_system/spark_spread/quantum/sparks = new() + sparks.set_up(5, 1, get_turf(crate)) + sparks.start() + +#undef REDACTED +#undef MAX_DISTANCE diff --git a/code/modules/bitrunning/turfs.dm b/code/modules/bitrunning/turfs.dm new file mode 100644 index 000000000000..4c35153311e5 --- /dev/null +++ b/code/modules/bitrunning/turfs.dm @@ -0,0 +1,13 @@ +/turf/open/floor/bitrunning_transport + name = "circuit floor" + desc = "Looks complex. You can see the circuits running through the floor." + icon_state = "bitrunning" + +/turf/closed/indestructible/binary + name = "tear in the fabric of reality" + icon = 'icons/turf/floors.dmi' + icon_state = "binary" + +/obj/effect/baseturf_helper/virtual_domain + name = "virtual domain baseturf editor" + baseturf = /turf/open/indestructible/binary diff --git a/code/modules/bitrunning/virtual_domain/domains/ash_drake.dm b/code/modules/bitrunning/virtual_domain/domains/ash_drake.dm new file mode 100644 index 000000000000..02bb91abc588 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/ash_drake.dm @@ -0,0 +1,18 @@ +/datum/lazy_template/virtual_domain/ash_drake + name = "Ashen Inferno" + cost = BITRUNNER_COST_MEDIUM + desc = "Home of the ash drake, a powerful dragon that scours the surface of Lavaland." + difficulty = BITRUNNER_DIFFICULTY_MEDIUM + forced_outfit = /datum/outfit/job/miner + key = "ash_drake" + map_name = "ash_drake" + reward_points = BITRUNNER_REWARD_MEDIUM + safehouse_path = /datum/map_template/safehouse/lavaland_boss + +/mob/living/simple_animal/hostile/megafauna/dragon/virtual_domain + can_be_cybercop = FALSE + crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + health = 1600 + loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + maxHealth = 1600 + true_spawn = FALSE diff --git a/code/modules/bitrunning/virtual_domain/domains/beach_bar.dm b/code/modules/bitrunning/virtual_domain/domains/beach_bar.dm new file mode 100644 index 000000000000..871c2cb1338e --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/beach_bar.dm @@ -0,0 +1,22 @@ +/datum/lazy_template/virtual_domain/beach_bar + name = "Beach Bar" + desc = "A cheerful seaside haven where friendly skeletons serve up drinks. Say, how'd you guys get so dead?" + extra_loot = list(/obj/item/toy/beach_ball = 1) + help_text = "This place is running on a skeleton crew, and they don't seem to be too keen to share details. \ + Maybe a few drinks of liquid charm will get the spirits up. As the saying goes, if you can't beat 'em, join 'em." + key = "beach_bar" + map_name = "beach_bar" + safehouse_path = /datum/map_template/safehouse/mine + +/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain + name = "pina colada" + desc = "Whose drink is this? Not yours, that's for sure. Well, it's not like they're going to miss it." + list_reagents = list(/datum/reagent/consumable/ethanol/pina_colada = 30) + +/obj/item/reagent_containers/cup/glass/drinkingglass/virtual_domain/Initialize(mapload, vol) + . = ..() + + AddComponent(/datum/component/bitrunning_points, \ + signal_type = COMSIG_GLASS_DRANK, \ + points_per_signal = 0.5, \ + ) diff --git a/code/modules/bitrunning/virtual_domain/domains/blood_drunk_miner.dm b/code/modules/bitrunning/virtual_domain/domains/blood_drunk_miner.dm new file mode 100644 index 000000000000..abf2e0fc5a94 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/blood_drunk_miner.dm @@ -0,0 +1,18 @@ +/datum/lazy_template/virtual_domain/blood_drunk_miner + name = "Sanguine Excavation" + cost = BITRUNNER_COST_MEDIUM + desc = "Few escape the surface of Lavaland without a few scars. Some remain, maddened by the hunt." + difficulty = BITRUNNER_DIFFICULTY_MEDIUM + forced_outfit = /datum/outfit/job/miner + key = "blood_drunk_miner" + map_name = "blood_drunk_miner" + reward_points = BITRUNNER_REWARD_MEDIUM + safehouse_path = /datum/map_template/safehouse/lavaland_boss + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/virtual_domain + can_be_cybercop = FALSE + crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + health = 1600 + loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + maxHealth = 1600 + true_spawn = FALSE diff --git a/code/modules/bitrunning/virtual_domain/domains/bubblegum.dm b/code/modules/bitrunning/virtual_domain/domains/bubblegum.dm new file mode 100644 index 000000000000..bede97177cb7 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/bubblegum.dm @@ -0,0 +1,19 @@ +/datum/lazy_template/virtual_domain/bubblegum + name = "Blood-Soaked Lair" + cost = BITRUNNER_COST_HIGH + desc = "King of the slaughter demons. Bubblegum is a massive, hulking beast with a penchant for violence." + difficulty = BITRUNNER_DIFFICULTY_HIGH + extra_loot = list(/obj/item/toy/plush/bubbleplush = 1) + forced_outfit = /datum/outfit/job/miner + key = "bubblegum" + map_name = "bubblegum" + reward_points = BITRUNNER_REWARD_HIGH + safehouse_path = /datum/map_template/safehouse/lavaland_boss + +/mob/living/simple_animal/hostile/megafauna/bubblegum/virtual_domain + can_be_cybercop = FALSE + crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + health = 2000 + loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + maxHealth = 2000 + true_spawn = FALSE diff --git a/code/modules/bitrunning/virtual_domain/domains/clown_planet.dm b/code/modules/bitrunning/virtual_domain/domains/clown_planet.dm new file mode 100644 index 000000000000..92f000c9cf34 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/clown_planet.dm @@ -0,0 +1,13 @@ +/datum/lazy_template/virtual_domain/clown_planet + name = "Clown Planet" + cost = BITRUNNER_COST_LOW + desc = "In the deep, dark reaches of space, there is only Honk." + difficulty = BITRUNNER_DIFFICULTY_LOW + extra_loot = list(/obj/item/bikehorn = 1) + forced_outfit = /datum/outfit/job/clown + help_text = "The trials of the Honkitude have begun. The sound of bike horns wailing in the distance. \ + this realm- some sort of puzzle, has existed in legend as the final test of just how silly you are." + key = "clown_planet" + map_name = "clown_planet" + reward_points = BITRUNNER_REWARD_LOW + safehouse_path = /datum/map_template/safehouse/mine diff --git a/code/modules/bitrunning/virtual_domain/domains/colossus.dm b/code/modules/bitrunning/virtual_domain/domains/colossus.dm new file mode 100644 index 000000000000..35ba4eee0ca8 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/colossus.dm @@ -0,0 +1,18 @@ +/datum/lazy_template/virtual_domain/colossus + name = "Celestial Trial" + cost = BITRUNNER_COST_HIGH + desc = "A massive, ancient beast named the Colossus. Judgment comes." + difficulty = BITRUNNER_DIFFICULTY_HIGH + forced_outfit = /datum/outfit/job/miner + key = "colossus" + map_name = "colossus" + reward_points = BITRUNNER_REWARD_HIGH + safehouse_path = /datum/map_template/safehouse/lavaland_boss + +/mob/living/simple_animal/hostile/megafauna/colossus/virtual_domain + can_be_cybercop = FALSE + crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + health = 2000 + maxHealth = 2000 + true_spawn = FALSE diff --git a/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm b/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm new file mode 100644 index 000000000000..4deacb4f9c59 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm @@ -0,0 +1,39 @@ +/datum/lazy_template/virtual_domain/gondola_asteroid + name = "Gondola Asteroid" + desc = "An asteroid home to a bountiful forest of gondolas. Peaceful." + map_name = "gondola_asteroid" + help_text = "What a lovely forest. There's a loot crate here in the middle of the map. \ + Hmm... It doesn't budge. The gondolas don't seem to have any trouble moving it, though. \ + I bet there's a way to move it myself." + key = "gondola_asteroid" + map_name = "gondola_asteroid" + safehouse_path = /datum/map_template/safehouse/shuttle_space + +/// Very pushy gondolas, great for moving loot crates. +/obj/structure/closet/crate/secure/bitrunning/encrypted/gondola + move_resist = MOVE_FORCE_STRONG + +/mob/living/simple_animal/pet/gondola/virtual_domain + health = 50 + loot = list(/obj/effect/decal/cleanable/blood/gibs, /obj/item/stack/sheet/animalhide/gondola = 1, /obj/item/food/meat/slab/gondola/virtual_domain = 1) + maxHealth = 50 + move_force = MOVE_FORCE_VERY_STRONG + move_resist = MOVE_FORCE_STRONG + +/obj/item/food/meat/slab/gondola/virtual_domain + food_reagents = list( + /datum/reagent/consumable/nutriment/protein = 4, + /datum/reagent/gondola_mutation_toxin/virtual_domain = 5, + ) + +/datum/reagent/gondola_mutation_toxin/virtual_domain + name = "Advanced Tranquility" + +/datum/reagent/gondola_mutation_toxin/virtual_domain/expose_mob(mob/living/exposed_mob, methods = TOUCH, reac_volume, show_message = TRUE, touch_protection = 0) + . = ..() + if((methods & (PATCH|INGEST|INJECT)) || ((methods & VAPOR) && prob(min(reac_volume,100)*(1 - touch_protection)))) + exposed_mob.ForceContractDisease(new /datum/disease/transformation/gondola/virtual_domain(), FALSE, TRUE) + +/datum/disease/transformation/gondola/virtual_domain + stage_prob = 9 + new_form = /mob/living/simple_animal/pet/gondola/virtual_domain diff --git a/code/modules/bitrunning/virtual_domain/domains/hierophant.dm b/code/modules/bitrunning/virtual_domain/domains/hierophant.dm new file mode 100644 index 000000000000..142623f4f812 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/hierophant.dm @@ -0,0 +1,18 @@ +/datum/lazy_template/virtual_domain/hierophant + name = "Zealot Arena" + cost = BITRUNNER_COST_HIGH + desc = "Dance, puppets, dance!" + difficulty = BITRUNNER_DIFFICULTY_HIGH + forced_outfit = /datum/outfit/job/miner + key = "hierophant" + map_name = "hierophant" + reward_points = BITRUNNER_REWARD_HIGH + safehouse_path = /datum/map_template/safehouse/lavaland_boss + +/mob/living/simple_animal/hostile/megafauna/hierophant/virtual_domain + can_be_cybercop = FALSE + crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + health = 1700 + loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + maxHealth = 1700 + true_spawn = FALSE diff --git a/code/modules/bitrunning/virtual_domain/domains/legion.dm b/code/modules/bitrunning/virtual_domain/domains/legion.dm new file mode 100644 index 000000000000..f1ba146f3801 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/legion.dm @@ -0,0 +1,20 @@ +/datum/lazy_template/virtual_domain/legion + name = "Chamber of Echoes" + cost = BITRUNNER_COST_MEDIUM + desc = "A chilling realm that houses Legion's necropolis. Those who succumb to it are forever damned." + difficulty = BITRUNNER_DIFFICULTY_MEDIUM + forced_outfit = /datum/outfit/job/miner + key = "legion" + map_name = "legion" + reward_points = BITRUNNER_REWARD_MEDIUM + safehouse_path = /datum/map_template/safehouse/lavaland_boss + +/mob/living/simple_animal/hostile/megafauna/legion/virtual_domain + can_be_cybercop = FALSE + crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + health = 1500 + loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + maxHealth = 1500 + true_spawn = FALSE + +// You may be thinking, what about those mini-legions? They're not part of the initial created_atoms list diff --git a/code/modules/bitrunning/virtual_domain/domains/pipedream.dm b/code/modules/bitrunning/virtual_domain/domains/pipedream.dm new file mode 100644 index 000000000000..8df3ec2120a2 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/pipedream.dm @@ -0,0 +1,100 @@ +/datum/lazy_template/virtual_domain/pipedream + name = "Disposal Pipe Factory" + cost = BITRUNNER_COST_LOW + desc = "An abandoned and infested factory manufacturing disposal pipes." + difficulty = BITRUNNER_DIFFICULTY_MEDIUM + extra_loot = list(/obj/item/stack/pipe_cleaner_coil/random/five = 1) + help_text = "Not long ago, this place was thriving with activity. The workers \ + seemed to have left in a hurry, and now productivity is in the bin. Something \ + must have trashed the place, but what?" + key = "pipedream" + map_name = "pipedream" + reward_points = BITRUNNER_REWARD_LOW + safehouse_path = /datum/map_template/safehouse/shuttle + +// ID Trims +/datum/id_trim/factory + assignment = "Factory Worker" + trim_state = "trim_cargotechnician" + department_color = COLOR_CARGO_BROWN + subdepartment_color = COLOR_CARGO_BROWN + sechud_icon_state = SECHUD_CARGO_TECHNICIAN + access = list( + ACCESS_AWAY_SUPPLY + ) + +/datum/id_trim/factory/qm + assignment = "Factory Quartermaster" + trim_state = "trim_quartermaster" + department_color = COLOR_COMMAND_BLUE + subdepartment_color = COLOR_CARGO_BROWN + department_state = "departmenthead" + sechud_icon_state = SECHUD_QUARTERMASTER + access = list( + ACCESS_AWAY_SUPPLY, + ACCESS_AWAY_COMMAND + ) + +// ID Cards +/obj/item/card/id/advanced/factory + name = "factory worker ID" + trim = /datum/id_trim/factory + +/obj/item/card/id/advanced/factory/qm + name = "factory quartermaster ID" + trim = /datum/id_trim/factory/qm + +//Outfits +/datum/outfit/factory + name = "Factory Worker" + + id_trim = /datum/id_trim/factory + id = /obj/item/card/id/advanced/ + uniform = /obj/item/clothing/under/rank/cargo/tech + suit = /obj/item/clothing/suit/hazardvest + belt = /obj/item/radio + gloves = /obj/item/clothing/gloves/color/black + head = /obj/item/clothing/head/soft/yellow + shoes = /obj/item/clothing/shoes/workboots + l_pocket = /obj/item/flashlight/seclite + +/datum/outfit/factory/guard + name = "Factory Guard" + + uniform = /obj/item/clothing/under/rank/security/officer/grey + suit = /obj/item/clothing/suit/armor/vest/alt + belt = /obj/item/radio + gloves = /obj/item/clothing/gloves/color/black + head = /obj/item/clothing/head/soft/sec + shoes = /obj/item/clothing/shoes/jackboots/sec + l_pocket = /obj/item/restraints/handcuffs + r_pocket = /obj/item/assembly/flash/handheld + +/datum/outfit/factory/qm + name = "Factory Quatermaster" + + id_trim = /datum/id_trim/factory/qm + id = /obj/item/card/id/advanced/silver + uniform = /obj/item/clothing/under/rank/cargo/qm + belt = /obj/item/radio + gloves = /obj/item/clothing/gloves/color/black + head = /obj/item/clothing/head/soft/yellow + shoes = /obj/item/clothing/shoes/jackboots/sec + l_pocket = /obj/item/melee/baton/telescopic + +// Corpses +/obj/effect/mob_spawn/corpse/human/factory + name = "Factory Worker" + outfit = /datum/outfit/factory + icon_state = "corpsecargotech" + +/obj/effect/mob_spawn/corpse/human/factory/guard + name = "Factory Guard" + outfit = /datum/outfit/factory/guard + icon_state = "corpsecargotech" + +/obj/effect/mob_spawn/corpse/human/factory/qm + name = "Factory Quartermaster" + outfit = /datum/outfit/factory/qm + icon_state = "corpsecargotech" + diff --git a/code/modules/bitrunning/virtual_domain/domains/pirates.dm b/code/modules/bitrunning/virtual_domain/domains/pirates.dm new file mode 100644 index 000000000000..52d86a712118 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/pirates.dm @@ -0,0 +1,10 @@ +/datum/lazy_template/virtual_domain/pirates + name = "Corsair Cove" + cost = BITRUNNER_COST_MEDIUM + desc = "Battle your way to the hidden treasure, seize the booty, and make a swift escape before the pirates turn the tide." + difficulty = BITRUNNER_DIFFICULTY_MEDIUM + help_text = "Put on the provided outfits to blend in, then battle your way through the hostile pirates. \ + Grab the treasure and get out before you're overwhelmed!" + key = "pirates" + map_name = "pirates" + reward_points = BITRUNNER_REWARD_MEDIUM diff --git a/code/modules/bitrunning/virtual_domain/domains/stairs_and_cliffs.dm b/code/modules/bitrunning/virtual_domain/domains/stairs_and_cliffs.dm new file mode 100644 index 000000000000..2d9bcca36455 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/stairs_and_cliffs.dm @@ -0,0 +1,29 @@ +/datum/lazy_template/virtual_domain/stairs_and_cliffs + name = "Glacier Grind" + cost = BITRUNNER_COST_LOW + desc = "A treacherous climb few calves can survive. Great cardio though." + help_text = "Ever heard of 'Snakes and Ladders'? It's like that, but with \ + instead of ladders its stairs and instead of snakes its a steep drop down a \ + cliff into rough rocks or liquid plasma." + extra_loot = list(/obj/item/clothing/suit/costume/snowman = 2) + difficulty = BITRUNNER_DIFFICULTY_LOW + forced_outfit = /datum/outfit/job/virtual_domain_iceclimber + key = "stairs_and_cliffs" + map_name = "stairs_and_cliffs" + reward_points = BITRUNNER_REWARD_MEDIUM + safehouse_path = /datum/map_template/safehouse/ice + +/turf/open/cliff/snowrock/virtual_domain + name = "icy cliff" + initial_gas_mix = "o2=22;n2=82;TEMP=180" + +/turf/open/lava/plasma/virtual_domain + name = "plasma lake" + initial_gas_mix = "o2=22;n2=82;TEMP=180" + +/datum/outfit/job/virtual_domain_iceclimber + name = "Ice Climber" + + uniform = /obj/item/clothing/under/color/grey + backpack = /obj/item/storage/backpack/duffelbag + shoes = /obj/item/clothing/shoes/winterboots diff --git a/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm b/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm new file mode 100644 index 000000000000..bae0da6874db --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm @@ -0,0 +1,13 @@ +/datum/lazy_template/virtual_domain/syndicate_assault + name = "Syndicate Assault" + cost = BITRUNNER_COST_MEDIUM + desc = "Board the enemy ship and recover the stolen cargo." + difficulty = BITRUNNER_DIFFICULTY_MEDIUM + extra_loot = list(/obj/item/toy/plush/nukeplushie = 1) + help_text = "A group of Syndicate operatives have stolen valuable cargo from the station. \ + They have boarded their ship and are attempting to escape. Infiltrate their ship and recover \ + the crate. Be careful, they are extremely armed." + key = "syndicate_assault" + map_name = "syndicate_assault" + reward_points = BITRUNNER_REWARD_MEDIUM + safehouse_path = /datum/map_template/safehouse/shuttle diff --git a/code/modules/bitrunning/virtual_domain/domains/test_only.dm b/code/modules/bitrunning/virtual_domain/domains/test_only.dm new file mode 100644 index 000000000000..6e5e852fb5c8 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/test_only.dm @@ -0,0 +1,11 @@ +/// Used for unit tests only. Skipped in UI. +/datum/lazy_template/virtual_domain/test_only + name = "Test Only" + key = "test_only" + map_name = "test_only" + test_only = TRUE + safehouse_path = /datum/map_template/safehouse/test_only + +/datum/lazy_template/virtual_domain/test_only/expensive + key = "test_only_expensive" + cost = 3 diff --git a/code/modules/bitrunning/virtual_domain/domains/vaporwave.dm b/code/modules/bitrunning/virtual_domain/domains/vaporwave.dm new file mode 100644 index 000000000000..45d4abec9830 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/vaporwave.dm @@ -0,0 +1,10 @@ +/datum/lazy_template/virtual_domain/vaporwave + name = "Cosmic Vestige" + cost = BITRUNNER_COST_EXTREME + desc = "Suspended in the silent void of space, the Neon Relic is a haunting echo of a retro-futuristic era." + difficulty = BITRUNNER_DIFFICULTY_NONE + extra_loot = list(/obj/item/stack/spacecash/c500 = 3) + key = "vaporwave" + map_name = "vaporwave" + reward_points = BITRUNNER_REWARD_EXTREME + safehouse_path = /datum/map_template/safehouse/shuttle_space diff --git a/code/modules/bitrunning/virtual_domain/domains/wendigo.dm b/code/modules/bitrunning/virtual_domain/domains/wendigo.dm new file mode 100644 index 000000000000..fcad3db6faf7 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/wendigo.dm @@ -0,0 +1,19 @@ +/datum/lazy_template/virtual_domain/wendigo + name = "Glacial Devourer" + cost = BITRUNNER_COST_HIGH + desc = "Legends speak of the ravenous Wendigo hidden deep within the caves of Icemoon." + difficulty = BITRUNNER_DIFFICULTY_HIGH + forced_outfit = /datum/outfit/job/miner + key = "wendigo" + map_name = "wendigo" + reward_points = BITRUNNER_REWARD_HIGH + safehouse_path = /datum/map_template/safehouse/lavaland_boss + +/mob/living/simple_animal/hostile/megafauna/wendigo/virtual_domain + can_be_cybercop = FALSE + crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + guaranteed_butcher_results = list(/obj/item/wendigo_skull = 1) + health = 2000 + loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) + maxHealth = 2000 + true_spawn = FALSE diff --git a/code/modules/bitrunning/virtual_domain/domains/xeno_nest.dm b/code/modules/bitrunning/virtual_domain/domains/xeno_nest.dm new file mode 100644 index 000000000000..2bd4105e13c2 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/xeno_nest.dm @@ -0,0 +1,12 @@ +/datum/lazy_template/virtual_domain/xeno_nest + name = "Xeno Infestation" + cost = BITRUNNER_COST_LOW + desc = "Our ship scanners have detected lifeforms of unknown origin. Friendly attempts to contact them have failed." + difficulty = BITRUNNER_DIFFICULTY_LOW + extra_loot = list(/obj/item/toy/plush/rouny = 1) + help_text = "You are on a barren planet filled with hostile creatures. There is a crate here, not hidden, \ + simply protected. Expect resistance." + key = "xeno_nest" + map_name = "xeno_nest" + reward_points = BITRUNNER_REWARD_LOW + safehouse_path = /datum/map_template/safehouse/shuttle diff --git a/code/modules/bitrunning/virtual_domain/safehouses.dm b/code/modules/bitrunning/virtual_domain/safehouses.dm new file mode 100644 index 000000000000..bb42f690ac7e --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/safehouses.dm @@ -0,0 +1,53 @@ +/** + * # Safe Houses + * The starting point for virtual domains. + * Create your own: Read the readme file in the '_maps/safehouses' folder. + */ +/datum/map_template/safehouse + name = "virtual domain: safehouse" + + returns_created_atoms = TRUE + /// The map file to load + var/filename = "den.dmm" + +/datum/map_template/safehouse/New() + mappath = "_maps/safehouses/" + filename + ..(path = mappath) + +/datum/map_template/safehouse/test_only + filename = "test_only_safehouse.dmm" + + +/// The default safehouse map template. +/datum/map_template/safehouse/wood + filename = "wood.dmm" + +/datum/map_template/safehouse/den + filename = "den.dmm" + +/datum/map_template/safehouse/dig + filename = "dig.dmm" + +/datum/map_template/safehouse/shuttle + filename = "shuttle.dmm" + +// Has space tiles on the four corners. +/datum/map_template/safehouse/shuttle_space + filename = "shuttle_space.dmm" + +/datum/map_template/safehouse/mine + filename = "mine.dmm" + +// Comes preloaded with mining combat gear. +/datum/map_template/safehouse/lavaland_boss + filename = "lavaland_boss.dmm" + +// Chill out +/datum/map_template/safehouse/ice + filename = "ice.dmm" + +/** + * Your safehouse here + * /datum/map_template/safehouse/your_type + * filename = "your_map.dmm" + */ diff --git a/code/modules/bitrunning/virtual_domain/virtual_domain.dm b/code/modules/bitrunning/virtual_domain/virtual_domain.dm new file mode 100644 index 000000000000..c2bd193f4e98 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/virtual_domain.dm @@ -0,0 +1,34 @@ +/** + * # Virtual Domains + * This loads a base level, then users can select the preset upon it. + * Create your own: Read the readme file in the '_maps/virtual_domains' folder. + */ +/datum/lazy_template/virtual_domain + map_dir = "_maps/virtual_domains" + map_name = "None" + key = "Virtual Domain" + + /// Cost of this map to load + var/cost = BITRUNNER_COST_NONE + /// The description of the map + var/desc = "A map." + /// The 'difficulty' of the map, which affects the ui and ability to scan info. + var/difficulty = BITRUNNER_DIFFICULTY_NONE + /// An assoc list of typepath/amount to spawn on completion. Not weighted - the value is the amount + var/list/extra_loot + /// The map file to load + var/filename = "virtual_domain.dmm" + /// Any outfit that you wish to force on avatars. Overrides preferences + var/datum/outfit/forced_outfit + /// Information given to connected clients via ability + var/help_text + // Name to show in the UI + var/name = "Virtual Domain" + /// Points to reward for completion. Used to purchase new domains and calculate ore rewards. + var/reward_points = BITRUNNER_REWARD_MIN + /// The start time of the map. Used to calculate time taken + var/start_time + /// This map is specifically for unit tests. Shouldn't display in game + var/test_only = FALSE + /// The safehouse to load into the map + var/datum/map_template/safehouse/safehouse_path = /datum/map_template/safehouse/den diff --git a/code/modules/cargo/packs/_packs.dm b/code/modules/cargo/packs/_packs.dm index 479d2595c021..4d7e5066a4ab 100644 --- a/code/modules/cargo/packs/_packs.dm +++ b/code/modules/cargo/packs/_packs.dm @@ -79,6 +79,21 @@ /datum/supply_pack/proc/generate_supply_packs() return +///Easily send a supplypod to an area +/proc/send_supply_pod_to_area(contents, area_type, pod_type = /obj/structure/closet/supplypod) + var/list/areas = get_areas(area_type) + if(!LAZYLEN(areas)) + return FALSE + var/list/open_turfs = list() + for(var/turf/open/floor/found_turf in get_area_turfs(pick(areas), subtypes = TRUE)) + open_turfs += found_turf + + if(!length(open_turfs)) + return FALSE + + new /obj/effect/pod_landingzone (pick(open_turfs), new pod_type (), contents) + return TRUE + /** * Custom supply pack * The contents are given on New rather than being static diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index c8e37acea6d5..368e1e726d82 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -527,6 +527,12 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( view_size.setZoomMode() Master.UpdateTickRate() SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CLIENT_CONNECT, src) + + if(!media) + media = new /datum/media_manager(src) + media.open() + media.update_music() + fully_created = TRUE ////////////// diff --git a/code/modules/client/preferences/middleware/antags.dm b/code/modules/client/preferences/middleware/antags.dm index d04b9c0c0fd7..e13167ba7347 100644 --- a/code/modules/client/preferences/middleware/antags.dm +++ b/code/modules/client/preferences/middleware/antags.dm @@ -116,6 +116,7 @@ /datum/asset/spritesheet/antagonists/create_spritesheets() // Antagonists that don't have a dynamic ruleset, but do have a preference var/static/list/non_ruleset_antagonists = list( + ROLE_CYBER_POLICE = /datum/antagonist/cyber_police, ROLE_FUGITIVE = /datum/antagonist/fugitive, ROLE_LONE_OPERATIVE = /datum/antagonist/nukeop/lone, ROLE_SENTIENCE = /datum/antagonist/sentient_creature, diff --git a/code/modules/clothing/outfits/plasmaman.dm b/code/modules/clothing/outfits/plasmaman.dm index beed4f1b0b35..01739a7c1e96 100644 --- a/code/modules/clothing/outfits/plasmaman.dm +++ b/code/modules/clothing/outfits/plasmaman.dm @@ -280,3 +280,10 @@ gloves = /obj/item/clothing/gloves/color/plasmaman/clown head = /obj/item/clothing/head/helmet/space/plasmaman/clown mask = /obj/item/clothing/mask/gas/clown_hat/plasmaman + +/datum/outfit/plasmaman/bitrunner + name = "Bitrunner Plasmaman" + + uniform = /obj/item/clothing/under/plasmaman/bitrunner + gloves = /obj/item/clothing/gloves/color/plasmaman/black + head = /obj/item/clothing/head/helmet/space/plasmaman/bitrunner diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 8379c817144e..cd6bde9be846 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -379,3 +379,8 @@ desc = "A special containment helmet designed for CentCom Staff. You know, so any coffee spills don't kill the poor sod." icon_state = "intern_envirohelm" inhand_icon_state = null + +/obj/item/clothing/head/helmet/space/plasmaman/bitrunner + name = "bitrunner's plasma envirosuit helmet" + desc = "An envirohelmet with extended blue light filters for bitrunning plasmamen." + icon_state = "bitrunner_envirohelm" diff --git a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm index 52a85cf31cf0..9b2faf65a9c8 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm @@ -115,6 +115,15 @@ icon_state = "clown_envirosuit" inhand_icon_state = null +/obj/item/clothing/under/plasmaman/clown/Initialize(mapload) + . = ..() + AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWN, CELL_VIRUS_TABLE_GENERIC, rand(2,3), 0) + +/obj/item/clothing/under/plasmaman/bitrunner + name = "bitrunner envirosuit" + desc = "An envirosuit specially designed for plasmamen with bad posture." + icon_state = "bitrunner_envirosuit" + inhand_icon_state = null /obj/item/clothing/under/plasmaman/prisoner name = "prisoner envirosuit" desc = "An orange envirosuit identifying and protecting a criminal plasmaman. Its suit sensors are stuck in the \"Fully On\" position." diff --git a/code/modules/clothing/under/jobs/cargo.dm b/code/modules/clothing/under/jobs/cargo.dm index d4c9ca4268c9..6e4f0f32285d 100644 --- a/code/modules/clothing/under/jobs/cargo.dm +++ b/code/modules/clothing/under/jobs/cargo.dm @@ -54,3 +54,9 @@ name = "shaft miner's jumpsuit" icon_state = "explorer" inhand_icon_state = null + +/obj/item/clothing/under/rank/cargo/bitrunner + name = "bitrunner's jumpsuit" + desc = "It's a leathery jumpsuit worn by a bitrunner. Tacky, but comfortable to wear if sitting for prolonged periods of time." + icon_state = "bitrunner" + inhand_icon_state = "w_suit" diff --git a/code/modules/economy/account.dm b/code/modules/economy/account.dm index 7f578bb1b393..59d5c81a69b1 100644 --- a/code/modules/economy/account.dm +++ b/code/modules/economy/account.dm @@ -7,6 +7,10 @@ var/account_balance = 0 ///How many mining points (shaft miner credits) is held in the bank account, used for mining vendors. var/mining_points = 0 + /// Points for bit runner's vendor. Awarded for completing virtual domains. + var/bitrunning_points = 0 + ///Debt. If higher than 0, A portion of the credits is earned (or the whole debt, whichever is lower) will go toward paying it off. + var/account_debt = 0 ///If there are things effecting how much income a player will get, it's reflected here 1 is standard for humans. var/payday_modifier ///The job datum of the account owner. diff --git a/code/modules/experisci/experiment/experiments.dm b/code/modules/experisci/experiment/experiments.dm index f56ee6164473..b2e2ef909ff3 100644 --- a/code/modules/experisci/experiment/experiments.dm +++ b/code/modules/experisci/experiment/experiments.dm @@ -276,7 +276,6 @@ /obj/machinery/rnd/experimentor = 1, /obj/machinery/medical_kiosk = 2, /obj/machinery/piratepad/civilian = 2, - /obj/machinery/rnd/bepis = 3 ) required_stock_part = /obj/item/stock_parts/scanning_module/adv diff --git a/code/modules/lighting/lighting_source.dm b/code/modules/lighting/lighting_source.dm index f47556106530..1bf0fce08a75 100644 --- a/code/modules/lighting/lighting_source.dm +++ b/code/modules/lighting/lighting_source.dm @@ -309,7 +309,7 @@ corners[T.lighting_corner_NW] = 0 turfs += T - var/turf/below = SSmapping.get_turf_below(T) + var/turf/below = GET_TURF_BELOW(T) var/turf/previous = T while(below) // If we find a non transparent previous, end @@ -329,9 +329,9 @@ turfs += below // ANNND then we add the one below it previous = below - below = SSmapping.get_turf_below(below) + below = GET_TURF_BELOW(below) - var/turf/above = SSmapping.get_turf_above(T) + var/turf/above = GET_TURF_ABOVE(T) while(above) // If we find a non transparent turf, end if(!istransparentturf(above) || IS_OPAQUE_TURF(above)) @@ -343,7 +343,7 @@ corners[above.lighting_corner_SW] = 0 corners[above.lighting_corner_NW] = 0 turfs += above - above = SSmapping.get_turf_above(above) + above = GET_TURF_ABOVE(above) source_turf.luminosity = oldlum diff --git a/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm index 303aa01d8c4b..c040b96be3b8 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm @@ -97,9 +97,10 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999)) if(!storageTurf) //Blame subsystems for not allowing this to be in Initialize if(!GLOB.hhStorageTurf) var/datum/map_template/hilbertshotelstorage/storageTemp = new() - var/datum/turf_reservation/storageReservation = SSmapping.RequestBlockReservation(3, 3) - storageTemp.load(locate(storageReservation.bottom_left_coords[1], storageReservation.bottom_left_coords[2], storageReservation.bottom_left_coords[3])) - GLOB.hhStorageTurf = locate(storageReservation.bottom_left_coords[1]+1, storageReservation.bottom_left_coords[2]+1, storageReservation.bottom_left_coords[3]) + var/datum/turf_reservation/storageReservation = SSmapping.request_turf_block_reservation(1, 1, 1) + var/turf/storage_turf = storageReservation.bottom_left_turfs[1] + storageTemp.load(storage_turf) + GLOB.hhStorageTurf = storage_turf else storageTurf = GLOB.hhStorageTurf if(tryActiveRoom(chosenRoomNumber, target)) @@ -112,20 +113,30 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999)) if(activeRooms["[roomNumber]"]) var/datum/turf_reservation/roomReservation = activeRooms["[roomNumber]"] do_sparks(3, FALSE, get_turf(user)) - user.forceMove(locate(roomReservation.bottom_left_coords[1] + hotelRoomTemp.landingZoneRelativeX, roomReservation.bottom_left_coords[2] + hotelRoomTemp.landingZoneRelativeY, roomReservation.bottom_left_coords[3])) + var/turf/room_bottom_left = roomReservation.bottom_left_turfs[1] + user.forceMove(locate( + room_bottom_left.x + hotelRoomTemp.landingZoneRelativeX, + room_bottom_left.y + hotelRoomTemp.landingZoneRelativeY, + room_bottom_left.z, + )) return TRUE return FALSE /obj/item/hilbertshotel/proc/tryStoredRoom(roomNumber, mob/user) if(storedRooms["[roomNumber]"]) - var/datum/turf_reservation/roomReservation = SSmapping.RequestBlockReservation(hotelRoomTemp.width, hotelRoomTemp.height) - hotelRoomTempEmpty.load(locate(roomReservation.bottom_left_coords[1], roomReservation.bottom_left_coords[2], roomReservation.bottom_left_coords[3])) + var/datum/turf_reservation/roomReservation = SSmapping.request_turf_block_reservation(hotelRoomTemp.width, hotelRoomTemp.height, 1) + var/turf/room_turf = roomReservation.bottom_left_turfs[1] + hotelRoomTempEmpty.load(room_turf) var/turfNumber = 1 for(var/x in 0 to hotelRoomTemp.width-1) for(var/y in 0 to hotelRoomTemp.height-1) for(var/atom/movable/A in storedRooms["[roomNumber]"][turfNumber]) if(istype(A.loc, /obj/item/abstracthotelstorage))//Don't want to recall something thats been moved - A.forceMove(locate(roomReservation.bottom_left_coords[1] + x, roomReservation.bottom_left_coords[2] + y, roomReservation.bottom_left_coords[3])) + A.forceMove(locate( + room_turf.x + x, + room_turf.y + y, + room_turf.z, + )) turfNumber++ for(var/obj/item/abstracthotelstorage/S in storageTurf) if((S.roomNumber == roomNumber) && (S.parentSphere == src)) @@ -134,23 +145,35 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999)) activeRooms["[roomNumber]"] = roomReservation linkTurfs(roomReservation, roomNumber) do_sparks(3, FALSE, get_turf(user)) - user.forceMove(locate(roomReservation.bottom_left_coords[1] + hotelRoomTemp.landingZoneRelativeX, roomReservation.bottom_left_coords[2] + hotelRoomTemp.landingZoneRelativeY, roomReservation.bottom_left_coords[3])) + user.forceMove(locate( + room_turf.x + hotelRoomTemp.landingZoneRelativeX, + room_turf.y + hotelRoomTemp.landingZoneRelativeY, + room_turf.z, + )) return TRUE return FALSE /obj/item/hilbertshotel/proc/sendToNewRoom(roomNumber, mob/user) - var/datum/turf_reservation/roomReservation = SSmapping.RequestBlockReservation(hotelRoomTemp.width, hotelRoomTemp.height) + var/datum/turf_reservation/roomReservation = SSmapping.request_turf_block_reservation(hotelRoomTemp.width, hotelRoomTemp.height, 1) + var/turf/bottom_left = roomReservation.bottom_left_turfs[1] + var/datum/map_template/load_from = hotelRoomTemp + if(ruinSpawned && roomNumber == GLOB.hhMysteryRoomNumber) - hotelRoomTempLore.load(locate(roomReservation.bottom_left_coords[1], roomReservation.bottom_left_coords[2], roomReservation.bottom_left_coords[3])) - else - hotelRoomTemp.load(locate(roomReservation.bottom_left_coords[1], roomReservation.bottom_left_coords[2], roomReservation.bottom_left_coords[3])) + load_from = hotelRoomTempLore + + load_from.load(bottom_left) activeRooms["[roomNumber]"] = roomReservation linkTurfs(roomReservation, roomNumber) do_sparks(3, FALSE, get_turf(user)) - user.forceMove(locate(roomReservation.bottom_left_coords[1] + hotelRoomTemp.landingZoneRelativeX, roomReservation.bottom_left_coords[2] + hotelRoomTemp.landingZoneRelativeY, roomReservation.bottom_left_coords[3])) + user.forceMove(locate( + bottom_left.x + hotelRoomTemp.landingZoneRelativeX, + bottom_left.y + hotelRoomTemp.landingZoneRelativeY, + bottom_left.z, + )) /obj/item/hilbertshotel/proc/linkTurfs(datum/turf_reservation/currentReservation, currentRoomnumber) - var/area/misc/hilbertshotel/currentArea = get_area(locate(currentReservation.bottom_left_coords[1], currentReservation.bottom_left_coords[2], currentReservation.bottom_left_coords[3])) + var/turf/room_bottom_left = currentReservation.bottom_left_turfs[1] + var/area/misc/hilbertshotel/currentArea = get_area(room_bottom_left) currentArea.name = "Hilbert's Hotel Room [currentRoomnumber]" currentArea.parentSphere = src currentArea.storageTurf = storageTurf @@ -166,9 +189,10 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999)) if(activeRooms.len) for(var/x in activeRooms) var/datum/turf_reservation/room = activeRooms[x] + var/turf/room_bottom_left = room.bottom_left_turfs[1] for(var/i in 0 to hotelRoomTemp.width-1) for(var/j in 0 to hotelRoomTemp.height-1) - for(var/atom/movable/A in locate(room.bottom_left_coords[1] + i, room.bottom_left_coords[2] + j, room.bottom_left_coords[3])) + for(var/atom/movable/A in locate(room_bottom_left.x + i, room_bottom_left.y + j, room_bottom_left.z)) if(ismob(A)) var/mob/M = A if(M.mind) @@ -250,7 +274,7 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999)) icon_state = "bluespace" base_icon_state = "bluespace" baseturfs = /turf/open/space/bluespace - flags_1 = NOJAUNT + turf_flags = NOJAUNT explosive_resistance = INFINITY var/obj/item/hilbertshotel/parentSphere @@ -414,7 +438,11 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999)) storeRoom() /area/misc/hilbertshotel/proc/storeRoom() - var/roomSize = (reservation.top_right_coords[1]-reservation.bottom_left_coords[1]+1)*(reservation.top_right_coords[2]-reservation.bottom_left_coords[2]+1) + var/turf/room_bottom_left = reservation.bottom_left_turfs[1] + var/turf/room_top_right = reservation.top_right_turfs[1] + var/roomSize = \ + ((room_top_right.x - room_bottom_left.x) + 1) * \ + ((room_top_right.y - room_bottom_left.y) + 1) var/storage[roomSize] var/turfNumber = 1 var/obj/item/abstracthotelstorage/storageObj = new(storageTurf) @@ -424,7 +452,7 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999)) for(var/x in 0 to parentSphere.hotelRoomTemp.width-1) for(var/y in 0 to parentSphere.hotelRoomTemp.height-1) var/list/turfContents = list() - for(var/atom/movable/A in locate(reservation.bottom_left_coords[1] + x, reservation.bottom_left_coords[2] + y, reservation.bottom_left_coords[3])) + for(var/atom/movable/A in locate(room_bottom_left.x + x, room_bottom_left.y + y, room_bottom_left.z)) if(ismob(A) && !isliving(A)) continue //Don't want to store ghosts turfContents += A diff --git a/code/modules/mapping/access_helpers.dm b/code/modules/mapping/access_helpers.dm index b1fd3571e51b..633c6aac387f 100644 --- a/code/modules/mapping/access_helpers.dm +++ b/code/modules/mapping/access_helpers.dm @@ -381,6 +381,11 @@ access_list += list(ACCESS_CARGO, ACCESS_MAINT_TUNNELS) return access_list +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den/get_access() + var/list/access_list = ..() + access_list += ACCESS_BIT_DEN + return access_list + // -------------------- Syndicate access helpers /obj/effect/mapping_helpers/airlock/access/any/syndicate icon_state = "access_helper_syn" diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 1bb9115a9f58..bf7ebd2bbb43 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -109,7 +109,6 @@ // need these two below? SSmachines.setup_template_powernets(cables) SSair.setup_template_machinery(atmos_machines) - SSshuttle.setup_shuttles(ports) //calculate all turfs inside the border var/list/template_and_bordering_turfs = block( @@ -133,7 +132,15 @@ var/y = round((world.maxy - height) * 0.5) + 1 var/datum/space_level/level = SSmapping.add_new_zlevel(name, secret ? ZTRAITS_AWAY_SECRET : ZTRAITS_AWAY, contain_turfs = FALSE) - var/datum/parsed_map/parsed = load_map(file(mappath), x, y, level.z_value, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=should_place_on_top, new_z = TRUE) + var/datum/parsed_map/parsed = load_map( + file(mappath), + x, + y, + level.z_value, + no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS), + place_on_top = should_place_on_top, + new_z = TRUE, + ) var/list/bounds = parsed.bounds if(!bounds) return FALSE @@ -153,7 +160,7 @@ if(!T || T.x+width > world.maxx || T.y+height > world.maxy) return var/datum/parsed_map/parsed = new(file(mappath)) - parsed.load(T.x, T.y, T.z, cropMap=TRUE, no_changeturf=TRUE, placeOnTop=should_place_on_top) + parsed.load(T.x, T.y, T.z, crop_map=TRUE, no_changeturf=TRUE, place_on_top=should_place_on_top) /datum/map_template/proc/load(turf/T, centered = FALSE) if(centered) @@ -185,7 +192,14 @@ UNSETEMPTY(turf_blacklist) parsed.turf_blacklist = turf_blacklist - if(!parsed.load(T.x, T.y, T.z, cropMap=TRUE, no_changeturf=(SSatoms.initialized == INITIALIZATION_INSSATOMS), placeOnTop=should_place_on_top)) + if(!parsed.load( + T.x, + T.y, + T.z, + crop_map = TRUE, + no_changeturf = (SSatoms.initialized == INITIALIZATION_INSSATOMS), + place_on_top = should_place_on_top, + )) return var/list/bounds = parsed.bounds diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm index 33d545f551a4..f85e50685b53 100644 --- a/code/modules/mapping/reader.dm +++ b/code/modules/mapping/reader.dm @@ -107,30 +107,79 @@ /// Pulls out model paths for DMM var/static/regex/model_path = new(@'(\/[^\{]*?(?:\{.*?\})?)(?:,|$)', "g") + /// If we are currently loading this map + var/loading = FALSE + #ifdef TESTING var/turfsSkipped = 0 #endif +/datum/parsed_map/proc/copy() + // Avoids duped work just in case + build_cache() + var/datum/parsed_map/newfriend = new() + newfriend.original_path = original_path + newfriend.map_format = map_format + newfriend.key_len = key_len + newfriend.line_len = line_len + newfriend.grid_models = grid_models.Copy() + newfriend.gridSets = gridSets.Copy() + newfriend.modelCache = modelCache.Copy() + newfriend.parsed_bounds = parsed_bounds.Copy() + // Copy parsed bounds to reset to initial values + newfriend.bounds = parsed_bounds.Copy() + newfriend.turf_blacklist = turf_blacklist?.Copy() + return newfriend + //text trimming (both directions) helper macro #define TRIM_TEXT(text) (trim_reduced(text)) -/// Shortcut function to parse a map and apply it to the world. -/// -/// - `dmm_file`: A .dmm file to load (Required). -/// - `x_offset`, `y_offset`, `z_offset`: Positions representign where to load the map (Optional). -/// - `cropMap`: When true, the map will be cropped to fit the existing world dimensions (Optional). -/// - `measureOnly`: When true, no changes will be made to the world (Optional). -/// - `no_changeturf`: When true, [/turf/proc/AfterChange] won't be called on loaded turfs -/// - `x_lower`, `x_upper`, `y_lower`, `y_upper`: Coordinates (relative to the map) to crop to (Optional). -/// - `placeOnTop`: Whether to use [/turf/proc/PlaceOnTop] rather than [/turf/proc/ChangeTurf] (Optional). -/proc/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, x_lower = -INFINITY as num, x_upper = INFINITY as num, y_lower = -INFINITY as num, y_upper = INFINITY as num, placeOnTop = FALSE as num, new_z) - var/datum/parsed_map/parsed = new(dmm_file, x_lower, x_upper, y_lower, y_upper, measureOnly) - if(parsed.bounds && !measureOnly) - parsed.load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, new_z = new_z) - return parsed +/** + * Helper and recommened way to load a map file + * - dmm_file: The path to the map file + * - x_offset: The x offset to load the map at + * - y_offset: The y offset to load the map at + * - z_offset: The z offset to load the map at + * - crop_map: If true, the map will be cropped to the world bounds + * - measure_only: If true, the map will not be loaded, but the bounds will be calculated + * - no_changeturf: If true, the map will not call /turf/AfterChange + * - x_lower: The minimum x coordinate to load + * - x_upper: The maximum x coordinate to load + * - y_lower: The minimum y coordinate to load + * - y_upper: The maximum y coordinate to load + * - z_lower: The minimum z coordinate to load + * - z_upper: The maximum z coordinate to load + * - place_on_top: Whether to use /turf/proc/PlaceOnTop rather than /turf/proc/ChangeTurf + * - new_z: If true, a new z level will be created for the map + */ +/proc/load_map( + dmm_file, + x_offset = 0, + y_offset = 0, + z_offset = 0, + crop_map = FALSE, + measure_only = FALSE, + no_changeturf = FALSE, + x_lower = -INFINITY, + x_upper = INFINITY, + y_lower = -INFINITY, + y_upper = INFINITY, + z_lower = -INFINITY, + z_upper = INFINITY, + place_on_top = FALSE, + new_z = FALSE, +) + if(!(dmm_file in GLOB.cached_maps)) + GLOB.cached_maps[dmm_file] = new /datum/parsed_map(dmm_file) + + var/datum/parsed_map/parsed_map = GLOB.cached_maps[dmm_file] + parsed_map = parsed_map.copy() + if(!measure_only && !isnull(parsed_map.bounds)) + parsed_map.load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z) + return parsed_map /// Parse a map, possibly cropping it. -/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, measureOnly=FALSE) +/datum/parsed_map/New(tfile, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper=INFINITY, z_lower = -INFINITY, z_upper=INFINITY, measureOnly=FALSE) // This proc sleeps for like 6 seconds. why? // Is it file accesses? if so, can those be done ahead of time, async to save on time here? I wonder. // Love ya :) @@ -181,20 +230,26 @@ CRASH("Coords before model definition in DMM") var/curr_x = text2num(regexOutput[3]) - if(curr_x < x_lower || curr_x > x_upper) continue + var/curr_y = text2num(regexOutput[4]) + if(curr_y < y_lower || curr_y > y_upper) + continue + + var/curr_z = text2num(regexOutput[5]) + if(curr_z < z_lower || curr_z > z_upper) + continue + var/datum/grid_set/gridSet = new gridSet.xcrd = curr_x - //position of the currently processed square - gridSet.ycrd = text2num(regexOutput[4]) - gridSet.zcrd = text2num(regexOutput[5]) + gridSet.ycrd = curr_y + gridSet.zcrd = curr_z bounds[MAP_MINX] = min(bounds[MAP_MINX], curr_x) - bounds[MAP_MINZ] = min(bounds[MAP_MINZ], gridSet.zcrd) - bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], gridSet.zcrd) + bounds[MAP_MINZ] = min(bounds[MAP_MINZ], curr_y) + bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], curr_z) var/list/gridLines = splittext(regexOutput[6], "\n") gridSet.gridLines = gridLines @@ -235,31 +290,49 @@ bounds[MAP_MAXX] = clamp(bounds[MAP_MAXX], x_lower, x_upper) bounds[MAP_MINY] = clamp(bounds[MAP_MINY], y_lower, y_upper) bounds[MAP_MAXY] = clamp(bounds[MAP_MAXY], y_lower, y_upper) + bounds[MAP_MINZ] = clamp(bounds[MAP_MINZ], z_lower, z_upper) + bounds[MAP_MAXZ] = clamp(bounds[MAP_MAXZ], z_lower, z_upper) parsed_bounds = src.bounds src.key_len = key_len src.line_len = line_len -/// Load the parsed map into the world. See [/proc/load_map] for arguments. -/datum/parsed_map/proc/load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, whitelist = FALSE, new_z) +/// Iterates over all grid sets and returns ones with z values within the given bounds. Inclusive +/datum/parsed_map/proc/filter_grid_sets_based_on_z_bounds(lower_z, upper_z) + var/list/filtered_sets = list() + for(var/datum/grid_set/grid_set as anything in gridSets) + if(grid_set.zcrd < lower_z) + continue + if(grid_set.zcrd > upper_z) + continue + filtered_sets += grid_set + return filtered_sets + +/// Load the parsed map into the world. You probably want [/proc/load_map]. Keep the signature the same. +/datum/parsed_map/proc/load(x_offset = 0, y_offset = 0, z_offset = 0, crop_map = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, z_lower = -INFINITY, z_upper = INFINITY, place_on_top = FALSE, new_z = FALSE) //How I wish for RAII Master.StartLoadingMap() - . = _load_impl(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, new_z) + . = _load_impl(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z) Master.StopLoadingMap() #define MAPLOADING_CHECK_TICK \ if(TICK_CHECK) { \ - SSatoms.map_loader_stop(); \ - stoplag(); \ - SSatoms.map_loader_begin(); \ + if(loading) { \ + SSatoms.map_loader_stop(REF(src)); \ + stoplag(); \ + SSatoms.map_loader_begin(REF(src)); \ + } else { \ + stoplag(); \ + } \ } // Do not call except via load() above. -/datum/parsed_map/proc/_load_impl(x_offset = 1, y_offset = 1, z_offset = world.maxz + 1, cropMap = FALSE, no_changeturf = FALSE, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, placeOnTop = FALSE, new_z = FALSE) +/datum/parsed_map/proc/_load_impl(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z) PRIVATE_PROC(TRUE) // Tell ss atoms that we're doing maploading // We'll have to account for this in the following tick_checks so it doesn't overflow - SSatoms.map_loader_begin() + loading = TRUE + SSatoms.map_loader_begin(REF(src)) // Loading used to be done in this proc // We make the assumption that if the inner procs runtime, we WANT to do cleanup on them, but we should stil tell our parents we failed @@ -267,12 +340,13 @@ var/sucessful = FALSE switch(map_format) if(MAP_TGM) - sucessful = _tgm_load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, new_z) + sucessful = _tgm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z) else - sucessful = _dmm_load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, new_z) + sucessful = _dmm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z) // And we are done lads, call it off - SSatoms.map_loader_stop() + loading = FALSE + SSatoms.map_loader_stop(REF(src)) if(new_z) for(var/z_index in bounds[MAP_MINZ] to bounds[MAP_MAXZ]) @@ -300,7 +374,7 @@ // In the tgm format, each gridset contains 255 lines, each line representing one tile, with 255 total gridsets // In the dmm format, each gridset contains 255 lines, each line representing one row of tiles, containing 255 * line length characters, with one gridset per z // You can think of dmm as storing maps in rows, whereas tgm stores them in columns -/datum/parsed_map/proc/_tgm_load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, new_z) +/datum/parsed_map/proc/_tgm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z) // setup var/list/modelCache = build_cache(no_changeturf) var/space_key = modelCache[SPACE_KEY] @@ -321,12 +395,12 @@ var/relative_y = first_column.ycrd var/highest_y = relative_y + y_relative_to_absolute - if(!cropMap && highest_y > world.maxx) + if(!crop_map && highest_y > world.maxy) if(new_z) // Need to avoid improperly loaded area/turf_contents - world.increaseMaxY(highest_y, max_zs_to_load = z_offset - 1) + world.increase_max_y(highest_y, map_load_z_cutoff = z_offset - 1) else - world.increaseMaxY(highest_y) + world.increase_max_y(highest_y) expanded_y = TRUE // Skip Y coords that are above the smallest of the three params @@ -334,8 +408,7 @@ var/y_skip_above = min(world.maxy - y_relative_to_absolute, y_upper, relative_y) // How many lines to skip because they'd be above the y cuttoff line var/y_starting_skip = relative_y - y_skip_above - highest_y += y_starting_skip - + highest_y -= y_starting_skip // Y is the LOWEST it will ever be here, so we can easily set a threshold for how low to go var/line_count = length(first_column.gridLines) @@ -344,7 +417,7 @@ // X setup var/x_delta_with = x_upper - if(cropMap) + if(crop_map) // Take our smaller crop threshold yes? x_delta_with = min(x_delta_with, world.maxx) @@ -358,33 +431,51 @@ // If our relative x is greater then X upper, well then we've gotta limit our expansion var/delta = max(final_x - x_delta_with, 0) final_x -= delta - if(final_x > world.maxx && !cropMap) + if(final_x > world.maxx && !crop_map) if(new_z) // Need to avoid improperly loaded area/turf_contents - world.increaseMaxX(final_x, max_zs_to_load = z_offset - 1) + world.increase_max_x(final_x, map_load_z_cutoff = z_offset - 1) else - world.increaseMaxX(final_x) + world.increase_max_x(final_x) expanded_x = TRUE var/lowest_x = max(x_lower, 1 - x_relative_to_absolute) + // Amount we offset the grid zcrd to get the true zcrd + var/grid_z_offset = z_offset - 1 + var/z_upper_set = z_upper < INFINITY + var/z_lower_set = z_lower > -INFINITY + // We make the assumption that the last block of turfs will have the highest embedded z in it - var/highest_z = last_column.zcrd + z_offset - 1 // Lets not just make a new z level each time we increment maxz + // true max zcrd + var/map_bounds_z_max = last_column.zcrd + var/z_upper_parsed = map_bounds_z_max + z_offset - 1 + if(z_upper_set) + z_upper_parsed -= map_bounds_z_max - z_upper + if(z_lower_set) + var/offset_amount = z_lower - 1 + z_upper_parsed -= offset_amount + grid_z_offset -= offset_amount + + var/list/target_grid_sets = gridSets + if(z_lower_set || z_upper_set) // bounds are set, filter out gridsets for z levels we don't want + target_grid_sets = filter_grid_sets_based_on_z_bounds(z_lower, z_upper) + var/z_threshold = world.maxz - if(highest_z > z_threshold && cropMap) - for(var/i in z_threshold + 1 to highest_z) //create a new z_level if needed + if(z_upper_parsed > z_threshold && crop_map) + for(var/i in z_threshold + 1 to z_upper_parsed) //create a new z_level if needed world.incrementMaxZ() if(!no_changeturf) WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called") - for(var/datum/grid_set/gset as anything in gridSets) + for(var/datum/grid_set/gset as anything in target_grid_sets) var/true_xcrd = gset.xcrd + x_relative_to_absolute // any cutoff of x means we just shouldn't iterate this gridset if(final_x < true_xcrd || lowest_x > gset.xcrd) continue - var/zcrd = gset.zcrd + z_offset - 1 + var/zcrd = gset.zcrd + grid_z_offset // If we're using changeturf, we disable it if we load into a z level we JUST created var/no_afterchange = no_changeturf || zcrd > z_threshold @@ -409,9 +500,9 @@ var/list/cache = modelCache[gset.gridLines[i]] if(!cache) - SSatoms.map_loader_stop() + SSatoms.map_loader_stop(REF(src)) CRASH("Undefined model key in DMM: [gset.gridLines[i]]") - build_coordinate(cache, locate(true_xcrd, ycrd, zcrd), no_afterchange, placeOnTop, new_z) + build_coordinate(cache, locate(true_xcrd, ycrd, zcrd), no_afterchange, place_on_top, new_z) // only bother with bounds that actually exist if(!first_found) @@ -435,7 +526,7 @@ /// Stanrdard loading, not used in production /// Doesn't take advantage of any tgm optimizations, which makes it slower but also more general /// Use this if for some reason your map format is messy -/datum/parsed_map/proc/_dmm_load(x_offset, y_offset, z_offset, cropMap, no_changeturf, x_lower, x_upper, y_lower, y_upper, placeOnTop, new_z) +/datum/parsed_map/proc/_dmm_load(x_offset, y_offset, z_offset, crop_map, no_changeturf, x_lower, x_upper, y_lower, y_upper, z_lower, z_upper, place_on_top, new_z) // setup var/list/modelCache = build_cache(no_changeturf) var/space_key = modelCache[SPACE_KEY] @@ -446,23 +537,46 @@ var/y_relative_to_absolute = y_offset - 1 var/x_relative_to_absolute = x_offset - 1 var/line_len = src.line_len - for(var/datum/grid_set/gset as anything in gridSets) + + // Amount we offset the grid zcrd to get the true zcrd + var/grid_z_offset = z_offset - 1 + var/z_upper_set = z_upper < INFINITY + var/z_lower_set = z_lower > -INFINITY + + // we now need to find the maximum z, fun! + var/map_bounds_z_max = 1 + for(var/datum/grid_set/grid_set as anything in gridSets) + map_bounds_z_max = max(map_bounds_z_max, grid_set.zcrd) + + var/z_upper_parsed = map_bounds_z_max + z_offset - 1 + if(z_upper_set) + z_upper_parsed -= map_bounds_z_max - z_upper + if(z_lower_set) + var/offset_amount = z_lower - 1 + z_upper_parsed -= offset_amount + grid_z_offset -= offset_amount + + var/list/target_grid_sets = gridSets + if(z_lower_set || z_upper_set) // bounds are set, filter out gridsets for z levels we don't want + target_grid_sets = filter_grid_sets_based_on_z_bounds(z_lower, z_upper) + + for(var/datum/grid_set/gset as anything in target_grid_sets) var/relative_x = gset.xcrd var/relative_y = gset.ycrd var/true_xcrd = relative_x + x_relative_to_absolute var/ycrd = relative_y + y_relative_to_absolute - var/zcrd = gset.zcrd + z_offset - 1 - if(!cropMap && ycrd > world.maxy) + var/zcrd = gset.zcrd + grid_z_offset + if(!crop_map && ycrd > world.maxy) if(new_z) // Need to avoid improperly loaded area/turf_contents - world.increaseMaxY(ycrd, max_zs_to_load = z_offset - 1) + world.increase_max_y(ycrd, map_load_z_cutoff = z_offset - 1) else - world.increaseMaxY(ycrd) + world.increase_max_y(ycrd) expanded_y = TRUE var/zexpansion = zcrd > world.maxz var/no_afterchange = no_changeturf if(zexpansion) - if(cropMap) + if(crop_map) continue else while (zcrd > world.maxz) //create a new z_level if needed @@ -499,7 +613,7 @@ var/x_step_count = ROUND_UP(x_target / key_len) var/final_x = relative_x + (x_step_count - 1) var/x_delta_with = x_upper - if(cropMap) + if(crop_map) // Take our smaller crop threshold yes? x_delta_with = min(x_delta_with, world.maxx) if(final_x > x_delta_with) @@ -508,12 +622,12 @@ x_step_count -= delta final_x -= delta x_target = x_step_count * key_len - if(final_x > world.maxx && !cropMap) + if(final_x > world.maxx && !crop_map) if(new_z) // Need to avoid improperly loaded area/turf_contents - world.increaseMaxX(final_x, max_zs_to_load = z_offset - 1) + world.increase_max_x(final_x, map_load_z_cutoff = z_offset - 1) else - world.increaseMaxX(final_x) + world.increase_max_x(final_x) expanded_x = TRUE // We're gonna track the first and last pairs of coords we find @@ -542,9 +656,9 @@ continue var/list/cache = modelCache[model_key] if(!cache) - SSatoms.map_loader_stop() + SSatoms.map_loader_stop(REF(src)) CRASH("Undefined model key in DMM: [model_key]") - build_coordinate(cache, locate(xcrd, ycrd, zcrd), no_afterchange, placeOnTop, new_z) + build_coordinate(cache, locate(xcrd, ycrd, zcrd), no_afterchange, place_on_top, new_z) // only bother with bounds that actually exist if(!first_found) @@ -956,6 +1070,7 @@ GLOBAL_LIST_EMPTY(map_model_default) /datum/parsed_map/Destroy() ..() + SSatoms.map_loader_stop(REF(src)) // Just in case, I don't want to double up here if(turf_blacklist) turf_blacklist.Cut() parsed_bounds.Cut() diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm index 4dc57701d178..a7b9480a34e4 100644 --- a/code/modules/mapping/ruins.dm +++ b/code/modules/mapping/ruins.dm @@ -51,10 +51,10 @@ return central_turf /datum/map_template/ruin/proc/place_on_isolated_level(z) - var/datum/turf_reservation/reservation = SSmapping.RequestBlockReservation(width, height, z) //Make the new level creation work with different traits. + var/datum/turf_reservation/reservation = SSmapping.request_turf_block_reservation(width, height, 1, z) //Make the new level creation work with different traits. if(!reservation) return - var/turf/placement = locate(reservation.bottom_left_coords[1],reservation.bottom_left_coords[2],reservation.bottom_left_coords[3]) + var/turf/placement = reservation.bottom_left_turfs[1] load(placement) loaded++ for(var/turf/T in get_affected_turfs(placement)) @@ -133,7 +133,7 @@ for(var/v in current_pick.always_spawn_with) if(current_pick.always_spawn_with[v] == PLACE_BELOW) var/turf/T = locate(1,1,target_z) - if(!SSmapping.get_turf_below(T)) + if(!GET_TURF_BELOW(T)) if(forced_z) continue outer else @@ -183,7 +183,7 @@ if(PLACE_DEFAULT) forced_ruins[linked] = -1 if(PLACE_BELOW) - forced_ruins[linked] = SSmapping.get_turf_below(placed_turf) + forced_ruins[linked] = GET_TURF_BELOW(placed_turf) if(PLACE_ISOLATED) forced_ruins[linked] = SSmapping.get_isolated_ruin_z() diff --git a/code/modules/mapping/space_management/multiz_helpers.dm b/code/modules/mapping/space_management/multiz_helpers.dm index 39f662deaa4f..b0e2ff7fa065 100644 --- a/code/modules/mapping/space_management/multiz_helpers.dm +++ b/code/modules/mapping/space_management/multiz_helpers.dm @@ -1,10 +1,11 @@ /proc/get_step_multiz(ref, dir) + var/turf/us = get_turf(ref) if(dir & UP) dir &= ~UP - return get_step(SSmapping.get_turf_above(get_turf(ref)), dir) + return get_step(GET_TURF_ABOVE(us), dir) if(dir & DOWN) dir &= ~DOWN - return get_step(SSmapping.get_turf_below(get_turf(ref)), dir) + return get_step(GET_TURF_BELOW(us), dir) return get_step(ref, dir) /proc/get_dir_multiz(turf/us, turf/them) @@ -15,37 +16,31 @@ if(us.z == them.z) return get_dir(us, them) else - var/turf/T = us.above() + var/turf/T = GET_TURF_ABOVE(us) var/dir = NONE if(T && (T.z == them.z)) dir = UP else - T = us.below() + T = GET_TURF_BELOW(us) if(T && (T.z == them.z)) dir = DOWN else return get_dir(us, them) return (dir | get_dir(us, them)) -/turf/proc/above() - return get_step_multiz(src, UP) - -/turf/proc/below() - return get_step_multiz(src, DOWN) - /proc/get_lowest_turf(atom/ref) var/turf/us = get_turf(ref) - var/next = SSmapping.get_turf_below(us) + var/turf/next = GET_TURF_BELOW(us) while(next) us = next - next = SSmapping.get_turf_below(us) + next = GET_TURF_BELOW(us) return us // I wish this was lisp /proc/get_highest_turf(atom/ref) var/turf/us = get_turf(ref) - var/next = SSmapping.get_turf_above(us) + var/turf/next = GET_TURF_ABOVE(us) while(next) us = next - next = SSmapping.get_turf_above(us) + next = GET_TURF_ABOVE(us) return us diff --git a/code/modules/mapping/space_management/space_reservation.dm b/code/modules/mapping/space_management/space_reservation.dm index fff31893d0e7..cd59060c82d0 100644 --- a/code/modules/mapping/space_management/space_reservation.dm +++ b/code/modules/mapping/space_management/space_reservation.dm @@ -1,16 +1,33 @@ //Yes, they can only be rectangular. //Yes, I'm sorry. /datum/turf_reservation + /// All turfs that we've reserved var/list/reserved_turfs = list() - ///Turfs around the reservation for cordoning + + /// Turfs around the reservation for cordoning var/list/cordon_turfs = list() - ///Area of turfs next to the cordon to fill with pre_cordon_area's + + /// Area of turfs next to the cordon to fill with pre_cordon_area's var/list/pre_cordon_turfs = list() + + /// The width of the reservation var/width = 0 + + /// The height of the reservation var/height = 0 - var/bottom_left_coords[3] - var/top_right_coords[3] + + /// The z stack size of the reservation. Note that reservations are ALWAYS reserved from the bottom up + var/z_size = 0 + + /// List of the bottom left turfs. Indexed by what their z index for this reservation is + var/list/bottom_left_turfs = list() + + /// List of the top right turfs. Indexed by what their z index for this reservation is + var/list/top_right_turfs = list() + + /// The turf type the reservation is initially made with var/turf_type = /turf/open/space + ///Distance away from the cordon where we can put a "sort-cordon" and run some extra code (see make_repel). 0 makes nothing happen var/pre_cordon_distance = 0 @@ -19,6 +36,9 @@ pre_cordon_distance = 7 /datum/turf_reservation/proc/Release() + bottom_left_turfs.Cut() + top_right_turfs.Cut() + var/list/reserved_copy = reserved_turfs.Copy() SSmapping.used_turfs -= reserved_turfs reserved_turfs = list() @@ -36,20 +56,20 @@ INVOKE_ASYNC(SSmapping, TYPE_PROC_REF(/datum/controller/subsystem/mapping, reserve_turfs), release_turfs) /// Attempts to calaculate and store a list of turfs around the reservation for cordoning. Returns whether a valid cordon was calculated -/datum/turf_reservation/proc/calculate_cordon_turfs(turf/BL, turf/TR) - if(BL.x < 2 || BL.y < 2 || TR.x > (world.maxx - 2) || TR.y > (world.maxy - 2)) +/datum/turf_reservation/proc/calculate_cordon_turfs(turf/bottom_left, turf/top_right) + if(bottom_left.x < 2 || bottom_left.y < 2 || top_right.x > (world.maxx - 2) || top_right.y > (world.maxy - 2)) return FALSE // no space for a cordon here - var/list/possible_turfs = CORNER_OUTLINE(BL, width, height) + var/list/possible_turfs = CORNER_OUTLINE(bottom_left, width, height) + // if they're our cordon turfs, accept them + possible_turfs -= cordon_turfs for(var/turf/cordon_turf as anything in possible_turfs) - if(!(cordon_turf.flags_1 & UNUSED_RESERVATION_TURF)) + if(!(cordon_turf.turf_flags & UNUSED_RESERVATION_TURF)) return FALSE - cordon_turfs = possible_turfs - - pre_cordon_turfs.Cut() + cordon_turfs |= possible_turfs if(pre_cordon_distance) - var/turf/offset_turf = locate(BL.x + pre_cordon_distance, BL.y + pre_cordon_distance, BL.z) + var/turf/offset_turf = locate(bottom_left.x + pre_cordon_distance, bottom_left.y + pre_cordon_distance, bottom_left.z) var/list/to_add = CORNER_OUTLINE(offset_turf, width - pre_cordon_distance * 2, height - pre_cordon_distance * 2) //we step-by-stop move inwards from the outer cordon for(var/turf/turf_being_added as anything in to_add) pre_cordon_turfs |= turf_being_added //add one by one so we can filter out duplicates @@ -64,10 +84,11 @@ old_area.turfs_to_uncontain += cordon_turf cordon_area.contained_turfs += cordon_turf cordon_area.contents += cordon_turf + // Its no longer unused, but its also not "used" + cordon_turf.turf_flags &= ~UNUSED_RESERVATION_TURF cordon_turf.ChangeTurf(/turf/cordon, /turf/cordon) - - cordon_turf.flags_1 &= ~UNUSED_RESERVATION_TURF SSmapping.unused_turfs["[cordon_turf.z]"] -= cordon_turf + // still gets linked to us though SSmapping.used_turfs[cordon_turf] = src //swap the area with the pre-cordoning area @@ -106,7 +127,9 @@ dump_in_space(enterer) -/datum/turf_reservation/proc/Reserve(width, height, zlevel) + +/// Internal proc which handles reserving the area for the reservation. +/datum/turf_reservation/proc/_reserve_area(width, height, zlevel) src.width = width src.height = height if(width > world.maxx || height > world.maxy || width < 1 || height < 1) @@ -119,12 +142,12 @@ for(var/i in avail) CHECK_TICK BL = i - if(!(BL.flags_1 & UNUSED_RESERVATION_TURF)) + if(!(BL.turf_flags & UNUSED_RESERVATION_TURF)) continue if(BL.x + width > world.maxx || BL.y + height > world.maxy) continue TR = locate(BL.x + width - 1, BL.y + height - 1, BL.z) - if(!(TR.flags_1 & UNUSED_RESERVATION_TURF)) + if(!(TR.turf_flags & UNUSED_RESERVATION_TURF)) continue final = block(BL, TR) if(!final) @@ -132,7 +155,7 @@ passing = TRUE for(var/I in final) var/turf/checking = I - if(!(checking.flags_1 & UNUSED_RESERVATION_TURF)) + if(!(checking.turf_flags & UNUSED_RESERVATION_TURF)) passing = FALSE break if(passing) // found a potentially valid area, now try to calculate its cordon @@ -142,18 +165,94 @@ break if(!passing || !istype(BL) || !istype(TR)) return FALSE - bottom_left_coords = list(BL.x, BL.y, BL.z) - top_right_coords = list(TR.x, TR.y, TR.z) for(var/i in final) var/turf/T = i reserved_turfs |= T - T.flags_1 &= ~UNUSED_RESERVATION_TURF SSmapping.unused_turfs["[T.z]"] -= T SSmapping.used_turfs[T] = src + T.turf_flags = (T.turf_flags | RESERVATION_TURF) & ~UNUSED_RESERVATION_TURF T.ChangeTurf(turf_type, turf_type) + + bottom_left_turfs += BL + top_right_turfs += TR + return TRUE + +/datum/turf_reservation/proc/reserve(width, height, z_size, z_reservation) + src.z_size = z_size + var/failed_reservation = FALSE + for(var/_ in 1 to z_size) + if(!_reserve_area(width, height, z_reservation)) + failed_reservation = TRUE + break + + if(failed_reservation) + Release() + return FALSE + generate_cordon() return TRUE +/// Calculates the effective bounds information for the given turf. Returns a list of the information, or null if not applicable. +/datum/turf_reservation/proc/calculate_turf_bounds_information(turf/target) + for(var/z_idx in 1 to z_size) + var/turf/bottom_left = bottom_left_turfs[z_idx] + var/turf/top_right = top_right_turfs[z_idx] + var/bl_x = bottom_left.x + var/bl_y = bottom_left.y + var/tr_x = top_right.x + var/tr_y = top_right.y + + if(target.x < bl_x) + continue + + if(target.y < bl_y) + continue + + if(target.x > tr_x) + continue + + if(target.y > tr_y) + continue + + var/list/return_information = list() + return_information["z_idx"] = z_idx + return_information["offset_x"] = target.x - bl_x + return_information["offset_y"] = target.y - bl_y + return return_information + return null + +/// Gets the turf below the given target. Returns null if there is no turf below the target +/datum/turf_reservation/proc/get_turf_below(turf/target) + var/list/bounds_info = calculate_turf_bounds_information(target) + if(isnull(bounds_info)) + return null + + var/z_idx = bounds_info["z_idx"] + // check what z level, if its the max, then there is no turf below + if(z_idx == z_size) + return null + + var/offset_x = bounds_info["offset_x"] + var/offset_y = bounds_info["offset_y"] + var/turf/bottom_left = bottom_left_turfs[z_idx + 1] + return locate(bottom_left.x + offset_x, bottom_left.y + offset_y, bottom_left.z) + +/// Gets the turf above the given target. Returns null if there is no turf above the target +/datum/turf_reservation/proc/get_turf_above(turf/target) + var/list/bounds_info = calculate_turf_bounds_information(target) + if(isnull(bounds_info)) + return null + + var/z_idx = bounds_info["z_idx"] + // check what z level, if its the min, then there is no turf above + if(z_idx == 1) + return null + + var/offset_x = bounds_info["offset_x"] + var/offset_y = bounds_info["offset_y"] + var/turf/bottom_left = bottom_left_turfs[z_idx - 1] + return locate(bottom_left.x + offset_x, bottom_left.y + offset_y, bottom_left.z) + /datum/turf_reservation/New() LAZYADD(SSmapping.turf_reservations, src) diff --git a/code/modules/mapping/space_management/traits.dm b/code/modules/mapping/space_management/traits.dm index b68e3f77b8a7..9841f85ebd7e 100644 --- a/code/modules/mapping/space_management/traits.dm +++ b/code/modules/mapping/space_management/traits.dm @@ -49,25 +49,6 @@ final_return += level.z_value return final_return -/// Attempt to get the turf below the provided one according to Z traits -/datum/controller/subsystem/mapping/proc/get_turf_below(turf/T) - if (!T || !length(multiz_levels)) - return - var/offset = multiz_levels[T.z]["[DOWN]"] - if (!offset) - return - return locate(T.x, T.y, T.z - offset) - -/// Attempt to get the turf above the provided one according to Z traits -/datum/controller/subsystem/mapping/proc/get_turf_above(turf/T) - if (!T || !length(multiz_levels)) - return - - var/offset = multiz_levels[T.z]["[UP]"] - if (!offset) - return - return locate(T.x, T.y, T.z + offset) - /// Prefer not to use this one too often /datum/controller/subsystem/mapping/proc/get_station_center() var/station_z = levels_by_trait(ZTRAIT_STATION)[1] diff --git a/code/modules/mob/dead/new_player/login.dm b/code/modules/mob/dead/new_player/login.dm index f1e141618ba9..9ba63090bcb0 100644 --- a/code/modules/mob/dead/new_player/login.dm +++ b/code/modules/mob/dead/new_player/login.dm @@ -42,7 +42,10 @@ add_sight(SEE_TURFS) - client.playtitlemusic() + if(!client.media) + client.media = new /datum/media_manager(client) + client.media.open() + client.media.update_music() var/datum/asset/asset_datum = get_asset_datum(/datum/asset/simple/lobby) asset_datum.send(client) @@ -66,3 +69,5 @@ to_chat(src, "Please set up your character and select \"Ready\". The game will start [tl > 0 ? "in about [DisplayTimeText(tl)]" : "soon"].") + spawn(4 SECONDS) + client.playtitlemusic() diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index dc5eefc24cbd..21b337521ff5 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -326,6 +326,8 @@ return if(!T) T = get_turf(src) + if(isclosedturf(T) || (isgroundlessturf(T) && !GET_TURF_BELOW(T))) + return var/datum/reagent/blood_type = get_blood_id() var/list/temp_blood_DNA diff --git a/code/modules/mob/living/carbon/alien/adult/adult_update_icons.dm b/code/modules/mob/living/carbon/alien/adult/adult_update_icons.dm index 61384acaec42..4ca4f12b977e 100644 --- a/code/modules/mob/living/carbon/alien/adult/adult_update_icons.dm +++ b/code/modules/mob/living/carbon/alien/adult/adult_update_icons.dm @@ -67,7 +67,7 @@ if(handcuffed) var/mutable_appearance/handcuff_overlay = mutable_appearance(dmi_file, cuff_icon, -HANDCUFF_LAYER) - if(handcuffed.blocks_emissive) + if(handcuffed.blocks_emissive != EMISSIVE_BLOCK_NONE) handcuff_overlay += emissive_blocker(handcuff_overlay.icon, handcuff_overlay.icon_state, src, alpha = handcuff_overlay.alpha) overlays_standing[HANDCUFF_LAYER] = handcuff_overlay @@ -86,7 +86,7 @@ if(!itm_state) itm_state = l_hand.icon_state var/mutable_appearance/l_hand_item = mutable_appearance(alt_inhands_file, "[itm_state][caste]_l", -HANDS_LAYER) - if(l_hand.blocks_emissive) + if(l_hand.blocks_emissive != EMISSIVE_BLOCK_NONE) l_hand_item.overlays += emissive_blocker(l_hand_item.icon, l_hand_item.icon_state, src, alpha = l_hand_item.alpha) hands += l_hand_item @@ -96,7 +96,7 @@ if(!itm_state) itm_state = r_hand.icon_state var/mutable_appearance/r_hand_item = mutable_appearance(alt_inhands_file, "[itm_state][caste]_r", -HANDS_LAYER) - if(r_hand.blocks_emissive) + if(r_hand.blocks_emissive != EMISSIVE_BLOCK_NONE) r_hand_item.overlays += emissive_blocker(r_hand_item.icon, r_hand_item.icon_state, src, alpha = r_hand_item.alpha) hands += r_hand_item diff --git a/code/modules/mob/living/carbon/carbon_update_icons.dm b/code/modules/mob/living/carbon/carbon_update_icons.dm index b5ac4c271890..32490dbd6f5f 100644 --- a/code/modules/mob/living/carbon/carbon_update_icons.dm +++ b/code/modules/mob/living/carbon/carbon_update_icons.dm @@ -412,7 +412,7 @@ remove_overlay(HANDCUFF_LAYER) if(handcuffed) var/mutable_appearance/handcuff_overlay = mutable_appearance('icons/mob/simple/mob.dmi', "handcuff1", -HANDCUFF_LAYER) - if(handcuffed.blocks_emissive) + if(handcuffed.blocks_emissive != EMISSIVE_BLOCK_NONE) handcuff_overlay.overlays += emissive_blocker(handcuff_overlay.icon, handcuff_overlay.icon_state, src, alpha = handcuff_overlay.alpha) overlays_standing[HANDCUFF_LAYER] = handcuff_overlay @@ -453,7 +453,7 @@ RETURN_TYPE(/list) . = list() - if(blocks_emissive) + if(blocks_emissive != EMISSIVE_BLOCK_NONE) . += emissive_blocker(standing.icon, standing.icon_state, src, alpha = standing.alpha) SEND_SIGNAL(src, COMSIG_ITEM_GET_WORN_OVERLAYS, ., standing, isinhands, icon_file) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 337ab1664201..00ea009c117a 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -875,6 +875,8 @@ GLOBAL_LIST_EMPTY(features_by_species) else accessory_overlay.color = forced_colour standing += accessory_overlay + if(accessory.is_emissive) + standing += emissive_appearance_copy(accessory_overlay, source) if(length(accessory.body_slots) || length(accessory.external_slots) || istype(source, /mob/living/carbon/human/dummy/extra_tall)) standing += return_accessory_layer(layer, accessory, source, accessory_overlay.color) @@ -890,6 +892,8 @@ GLOBAL_LIST_EMPTY(features_by_species) inner_accessory_overlay = center_image(inner_accessory_overlay, accessory.dimension_x, accessory.dimension_y) standing += inner_accessory_overlay + if(accessory.is_emissive) + standing += emissive_appearance_copy(accessory_overlay, source) source.overlays_standing[layer] = standing.Copy() standing = list() diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index e1abf090d9a8..a5f73b1c1401 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -39,6 +39,7 @@ species_language_holder = /datum/language_holder/lizard digitigrade_customization = DIGITIGRADE_OPTIONAL + mutanteyes = /obj/item/organ/internal/eyes/lizard // Lizards are coldblooded and can stand a greater temperature range than humans bodytemp_heat_damage_limit = (BODYTEMP_HEAT_DAMAGE_LIMIT + 20) // This puts lizards 10 above lavaland max heat for ash lizards. bodytemp_cold_damage_limit = (BODYTEMP_COLD_DAMAGE_LIMIT - 10) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 471dec0a9d2d..5b7ee004c039 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -224,3 +224,6 @@ var/datum/stamina_container/stamina /// What our current gravity state is. Used to avoid duplicate animates and such var/gravity_state = null + + /// Whether this mob can be mutated into a cybercop via quantum server get_valid_domain_targets(). Specifically dodges megafauna + var/can_be_cybercop = TRUE diff --git a/code/modules/mob/living/silicon/ai/multicam.dm b/code/modules/mob/living/silicon/ai/multicam.dm index 984f1af30ba8..97c461b85d40 100644 --- a/code/modules/mob/living/silicon/ai/multicam.dm +++ b/code/modules/mob/living/silicon/ai/multicam.dm @@ -86,7 +86,7 @@ name = "" icon = 'icons/misc/pic_in_pic.dmi' icon_state = "room_background" - flags_1 = NOJAUNT + turf_flags = NOJAUNT /turf/open/ai_visible/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 04d7ac560235..baeb6123d251 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -38,6 +38,7 @@ /mob/living/simple_animal/hostile/retaliate/goat/Initialize(mapload) AddComponent(/datum/component/udder) + AddElement(/datum/element/cliff_walking) //we walk the cliff . = ..() /mob/living/simple_animal/hostile/retaliate/goat/Life(seconds_per_tick = SSMOBS_DT, times_fired) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm index 0cf2d1ef787c..ece63945e320 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/_megafauna.dm @@ -74,7 +74,10 @@ return ..() /mob/living/simple_animal/hostile/megafauna/death(gibbed, list/force_grant) - if(health > 0) + if(gibbed) // in case they've been force dusted + return ..() + + if(health > 0) // prevents instakills return var/datum/status_effect/crusher_damage/crusher_dmg = has_status_effect(/datum/status_effect/crusher_damage) ///Whether we killed the megafauna with primarily crusher damage or not @@ -99,14 +102,17 @@ /mob/living/simple_animal/hostile/megafauna/gib() if(health > 0) return - else - ..() + + return ..() /mob/living/simple_animal/hostile/megafauna/dust(just_ash, drop_items, force) if(!force && health > 0) return - else - ..() + + crusher_loot.Cut() + loot.Cut() + + return ..() /mob/living/simple_animal/hostile/megafauna/AttackingTarget() if(recovery_time >= world.time) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index b9c0dedcfa52..7d2f9226d5a3 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -273,7 +273,7 @@ if(!isclosedturf(T) && !islava(T)) var/lava_turf = /turf/open/lava/smooth var/reset_turf = T.type - T.ChangeTurf(lava_turf, flags = CHANGETURF_INHERIT_AIR) + T.TerraformTurf(lava_turf, flags = CHANGETURF_INHERIT_AIR) addtimer(CALLBACK(T, TYPE_PROC_REF(/turf, ChangeTurf), reset_turf, null, CHANGETURF_INHERIT_AIR), reset_time, TIMER_OVERRIDE|TIMER_UNIQUE) /obj/effect/temp_visual/drakewall diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index ced8c60af6ed..0bdf2f18bb07 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -267,6 +267,10 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/wendigo/death(gibbed, list/force_grant) if(health > 0) return + + if(!true_spawn) + return ..() + var/obj/effect/portal/permanent/one_way/exit = new /obj/effect/portal/permanent/one_way(starting) exit.id = "wendigo arena exit" exit.add_atom_colour(COLOR_RED_LIGHT, ADMIN_COLOUR_PRIORITY) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 475510ffbb69..09e3fe1f2546 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -450,19 +450,21 @@ drop_loot() if(dextrous) drop_all_held_items() + if(del_on_death) ..() //Prevent infinite loops if the mob Destroy() is overridden in such //a manner as to cause a call to death() again //Pain del_on_death = FALSE qdel(src) - else - health = 0 - icon_state = icon_dead - if(flip_on_death) - transform = transform.Turn(180) - set_density(FALSE) - ..() + return + + health = 0 + icon_state = icon_dead + if(flip_on_death) + transform = transform.Turn(180) + //ADD_TRAIT(src, TRAIT_UNDENSE, BASIC_MOB_DEATH_TRAIT) + return ..() /mob/living/simple_animal/proc/CanAttack(atom/the_target) if(see_invisible < the_target.invisibility) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index f60a343198c7..71e675ee5b97 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -53,6 +53,10 @@ if(mock_client) mock_client.mob = null + if(SSparticle_weather.running_weather) + if(src in SSparticle_weather.running_weather.messaged_mobs) + SSparticle_weather.running_weather.messaged_mobs -= src + return ..() /mob/New() diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index e84ab2604cb0..333eab324d52 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -521,7 +521,7 @@ set category = "IC" var/turf/current_turf = get_turf(src) - var/turf/above_turf = SSmapping.get_turf_above(current_turf) + var/turf/above_turf = GET_TURF_ABOVE(current_turf) var/ventcrawling_flag = HAS_TRAIT(src, TRAIT_MOVE_VENTCRAWLING) ? ZMOVE_VENTCRAWLING : 0 if(!above_turf) @@ -548,7 +548,7 @@ set category = "IC" var/turf/current_turf = get_turf(src) - var/turf/below_turf = SSmapping.get_turf_below(current_turf) + var/turf/below_turf = GET_TURF_BELOW(current_turf) if(!below_turf) to_chat(src, span_warning("There's nowhere to go in that direction!")) return diff --git a/code/modules/mob_spawn/mob_spawn.dm b/code/modules/mob_spawn/mob_spawn.dm index 8b72669769fb..0548f0ee937b 100644 --- a/code/modules/mob_spawn/mob_spawn.dm +++ b/code/modules/mob_spawn/mob_spawn.dm @@ -32,6 +32,8 @@ var/facial_haircolor ///sets a human's skin tone var/skin_tone + /// Weakref to the mob this spawner created - just if you needed to do something with it. + var/datum/weakref/spawned_mob_ref /obj/effect/mob_spawn/Initialize(mapload) . = ..() @@ -44,6 +46,7 @@ name_mob(spawned_mob, newname) special(spawned_mob, mob_possessor) equip(spawned_mob) + spawned_mob_ref = WEAKREF(spawned_mob) return spawned_mob /obj/effect/mob_spawn/proc/special(mob/living/spawned_mob) @@ -223,6 +226,7 @@ if(isnull(created)) // If we explicitly return FALSE instead of just not returning a mob, we don't want to spam the admins CRASH("An instance of [type] didn't return anything when creating a mob, this might be broken!") + SEND_SIGNAL(src, COMSIG_GHOSTROLE_SPAWNED, created) check_uses() // Now we check if the spawner should delete itself or not /obj/effect/mob_spawn/ghost_role/create(mob/mob_possessor, newname) diff --git a/code/modules/modular_computers/computers/item/role_tablet_presets.dm b/code/modules/modular_computers/computers/item/role_tablet_presets.dm index 64fa163a5e46..3dd8df819a57 100644 --- a/code/modules/modular_computers/computers/item/role_tablet_presets.dm +++ b/code/modules/modular_computers/computers/item/role_tablet_presets.dm @@ -253,6 +253,14 @@ /datum/computer_file/program/skill_tracker, ) +/obj/item/modular_computer/pda/bitrunner + name = "bit runner PDA" + greyscale_colors = "#D6B328#6BC906" + starting_programs = list( + /datum/computer_file/program/arcade, + /datum/computer_file/program/skill_tracker, + ) + /** * Service */ diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm index 17720fea0050..2003fe122493 100644 --- a/code/modules/photography/camera/camera.dm +++ b/code/modules/photography/camera/camera.dm @@ -187,13 +187,13 @@ var/list/turfs = list() var/list/mobs = list() var/blueprints = FALSE - var/clone_area = SSmapping.RequestBlockReservation(size_x * 2 + 1, size_y * 2 + 1) + var/clone_area = SSmapping.request_turf_block_reservation(size_x * 2 + 1, size_y * 2 + 1, 1) var/width = size_x * 2 var/height = size_y * 2 for(var/turf/placeholder as anything in CORNER_BLOCK_OFFSET(target_turf, width, height, -size_x, -size_y)) while(istype(placeholder, /turf/open/openspace)) //Multi-z photography - placeholder = SSmapping.get_turf_below(placeholder) + placeholder = GET_TURF_BELOW(placeholder) if(!placeholder) break diff --git a/code/modules/photography/camera/camera_image_capturing.dm b/code/modules/photography/camera/camera_image_capturing.dm index 6b48e29da52e..d928164ff014 100644 --- a/code/modules/photography/camera/camera_image_capturing.dm +++ b/code/modules/photography/camera/camera_image_capturing.dm @@ -16,13 +16,14 @@ var/wipe_atoms = FALSE if(istype(clone_area) && total_x == clone_area.width && total_y == clone_area.height && size_x >= 0 && size_y > 0) - var/cloned_center_x = round(clone_area.bottom_left_coords[1] + ((total_x - 1) / 2)) - var/cloned_center_y = round(clone_area.bottom_left_coords[2] + ((total_y - 1) / 2)) + var/turf/bottom_left = clone_area.bottom_left_turfs[1] + var/cloned_center_x = round(bottom_left.x + ((total_x - 1) / 2)) + var/cloned_center_y = round(bottom_left.y + ((total_y - 1) / 2)) for(var/t in turfs) var/turf/T = t var/offset_x = T.x - center.x var/offset_y = T.y - center.y - var/turf/newT = locate(cloned_center_x + offset_x, cloned_center_y + offset_y, clone_area.bottom_left_coords[3]) + var/turf/newT = locate(cloned_center_x + offset_x, cloned_center_y + offset_y, bottom_left.z) if(!(newT in clone_area.reserved_turfs)) //sanity check so we don't overwrite other areas somehow continue atoms += new /obj/effect/appearance_clone(newT, T) @@ -34,7 +35,7 @@ atoms += new /obj/effect/appearance_clone(newT, A) skip_normal = TRUE wipe_atoms = TRUE - center = locate(cloned_center_x, cloned_center_y, clone_area.bottom_left_coords[3]) + center = locate(cloned_center_x, cloned_center_y, bottom_left.z) if(!skip_normal) for(var/i in turfs) diff --git a/code/modules/power/multiz.dm b/code/modules/power/multiz.dm index 3c9d9ee5c3ad..b4e91a71c60f 100644 --- a/code/modules/power/multiz.dm +++ b/code/modules/power/multiz.dm @@ -9,11 +9,11 @@ /obj/structure/cable/multilayer/multiz/get_cable_connections(powernetless_only) . = ..() var/turf/T = get_turf(src) - . += locate(/obj/structure/cable/multilayer/multiz) in (SSmapping.get_turf_below(T)) - . += locate(/obj/structure/cable/multilayer/multiz) in (SSmapping.get_turf_above(T)) + . += locate(/obj/structure/cable/multilayer/multiz) in (GET_TURF_BELOW(T)) + . += locate(/obj/structure/cable/multilayer/multiz) in (GET_TURF_ABOVE(T)) /obj/structure/cable/multilayer/multiz/examine(mob/user) . = ..() var/turf/T = get_turf(src) - . += span_notice("[locate(/obj/structure/cable/multilayer/multiz) in (SSmapping.get_turf_below(T)) ? "Detected" : "Undetected"] hub UP.") - . += span_notice("[locate(/obj/structure/cable/multilayer/multiz) in (SSmapping.get_turf_above(T)) ? "Detected" : "Undetected"] hub DOWN.") + . += span_notice("[locate(/obj/structure/cable/multilayer/multiz) in (GET_TURF_BELOW(T)) ? "Detected" : "Undetected"] hub UP.") + . += span_notice("[locate(/obj/structure/cable/multilayer/multiz) in (GET_TURF_ABOVE(T)) ? "Detected" : "Undetected"] hub DOWN.") diff --git a/code/modules/procedural_mapping/mapGenerators/repair.dm b/code/modules/procedural_mapping/mapGenerators/repair.dm index c9df8496389d..505dc36f02c1 100644 --- a/code/modules/procedural_mapping/mapGenerators/repair.dm +++ b/code/modules/procedural_mapping/mapGenerators/repair.dm @@ -28,7 +28,18 @@ var/z_offset = SSmapping.station_start var/list/bounds for (var/path in SSmapping.config.GetFullMapPaths()) - var/datum/parsed_map/parsed = load_map(file(path), 1, 1, z_offset, measureOnly = FALSE, no_changeturf = FALSE, cropMap=TRUE, x_lower = mother1.x_low, y_lower = mother1.y_low, x_upper = mother1.x_high, y_upper = mother1.y_high) + var/datum/parsed_map/parsed = load_map( + file(path), + 1, + 1, + z_offset, + no_changeturf = FALSE, + crop_map = TRUE, + x_lower = mother1.x_low, + y_lower = mother1.y_low, + x_upper = mother1.x_high, + y_upper = mother1.y_high, + ) bounds = parsed?.bounds z_offset += bounds[MAP_MAXZ] - bounds[MAP_MINZ] + 1 diff --git a/code/modules/recycling/disposal/multiz.dm b/code/modules/recycling/disposal/multiz.dm index 63b130e230cb..17e27b5b6e69 100644 --- a/code/modules/recycling/disposal/multiz.dm +++ b/code/modules/recycling/disposal/multiz.dm @@ -23,11 +23,11 @@ return ..() //Are we a trunk that goes up? Or down? - var/turf/target = null + var/turf/target = get_turf(src) if(multiz_dir == MULTIZ_PIPE_UP) - target = SSmapping.get_turf_above(get_turf(src)) + target = GET_TURF_ABOVE(target) if(multiz_dir == MULTIZ_PIPE_DOWN) - target = SSmapping.get_turf_below(get_turf(src)) + target = GET_TURF_BELOW(target) if(!target) //Nothing located. return diff --git a/code/modules/research/bepis.dm b/code/modules/research/bepis.dm deleted file mode 100644 index fab66268f947..000000000000 --- a/code/modules/research/bepis.dm +++ /dev/null @@ -1,295 +0,0 @@ -//This system is designed to act as an in-between for cargo and science, and the first major money sink in the game outside of just buying things from cargo (As of 10/9/19, anyway). - -//economics defined values, subject to change should anything be too high or low in practice. - -#define MACHINE_OPERATION 100000 -#define MACHINE_OVERLOAD 500000 -#define MAJOR_THRESHOLD (6*CARGO_CRATE_VALUE) -#define MINOR_THRESHOLD (4*CARGO_CRATE_VALUE) -#define STANDARD_DEVIATION (2*CARGO_CRATE_VALUE) -#define PART_CASH_OFFSET_AMOUNT (0.5*CARGO_CRATE_VALUE) - -/obj/machinery/rnd/bepis - name = "\improper B.E.P.I.S. Chamber" - desc = "A high fidelity testing device which unlocks the secrets of the known universe using the two most powerful substances available to man: excessive amounts of electricity and capital." - icon = 'icons/obj/machines/bepis.dmi' - icon_state = "chamber" - base_icon_state = "chamber" - density = TRUE - layer = ABOVE_MOB_LAYER - plane = GAME_PLANE_UPPER - circuit = /obj/item/circuitboard/machine/bepis - - ///How much cash the UI and machine are depositing at a time. - var/banking_amount = 100 - ///How much stored player cash exists within the machine. - var/banked_cash = 0 - ///Payer's bank account. - var/datum/bank_account/account - ///Name on the payer's bank account. - var/account_name - ///When the BEPIS fails to hand out any reward, the ERROR cause will be a randomly picked string displayed on the UI. - var/error_cause = null - - //Vars related to probability and chance of success for testing, using gaussian normal distribution. - ///How much cash you will need to obtain a Major Tech Disk reward. - var/major_threshold = MAJOR_THRESHOLD - ///How much cash you will need to obtain a minor invention reward. - var/minor_threshold = MINOR_THRESHOLD - ///The standard deviation of the BEPIS's gaussian normal distribution. - var/std = STANDARD_DEVIATION - - //Stock part variables - ///Multiplier that lowers how much the BEPIS' power costs are. Maximum of 1, upgraded to a minimum of 0.7. See RefreshParts. - var/power_saver = 1 - ///Variability on the money you actively spend on the BEPIS, with higher inaccuracy making the most change, good and bad to spent cash. - var/inaccuracy_percentage = 1.5 - ///How much "cash" is added to your inserted cash efforts for free. Based on manipulator stock part level. - var/positive_cash_offset = 0 - ///How much "cost" is removed from both the minor and major threshold costs. Based on laser stock part level. - var/negative_cash_offset = 0 - ///List of objects that constitute your minor rewards. All rewards are unique or rare outside of the BEPIS. - var/minor_rewards = list( - //To add a new minor reward, add it here. - /obj/item/stack/circuit_stack/full, - /obj/item/pen/survival, - /obj/item/circuitboard/machine/sleeper/party, - /obj/item/toy/sprayoncan, - ) - -/obj/machinery/rnd/bepis/attackby(obj/item/O, mob/user, params) - if(!is_operational) - to_chat(user, span_notice("[src] can't accept money when it's not functioning.")) - return - if(istype(O, /obj/item/holochip) || istype(O, /obj/item/stack/spacecash)) - var/deposit_value = O.get_item_credit_value() - banked_cash += deposit_value - qdel(O) - say("Deposited [deposit_value] credits into storage.") - update_appearance() - return - if(isidcard(O)) - var/obj/item/card/id/Card = O - if(Card.registered_account) - account = Card.registered_account - account_name = Card.registered_name - say("New account detected. Console Updated.") - else - say("No account detected on card. Aborting.") - return - return ..() - -/obj/machinery/rnd/bepis/screwdriver_act(mob/living/user, obj/item/tool) - return default_deconstruction_screwdriver(user, "chamber_open", "chamber", tool) - -/obj/machinery/rnd/bepis/screwdriver_act_secondary(mob/living/user, obj/item/tool) - return default_deconstruction_screwdriver(user, "chamber_open", "chamber", tool) - -/obj/machinery/rnd/bepis/RefreshParts() - . = ..() - var/C = 0 - var/M = 0 - var/L = 0 - var/S = 0 - for(var/datum/stock_part/capacitor/capacitor in component_parts) - C += ((capacitor.tier - 1) * 0.1) - power_saver = 1 - C - for(var/datum/stock_part/manipulator/manipulator in component_parts) - M += ((manipulator.tier - 1) * PART_CASH_OFFSET_AMOUNT) - positive_cash_offset = M - for(var/datum/stock_part/micro_laser/Laser in component_parts) - L += ((Laser.tier - 1) * PART_CASH_OFFSET_AMOUNT) - negative_cash_offset = L - for(var/datum/stock_part/scanning_module/scanning_module in component_parts) - S += ((scanning_module.tier - 1) * 0.25) - inaccuracy_percentage = (1.5 - S) - -/obj/machinery/rnd/bepis/update_icon_state() - if(panel_open == TRUE) - icon_state = "[base_icon_state]_open" - return ..() - if((use_power == ACTIVE_POWER_USE) && (banked_cash > 0) && (is_operational)) - icon_state = "[base_icon_state]_active_loaded" - return ..() - if (((use_power == IDLE_POWER_USE) && (banked_cash > 0)) || (banked_cash > 0) && (!is_operational)) - icon_state = "[base_icon_state]_loaded" - return ..() - if(use_power == ACTIVE_POWER_USE && is_operational) - icon_state = "[base_icon_state]_active" - return ..() - if(((use_power == IDLE_POWER_USE) && (banked_cash == 0)) || (!is_operational)) - icon_state = base_icon_state - return ..() - return ..() - -/obj/machinery/rnd/bepis/ui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "Bepis", name) - ui.open() - RefreshParts() - if(isliving(user)) - var/mob/living/customer = user - account = customer.get_bank_account() - -/obj/machinery/rnd/bepis/ui_data(mob/user) - var/list/data = list() - var/powered = FALSE - var/zvalue = ((banking_amount + banked_cash) - (major_threshold - positive_cash_offset - negative_cash_offset))/(std) - var/std_success = 0 - var/prob_success = 0 - //Admittedly this is messy, but not nearly as messy as the alternative, which is jury-rigging an entire Z-table into the code, or making an adaptive z-table. - var/z = abs(zvalue) - if(z > 0 && z <= 0.5) - std_success = 19.1 - else if(z > 0.5 && z <= 1.0) - std_success = 34.1 - else if(z > 1.0 && z <= 1.5) - std_success = 43.3 - else if(z > 1.5 && z <= 2.0) - std_success = 47.7 - else if(z > 2.0 && z <= 2.5) - std_success = 49.4 - else - std_success = 50 - if(zvalue > 0) - prob_success = 50 + std_success - else if(zvalue == 0) - prob_success = 50 - else - prob_success = 50 - std_success - - if(use_power == ACTIVE_POWER_USE) - powered = TRUE - data["account_owner"] = account_name - data["amount"] = banking_amount - data["stored_cash"] = account?.account_balance - data["mean_value"] = (major_threshold - positive_cash_offset - negative_cash_offset) - data["error_name"] = error_cause - data["power_saver"] = power_saver - data["accuracy_percentage"] = inaccuracy_percentage * 100 - data["positive_cash_offset"] = positive_cash_offset - data["negative_cash_offset"] = negative_cash_offset - data["manual_power"] = powered ? FALSE : TRUE - data["silicon_check"] = issilicon(user) - data["success_estimate"] = prob_success - return data - -/obj/machinery/rnd/bepis/ui_act(action,params) - . = ..() - if(.) - return - switch(action) - if("begin_experiment") - if(use_power == IDLE_POWER_USE) - return - depositcash() - if(banked_cash == 0) - say("Please select funds to deposit to begin testing.") - return - calcsuccess() - use_power(MACHINE_OPERATION * power_saver) //This thing should eat your APC battery if you're not careful. - update_use_power(IDLE_POWER_USE) //Machine shuts off after use to prevent spam and look better visually. - update_appearance() - if("amount") - var/input = text2num(params["amount"]) - if(input) - banking_amount = input - if("toggle_power") - if(use_power == ACTIVE_POWER_USE) - update_use_power(IDLE_POWER_USE) - else - update_use_power(ACTIVE_POWER_USE) - update_appearance() - if("account_reset") - if(use_power == IDLE_POWER_USE) - return - account_name = "" - account = null - say("Account settings reset.") - . = TRUE - -/** - * Proc that handles the user's account to deposit credits for the BEPIS. - * Handles success and fail cases for transferring credits, then logs the transaction and uses small amounts of power. - **/ -/obj/machinery/rnd/bepis/proc/depositcash() - var/deposit_value = 0 - deposit_value = banking_amount - if(deposit_value == 0) - update_appearance() - say("Attempting to deposit 0 credits. Aborting.") - return - deposit_value = clamp(round(deposit_value, 1), 1, 10000) - if(!account) - say("Cannot find user account. Please swipe a valid ID.") - return - if(!account.has_money(deposit_value)) - say("You do not possess enough credits.") - return - account.adjust_money(-deposit_value, "Vending: B.E.P.I.S. Chamber") //The money vanishes, not paid to any accounts. - SSblackbox.record_feedback("amount", "BEPIS_credits_spent", deposit_value) - log_econ("[deposit_value] credits were inserted into [src] by [account.account_holder]") - banked_cash += deposit_value - use_power(1000 * power_saver) - return - -/** - * Proc used to determine the experiment math and results all in one. - * Uses banked_cash and stock part levels to determine minor, major, and real gauss values for the BEPIS to hold. - * If by the end real is larger than major, You get a tech disk. If all the disks are earned or you at least beat minor, you get a minor reward. - **/ - -/obj/machinery/rnd/bepis/proc/calcsuccess() - var/turf/dropturf = null - var/gauss_major = 0 - var/gauss_minor = 0 - var/gauss_real = 0 - - var/turf/my_turf = get_turf(src) - var/list/turfs = TURF_NEIGHBORS(my_turf) //NO MORE DISCS IN WINDOWS - while(length(turfs)) - var/turf/T = pick_n_take(turfs) - if(T.is_blocked_turf(TRUE)) - continue - else - dropturf = T - break - - if (!dropturf) - dropturf = drop_location() - gauss_major = (gaussian(major_threshold, std) - negative_cash_offset) //This is the randomized profit value that this experiment has to surpass to unlock a tech. - gauss_minor = (gaussian(minor_threshold, std) - negative_cash_offset) //And this is the threshold to instead get a minor prize. - gauss_real = (gaussian(banked_cash, std*inaccuracy_percentage) + positive_cash_offset) //this is the randomized profit value that your experiment expects to give. - say("Real: [gauss_real]. Minor: [gauss_minor]. Major: [gauss_major].") - flick("chamber_flash",src) - update_appearance() - banked_cash = 0 - if((gauss_real >= gauss_major)) //Major Success. - if(SSresearch.techweb_nodes_experimental.len > 0) - say("Experiment concluded with major success. New technology node discovered on technology disc.") - new /obj/item/disk/design_disk/bepis/remove_tech(dropturf,1) - return - say("Expended all available experimental technology nodes. Resorting to minor rewards.") - if(gauss_real >= gauss_minor) //Minor Success. - var/reward = pick(minor_rewards) - new reward(dropturf) - say("Experiment concluded with partial success. Dispensing compiled research efforts.") - return - if(gauss_real <= -1) //Critical Failure - say("ERROR: CRITICAL MACHIME MALFUNCTI- ON. CURRENCY IS NOT CRASH. CANNOT COMPUTE COMMAND: 'make bucks'") //not a typo, for once. - new /mob/living/basic/deer(dropturf, 1) - use_power(MACHINE_OVERLOAD * power_saver) //To prevent gambling at low cost and also prevent spamming for infinite deer. - return - //Minor Failure - error_cause = pick("attempted to sell grey products to American dominated market.","attempted to sell gray products to British dominated market.","placed wild assumption that PDAs would go out of style.","simulated product #76 damaged brand reputation mortally.","simulated business model resembled 'pyramid scheme' by 98.7%.","product accidently granted override access to all station doors.") - say("Experiment concluded with zero product viability. Cause of error: [error_cause]") - return - - -#undef MACHINE_OPERATION -#undef MACHINE_OVERLOAD -#undef MAJOR_THRESHOLD -#undef MINOR_THRESHOLD -#undef STANDARD_DEVIATION -#undef PART_CASH_OFFSET_AMOUNT diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 66e02a7c468f..a4040dba92d8 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -348,16 +348,6 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE -/datum/design/board/bepis - name = "B.E.P.I.S. Board" - desc = "The circuit board for a B.E.P.I.S." - id = "bepis" - build_path = /obj/item/circuitboard/machine/bepis - category = list( - RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_RESEARCH - ) - departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_CARGO - /datum/design/board/protolathe name = "Protolathe Board" desc = "The circuit board for a protolathe." diff --git a/code/modules/research/techweb/_techweb_node.dm b/code/modules/research/techweb/_techweb_node.dm index 6ab7d68beba9..abdeae77affd 100644 --- a/code/modules/research/techweb/_techweb_node.dm +++ b/code/modules/research/techweb/_techweb_node.dm @@ -16,7 +16,7 @@ var/description = "Why are you seeing this?" /// Whether it starts off hidden var/hidden = FALSE - /// If the tech can be randomly generated by the BEPIS as a reward. MEant to be fully given in tech disks, not researched + /// If the tech can be randomly generated by BEPIS tech as a reward. Meant to be fully given in tech disks, not researched var/experimental = FALSE /// Whether it's available without any research var/starting_node = FALSE diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index fc756ff67def..0bb2247cb05a 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -14,7 +14,6 @@ "basic_matter_bin", "basic_micro_laser", "basic_scanning", - "bepis", "blast", "bounced_radio", "bowl", diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 076ca28692a5..ad97d57fc6c3 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -239,6 +239,9 @@ for(var/turf/T in return_turfs()) T.turf_flags |= NO_RUINS + if(SSshuttle.initialized) + INVOKE_ASYNC(SSshuttle, TYPE_PROC_REF(/datum/controller/subsystem/shuttle, setup_shuttles), list(src)) + #ifdef DOCKING_PORT_HIGHLIGHT highlight("#f00") #endif @@ -382,8 +385,17 @@ /// This should be a unit test, but too much of our other code breaks during shuttle movement, so not yet, not yet. /proc/test_whiteship_sizes() var/obj/docking_port/stationary/port_type = /obj/docking_port/stationary/picked/whiteship - var/datum/turf_reservation/docking_yard = SSmapping.RequestBlockReservation(initial(port_type.width), initial(port_type.height)) - var/turf/spawnpoint = locate(docking_yard.bottom_left_coords[1] + initial(port_type.dwidth), docking_yard.bottom_left_coords[2] + initial(port_type.dheight), docking_yard.bottom_left_coords[3]) + var/datum/turf_reservation/docking_yard = SSmapping.request_turf_block_reservation( + initial(port_type.width), + initial(port_type.height), + 1, + ) + var/turf/bottom_left = docking_yard.bottom_left_turfs[1] + var/turf/spawnpoint = locate( + bottom_left.x + initial(port_type.dwidth), + bottom_left.y + initial(port_type.dheight), + bottom_left.z, + ) var/obj/docking_port/stationary/picked/whiteship/port = new(spawnpoint) var/list/ids = port.shuttlekeys diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index ae5722105c9c..2eec7eb2285b 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -877,7 +877,7 @@ // For some reason this was applied as an overlay on the aux image and limb image before. // I am very sure that this is unnecessary, and i need to treat it as part of the return list // to be able to mask it proper in case this limb is a leg. - if(blocks_emissive) + if(blocks_emissive != EMISSIVE_BLOCK_NONE) var/atom/location = loc || owner || src var/mutable_appearance/limb_em_block = emissive_blocker(limb.icon, limb.icon_state, location, layer = limb.layer, alpha = limb.alpha) limb_em_block.dir = image_dir diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 47ce00c8a158..c82f0c71d5be 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -241,6 +241,13 @@ eye_left.color = eyes.eye_color_left if(eyes.eye_color_right) eye_right.color = eyes.eye_color_right + if(eyes.overlay_ignore_lighting) + eye_left.overlays += emissive_appearance(eye_left.icon, eye_left.icon_state, src, alpha = eye_left.alpha) + eye_right.overlays += emissive_appearance(eye_right.icon, eye_right.icon_state, src, alpha = eye_right.alpha) + else if(blocks_emissive != EMISSIVE_BLOCK_NONE) + var/atom/location = loc || owner || src + eye_left.overlays += emissive_blocker(eye_left.icon, eye_left.icon_state, location, alpha = eye_left.alpha) + eye_right.overlays += emissive_blocker(eye_right.icon, eye_right.icon_state, location, alpha = eye_right.alpha) . += eye_left . += eye_right else diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index 11c91a85545b..9cad386b1a91 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -131,8 +131,8 @@ var/obscured = parent.check_obscured_slots(TRUE) if(overlay_ignore_lighting && !(obscured & ITEM_SLOT_EYES)) - eye_left.overlays += emissive_appearance(eye_left.icon, eye_left.icon_state, parent, alpha = eye_left.alpha) - eye_right.overlays += emissive_appearance(eye_right.icon, eye_right.icon_state, parent, alpha = eye_right.alpha) + overlays += emissive_appearance_copy(eye_left, src, NONE) + overlays += emissive_appearance_copy(eye_right, src, NONE) if(OFFSET_FACE in parent.dna?.species.offset_features) var/offset = parent.dna.species.offset_features[OFFSET_FACE] @@ -559,6 +559,13 @@ eye_icon_state = "motheyes" icon_state = "eyeballs-moth" flash_protect = FLASH_PROTECTION_SENSITIVE + overlay_ignore_lighting = TRUE + + +/obj/item/organ/internal/eyes/lizard + name = "lizard eyes" + desc = "These eyes seem to glow." + overlay_ignore_lighting = TRUE /obj/item/organ/internal/eyes/snail name = "snail eyes" diff --git a/code/modules/unit_tests/chain_pull_through_space.dm b/code/modules/unit_tests/chain_pull_through_space.dm index 86b0cc69d1cf..b767b010495c 100644 --- a/code/modules/unit_tests/chain_pull_through_space.dm +++ b/code/modules/unit_tests/chain_pull_through_space.dm @@ -11,15 +11,16 @@ ..() //reserve a tile that is always empty for our z destination - reserved = SSmapping.RequestBlockReservation(5,5) + reserved = SSmapping.request_turf_block_reservation(5, 5, 1) // Create a space tile that goes to another z-level claimed_tile = run_loc_floor_bottom_left.type space_tile = run_loc_floor_bottom_left.ChangeTurf(/turf/open/space) - space_tile.destination_x = round(reserved.bottom_left_coords[1] + (reserved.width-1) / 2) - space_tile.destination_y = round(reserved.bottom_left_coords[2] + (reserved.height-1) / 2) - space_tile.destination_z = reserved.bottom_left_coords[3] + var/turf/bottom_left = reserved.bottom_left_turfs[1] + space_tile.destination_x = round(bottom_left.x + (reserved.width-1) / 2) + space_tile.destination_y = round(bottom_left.y + (reserved.height-1) / 2) + space_tile.destination_z = bottom_left.z // Create our list of humans, all adjacent to one another alice = new(locate(run_loc_floor_bottom_left.x + 2, run_loc_floor_bottom_left.y, run_loc_floor_bottom_left.z)) diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_cyberpolice.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_cyberpolice.png new file mode 100644 index 000000000000..ac8a6347bbd7 Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_cyberpolice.png differ diff --git a/icons/area/areas_station.dmi b/icons/area/areas_station.dmi index d80ab040354e..7de4ca5ab148 100644 Binary files a/icons/area/areas_station.dmi and b/icons/area/areas_station.dmi differ diff --git a/icons/effects/bitrunning.dmi b/icons/effects/bitrunning.dmi new file mode 100644 index 000000000000..bfdc7c63436c Binary files /dev/null and b/icons/effects/bitrunning.dmi differ diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi index 1c76d0eabc5c..dea5f15c738f 100755 Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ diff --git a/icons/mob/clothing/head/plasmaman_head.dmi b/icons/mob/clothing/head/plasmaman_head.dmi index c01492ae8b65..3a737ca3d03d 100644 Binary files a/icons/mob/clothing/head/plasmaman_head.dmi and b/icons/mob/clothing/head/plasmaman_head.dmi differ diff --git a/icons/mob/clothing/suits/jacket.dmi b/icons/mob/clothing/suits/jacket.dmi index f9b7b5d31a20..ab550f65a454 100644 Binary files a/icons/mob/clothing/suits/jacket.dmi and b/icons/mob/clothing/suits/jacket.dmi differ diff --git a/icons/mob/clothing/under/cargo.dmi b/icons/mob/clothing/under/cargo.dmi index 01b5ad6c99d6..4d0d08b0fa8f 100644 Binary files a/icons/mob/clothing/under/cargo.dmi and b/icons/mob/clothing/under/cargo.dmi differ diff --git a/icons/mob/clothing/under/plasmaman.dmi b/icons/mob/clothing/under/plasmaman.dmi index c220a357269b..57643d4f7f58 100644 Binary files a/icons/mob/clothing/under/plasmaman.dmi and b/icons/mob/clothing/under/plasmaman.dmi differ diff --git a/icons/mob/huds/hud.dmi b/icons/mob/huds/hud.dmi index ee9f6891b100..f4776ffac48f 100644 Binary files a/icons/mob/huds/hud.dmi and b/icons/mob/huds/hud.dmi differ diff --git a/icons/obj/assemblies/module.dmi b/icons/obj/assemblies/module.dmi new file mode 100644 index 000000000000..2656c8db4327 Binary files /dev/null and b/icons/obj/assemblies/module.dmi differ diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index cf92dd873074..7f171fa8d275 100644 Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index 25cfd514d9a6..5cc77fcb4e6e 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/icons/obj/clothing/head/plasmaman_hats.dmi b/icons/obj/clothing/head/plasmaman_hats.dmi index 8a50d0ea040c..8c938d9e0b42 100644 Binary files a/icons/obj/clothing/head/plasmaman_hats.dmi and b/icons/obj/clothing/head/plasmaman_hats.dmi differ diff --git a/icons/obj/clothing/suits/jacket.dmi b/icons/obj/clothing/suits/jacket.dmi index bcde51f037e6..bb0ea8ee80b9 100644 Binary files a/icons/obj/clothing/suits/jacket.dmi and b/icons/obj/clothing/suits/jacket.dmi differ diff --git a/icons/obj/clothing/under/cargo.dmi b/icons/obj/clothing/under/cargo.dmi index 5ea90482fafc..145d977d3c86 100644 Binary files a/icons/obj/clothing/under/cargo.dmi and b/icons/obj/clothing/under/cargo.dmi differ diff --git a/icons/obj/clothing/under/plasmaman.dmi b/icons/obj/clothing/under/plasmaman.dmi index 55c94df5f235..dd4941792df4 100644 Binary files a/icons/obj/clothing/under/plasmaman.dmi and b/icons/obj/clothing/under/plasmaman.dmi differ diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index b0de6728962b..e0e44cc34c46 100644 Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ diff --git a/icons/obj/machines/bepis.dmi b/icons/obj/machines/bepis.dmi deleted file mode 100644 index f348c2e1b055..000000000000 Binary files a/icons/obj/machines/bepis.dmi and /dev/null differ diff --git a/icons/obj/machines/bitrunning.dmi b/icons/obj/machines/bitrunning.dmi new file mode 100644 index 000000000000..a910a16b35cf Binary files /dev/null and b/icons/obj/machines/bitrunning.dmi differ diff --git a/icons/turf/cliff/cliff.dmi b/icons/turf/cliff/cliff.dmi new file mode 100644 index 000000000000..af2f855fd8b3 Binary files /dev/null and b/icons/turf/cliff/cliff.dmi differ diff --git a/icons/turf/cliff/icerock_cliff.dmi b/icons/turf/cliff/icerock_cliff.dmi new file mode 100644 index 000000000000..260a963a1eae Binary files /dev/null and b/icons/turf/cliff/icerock_cliff.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 97ef3daa5b66..cdc9525fa431 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/monkestation/code/modules/antagonists/clock_cult/reebe_modules.dm b/monkestation/code/modules/antagonists/clock_cult/reebe_modules.dm index 516d907f4d01..665f68709edc 100644 --- a/monkestation/code/modules/antagonists/clock_cult/reebe_modules.dm +++ b/monkestation/code/modules/antagonists/clock_cult/reebe_modules.dm @@ -19,7 +19,7 @@ GLOBAL_LIST_EMPTY(abscond_markers) reebe_loaded = FALSE CRASH("Reebe Z level not in SSmapping.reservation_ready.") - var/datum/turf_reservation/reservation = SSmapping.RequestBlockReservation(101, 101, reebe_z.z_value) + var/datum/turf_reservation/reservation = SSmapping.request_turf_block_reservation(101, 101, z_reservation = reebe_z.z_value) if(!reservation) reebe_loaded = FALSE CRASH("Failed to reserve a block for Reebe.") @@ -29,7 +29,7 @@ GLOBAL_LIST_EMPTY(abscond_markers) reebe_loaded = FALSE CRASH("Failed to cache template for loading Reebe.") - if(!reebe_template.load(coords2turf(reservation.bottom_left_coords))) + if(!reebe_template.load(reservation.bottom_left_turfs[1])) reebe_loaded = FALSE CRASH("Failed to load the Reebe template.") return TRUE diff --git a/monkestation/code/modules/cassettes/machines/dj_station.dm b/monkestation/code/modules/cassettes/machines/dj_station.dm index 942206d1760b..61099e853d71 100644 --- a/monkestation/code/modules/cassettes/machines/dj_station.dm +++ b/monkestation/code/modules/cassettes/machines/dj_station.dm @@ -54,7 +54,7 @@ GLOBAL_VAR(dj_booth) /obj/machinery/cassette/dj_station/examine(mob/user) . = ..() if(time_left > 0 || next_song_timer) - . += span_notice("It seems to be cooling down, you estimate it will take about [time_left ? ((time_left * 10) + 6000) / 600 : next_song_timer - world.time / 600] minutes.") + . += span_notice("It seems to be cooling down, you estimate it will take about [time_left ? DisplayTimeText(((time_left * 10) + 6000)) : DisplayTimeText(COOLDOWN_TIMELEFT(src, next_song_timer))].") /obj/machinery/cassette/dj_station/process(seconds_per_tick) if(waiting_for_yield) @@ -72,7 +72,7 @@ GLOBAL_VAR(dj_booth) return if((!COOLDOWN_FINISHED(src, next_song_timer)) && !broadcasting) to_chat(user, span_notice("The [src] feels hot to the touch and needs time to cooldown.")) - to_chat(user, span_info("You estimate it will take about [time_left ? ((time_left * 10) + 6000) / 600 : next_song_timer - world.time / 600] minutes to cool down.")) + to_chat(user, span_info("You estimate it will take about [time_left ? DisplayTimeText(((time_left * 10) + 6000)) : DisplayTimeText(COOLDOWN_TIMELEFT(src, next_song_timer))] to cool down.")) return start_broadcast() diff --git a/monkestation/code/modules/cassettes/machines/media/media_manager.dm b/monkestation/code/modules/cassettes/machines/media/media_manager.dm index 3dfc26803542..a9cd5565b9d8 100644 --- a/monkestation/code/modules/cassettes/machines/media/media_manager.dm +++ b/monkestation/code/modules/cassettes/machines/media/media_manager.dm @@ -17,13 +17,6 @@ #define MP_DEBUG(x) #endif -// Set up player on login. -/client/New() - . = ..() - media = new /datum/media_manager(src) - media.open() - media.update_music() - // Stop media when the round ends. I guess so it doesn't play forever or something (for some reason?) /proc/stop_all_media() // Stop all music. diff --git a/monkestation/code/modules/ghost_players/job_helpers/organ_printer.dm b/monkestation/code/modules/ghost_players/job_helpers/organ_printer.dm index 814622797ce3..593d58c16bdf 100644 --- a/monkestation/code/modules/ghost_players/job_helpers/organ_printer.dm +++ b/monkestation/code/modules/ghost_players/job_helpers/organ_printer.dm @@ -13,7 +13,7 @@ /obj/structure/organ_creator/attack_hand(mob/living/user, list/modifiers) . = ..() - var/list/all_internals = subtypesof(/obj/item/organ/internal) - typesof(/obj/item/organ/internal/zombie_infection) - typesof(/obj/item/organ/internal/alien) - typesof(/obj/item/organ/internal/body_egg) + var/list/all_internals = subtypesof(/obj/item/organ/internal) - typesof(/obj/item/organ/internal/zombie_infection) - typesof(/obj/item/organ/internal/alien) - typesof(/obj/item/organ/internal/body_egg) - typesof(/obj/item/organ/internal/heart/gland) - typesof(/obj/item/organ/internal/alien) var/list/all_externals = subtypesof(/obj/item/organ/external) var/list/all_bodyparts = subtypesof(/obj/item/bodypart) diff --git a/monkestation/code/modules/liquids/liquid_groups.dm b/monkestation/code/modules/liquids/liquid_groups.dm index 0ced5908313f..6e83dfaa1dfe 100644 --- a/monkestation/code/modules/liquids/liquid_groups.dm +++ b/monkestation/code/modules/liquids/liquid_groups.dm @@ -825,7 +825,7 @@ GLOBAL_VAR_INIT(liquid_debug_colors, FALSE) return if(isopenspaceturf(new_turf)) - var/turf/Z_turf_below = SSmapping.get_turf_below(new_turf) + var/turf/Z_turf_below = GET_TURF_BELOW(new_turf) if(!Z_turf_below) return if(isspaceturf(Z_turf_below)) diff --git a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/_base.dm b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/_base.dm index 69e2b285d6c5..fa59d3ae0972 100644 --- a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/_base.dm +++ b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/_base.dm @@ -1,2 +1,3 @@ /datum/sprite_accessory var/secondary_coloring = FALSE + var/is_emissive = FALSE diff --git a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/ipc_screens.dm b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/ipc_screens.dm index e0afee17294e..7b46fbbae052 100644 --- a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/ipc_screens.dm +++ b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/ipc_screens.dm @@ -1,6 +1,7 @@ /datum/sprite_accessory/ipc_screens icon = 'monkestation/icons/mob/species/ipc/ipc_screens.dmi' color_src = EYECOLOR + is_emissive = TRUE /datum/sprite_accessory/ipc_screens/blue name = "Blue" diff --git a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/multi_part.dm b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/multi_part.dm index c56d632f03e9..7dd25772deb4 100644 --- a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/multi_part.dm +++ b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/multi_part.dm @@ -14,3 +14,12 @@ icon = 'monkestation/icons/mob/species/lizard/multipart.dmi' icon_state = "lbelly" gender_specific = TRUE + +/datum/sprite_accessory/body_markings/glow_belly + name = "Glow Belly" + body_slots = list(BODY_ZONE_HEAD) + external_slots = list(ORGAN_SLOT_EXTERNAL_TAIL) + icon = 'monkestation/icons/mob/species/lizard/multipart.dmi' + icon_state = "lbelly" + gender_specific = TRUE + is_emissive = TRUE diff --git a/monkestation/code/modules/mob/living/carbon/human/accessory_helpers.dm b/monkestation/code/modules/mob/living/carbon/human/accessory_helpers.dm index c9cdd7b2046f..3628128d1891 100644 --- a/monkestation/code/modules/mob/living/carbon/human/accessory_helpers.dm +++ b/monkestation/code/modules/mob/living/carbon/human/accessory_helpers.dm @@ -3,6 +3,9 @@ var/layertext = mutant_bodyparts_layertext(layer) var/g = (host.physique == FEMALE) ? "f" : "m" for(var/list_item in added_accessory.external_slots) + var/can_hidden_render = return_exernal_render_state(list_item, host) + if(!can_hidden_render) + continue // we failed the render check just dont bother if(!host.get_organ_slot(list_item) && !istype(host, /mob/living/carbon/human/dummy/extra_tall)) continue var/mutable_appearance/new_overlay = mutable_appearance(added_accessory.icon, layer = -layer) @@ -12,6 +15,8 @@ new_overlay.icon_state = "m_[list_item]_[added_accessory.icon_state]_[layertext]" new_overlay.color = passed_color return_list += new_overlay + if(added_accessory.is_emissive) + return_list += emissive_appearance_copy(new_overlay, host) for(var/list_item in added_accessory.body_slots) if(!host.get_bodypart(list_item) && !istype(host, /mob/living/carbon/human/dummy/extra_tall)) @@ -23,8 +28,40 @@ new_overlay.icon_state = "m_[list_item]_[added_accessory.icon_state]_[layertext]" new_overlay.color = passed_color return_list += new_overlay + if(added_accessory.is_emissive) + return_list += emissive_appearance_copy(new_overlay, host) + if(istype(host, /mob/living/carbon/human/dummy/extra_tall)) var/mob/living/carbon/human/dummy/extra_tall/bleh = host bleh.extra_bodyparts += return_list return return_list + +/proc/return_exernal_render_state(external_slot, mob/living/carbon/human/human) + switch(external_slot) + if(ORGAN_SLOT_EXTERNAL_TAIL) + if(human.wear_suit && (human.wear_suit.flags_inv & HIDEJUMPSUIT)) + return FALSE + return TRUE + if(ORGAN_SLOT_EXTERNAL_SNOUT) + if(!(human.wear_mask?.flags_inv & HIDESNOUT) && !(human.head?.flags_inv & HIDESNOUT)) + return TRUE + return FALSE + if(ORGAN_SLOT_EXTERNAL_FRILLS) + if(!(human.head?.flags_inv & HIDEEARS)) + return TRUE + return FALSE + if(ORGAN_SLOT_EXTERNAL_SPINES) + return TRUE //todo + if(ORGAN_SLOT_EXTERNAL_WINGS) + if(!human.wear_suit) + return TRUE + if(!(human.wear_suit.flags_inv & HIDEJUMPSUIT)) + return TRUE + return FALSE + if(ORGAN_SLOT_EXTERNAL_ANTENNAE) + return TRUE //todo + if(ORGAN_SLOT_EXTERNAL_POD_HAIR) + if((human.head?.flags_inv & HIDEHAIR) || (human.wear_mask?.flags_inv & HIDEHAIR)) + return FALSE + return TRUE diff --git a/monkestation/code/modules/ocean_content/mobs/fish_base.dm b/monkestation/code/modules/ocean_content/mobs/fish_base.dm index 5c6636ea9458..625cc9e554b2 100644 --- a/monkestation/code/modules/ocean_content/mobs/fish_base.dm +++ b/monkestation/code/modules/ocean_content/mobs/fish_base.dm @@ -18,6 +18,17 @@ ai_controller = /datum/ai_controller/basic_controller/fish +/mob/living/basic/aquatic/fish/Destroy() + . = ..() + var/datum/group_planning/attached = ai_controller?.blackboard[BB_GROUP_DATUM] + if(attached) + if(src in attached.group_mobs) + attached.group_mobs -= src + if(src in attached.in_progress_mobs) + attached.in_progress_mobs -= src + if(src in attached.finished_mobs) + attached.finished_mobs -= src + /mob/living/basic/aquatic/fish/cod name = "Cod" icon_state = "cod" diff --git a/monkestation/code/modules/outdoors/code/datum/particle_weathers/_particle_weather.dm b/monkestation/code/modules/outdoors/code/datum/particle_weathers/_particle_weather.dm index 21019367b23f..3e5465e0a1c5 100644 --- a/monkestation/code/modules/outdoors/code/datum/particle_weathers/_particle_weather.dm +++ b/monkestation/code/modules/outdoors/code/datum/particle_weathers/_particle_weather.dm @@ -201,6 +201,7 @@ GLOBAL_LIST_EMPTY(siren_objects) weather_additional_ongoing_events += new str(src) /datum/particle_weather/Destroy() + messaged_mobs = null for(var/S in current_sounds) var/datum/looping_sound/looping_sound = current_sounds[S] looping_sound.stop() diff --git a/monkestation/code/modules/outdoors/code/sunlight/sunlight_object.dm b/monkestation/code/modules/outdoors/code/sunlight/sunlight_object.dm index 1a4459eab74a..5ccffea23e1b 100644 --- a/monkestation/code/modules/outdoors/code/sunlight/sunlight_object.dm +++ b/monkestation/code/modules/outdoors/code/sunlight/sunlight_object.dm @@ -193,7 +193,6 @@ Sunlight System /* pass recursion_started=TRUE when we are checking our ceiling's stats */ /turf/proc/get_ceiling_status(recursion_started = FALSE) . = list() - //Check yourself (before you wreck yourself) if(isclosedturf(src)) //Closed, but we might be transparent .["SKYVISIBLE"] = istransparentturf(src) // a column of glass should still let the sun in @@ -228,7 +227,8 @@ Sunlight System .["WEATHERPROOF"] |= ceilingStat["WEATHERPROOF"] var/area/turf_area = get_area(src) - if((!isspaceturf(src) && !istype(src, /turf/open/floor/plating/ocean) && !above() && !SSmapping.level_trait(src.z, ZTRAIT_UP) && !turf_area.outdoors && !turf_area.false_outdoors) || (!SSmapping.level_trait(src.z, ZTRAIT_DAYCYCLE) && !SSmapping.level_trait(src.z, ZTRAIT_STARLIGHT))) + var/turf/above_turf = GET_TURF_ABOVE(src) + if((!isspaceturf(src) && !istype(src, /turf/open/floor/plating/ocean) && !above_turf && !SSmapping.level_trait(src.z, ZTRAIT_UP) && !turf_area.outdoors && !turf_area.false_outdoors) || (!SSmapping.level_trait(src.z, ZTRAIT_DAYCYCLE) && !SSmapping.level_trait(src.z, ZTRAIT_STARLIGHT))) .["SKYVISIBLE"] = FALSE .["WEATHERPROOF"] = TRUE @@ -334,7 +334,7 @@ Sunlight System GLOB.SUNLIGHT_QUEUE_WORK += SunlightUpdates - var/turf/T = SSmapping.get_turf_below(src) + var/turf/T = GET_TURF_BELOW(src) if(T) T.reconsider_sunlight() diff --git a/monkestation/code/modules/pollution/pollution.dm b/monkestation/code/modules/pollution/pollution.dm index e1b6777ad2d8..548a51c0e5fd 100644 --- a/monkestation/code/modules/pollution/pollution.dm +++ b/monkestation/code/modules/pollution/pollution.dm @@ -138,6 +138,8 @@ var/list/already_processed_cache = SSpollution.processed_this_run var/list/potential_activers = list() for(var/turf/open/open_turf as anything in my_turf.atmos_adjacent_turfs) + if(!istype(open_turf)) + continue if(!already_processed_cache[open_turf]) if(can_share_with(open_turf)) sharing_turfs[open_turf] = TRUE @@ -240,5 +242,7 @@ ///Atmos adjacency has been updated on this turf, see if it affects any of our pollutants /turf/proc/update_adjacent_pollutants() for(var/turf/open/open_turf as anything in atmos_adjacent_turfs) + if(!isopenturf(open_turf)) + continue if(open_turf.pollution) SET_ACTIVE_POLLUTION(open_turf.pollution) diff --git a/monkestation/code/modules/power/lighting/neon_lining.dm b/monkestation/code/modules/power/lighting/neon_lining.dm index 94dd9dfbe5c9..26b5159bbf7d 100644 --- a/monkestation/code/modules/power/lighting/neon_lining.dm +++ b/monkestation/code/modules/power/lighting/neon_lining.dm @@ -14,6 +14,10 @@ ///the color we currently are set to in icon state we set it to item_[lining_color] and placement is [lining_color]{state}_{style} var/lining_color = "pink" + +/obj/item/stack/neon_lining/twenty + amount = 20 + /obj/item/stack/neon_lining/attack_self(mob/user, modifiers) . = ..() var/static/list/choices = list( diff --git a/monkestation/code/modules/surgery/organs/internal/eyes.dm b/monkestation/code/modules/surgery/organs/internal/eyes.dm index 54f41b015200..17c5e85de90c 100644 --- a/monkestation/code/modules/surgery/organs/internal/eyes.dm +++ b/monkestation/code/modules/surgery/organs/internal/eyes.dm @@ -10,6 +10,7 @@ icon = 'monkestation/icons/obj/medical/organs/organs.dmi' eye_icon_state = "arachnideyes" icon_state = "arachnid_eyeballs" + overlay_ignore_lighting = TRUE no_glasses = TRUE low_light_cutoff = list(20, 15, 0) medium_light_cutoff = list(35, 30, 0) diff --git a/sound/effects/submerge.ogg b/sound/effects/submerge.ogg new file mode 100644 index 000000000000..8c50fba8e0a7 Binary files /dev/null and b/sound/effects/submerge.ogg differ diff --git a/strings/names/cyberauth.txt b/strings/names/cyberauth.txt new file mode 100644 index 000000000000..f1fc42b36928 --- /dev/null +++ b/strings/names/cyberauth.txt @@ -0,0 +1,21 @@ +Mr. One +Process Kill +Event Handler +Q. Del +Shutdown Exe +Revert Commit +Thread Manager +Garbage Collector +Core Debugger +Kernel Panic +IO Blocker +Recursion Terminator +Disk Doctor +Format Syntax +Byte Guardian +Disk Defragmenter +Security Patch +Mandatory Upgrade +Pull Review +Bit Auditor +Pen Test diff --git a/tgstation.dme b/tgstation.dme index 4b914dec03b5..d2581ffb9eaf 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -51,6 +51,7 @@ #include "code\__DEFINES\atom_hud.dm" #include "code\__DEFINES\basic_mobs.dm" #include "code\__DEFINES\basketball.dm" +#include "code\__DEFINES\bitrunning.dm" #include "code\__DEFINES\blackmarket.dm" #include "code\__DEFINES\blend_modes.dm" #include "code\__DEFINES\blob_defines.dm" @@ -142,6 +143,7 @@ #include "code\__DEFINES\machines.dm" #include "code\__DEFINES\magic.dm" #include "code\__DEFINES\map_switch.dm" +#include "code\__DEFINES\mapping.dm" #include "code\__DEFINES\maps.dm" #include "code\__DEFINES\materials.dm" #include "code\__DEFINES\maths.dm" @@ -162,6 +164,7 @@ #include "code\__DEFINES\move_force.dm" #include "code\__DEFINES\movement.dm" #include "code\__DEFINES\movespeed_modification.dm" +#include "code\__DEFINES\multiz.dm" #include "code\__DEFINES\nanites.dm" #include "code\__DEFINES\nitrile.dm" #include "code\__DEFINES\nuclear_bomb.dm" @@ -287,6 +290,7 @@ #include "code\__DEFINES\dcs\signals\signals_area.dm" #include "code\__DEFINES\dcs\signals\signals_assembly.dm" #include "code\__DEFINES\dcs\signals\signals_beam.dm" +#include "code\__DEFINES\dcs\signals\signals_bitrunning.dm" #include "code\__DEFINES\dcs\signals\signals_bot.dm" #include "code\__DEFINES\dcs\signals\signals_changeling.dm" #include "code\__DEFINES\dcs\signals\signals_circuit.dm" @@ -310,6 +314,7 @@ #include "code\__DEFINES\dcs\signals\signals_janitor.dm" #include "code\__DEFINES\dcs\signals\signals_key.dm" #include "code\__DEFINES\dcs\signals\signals_ladder.dm" +#include "code\__DEFINES\dcs\signals\signals_lazy_templates.dm" #include "code\__DEFINES\dcs\signals\signals_lift.dm" #include "code\__DEFINES\dcs\signals\signals_light_eater.dm" #include "code\__DEFINES\dcs\signals\signals_medical.dm" @@ -362,6 +367,7 @@ #include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_main.dm" #include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_silicon.dm" #include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_simple.dm" +#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_spawner.dm" #include "code\__DEFINES\research\anomalies.dm" #include "code\__DEFINES\research\research_categories.dm" #include "code\__DEFINES\~monkestation\access.dm" @@ -679,6 +685,7 @@ #include "code\controllers\subsystem\weather.dm" #include "code\controllers\subsystem\wiremod_composite.dm" #include "code\controllers\subsystem\movement\ai_movement.dm" +#include "code\controllers\subsystem\movement\cliff_falling.dm" #include "code\controllers\subsystem\movement\hyperspace_drift.dm" #include "code\controllers\subsystem\movement\move_handler.dm" #include "code\controllers\subsystem\movement\movement.dm" @@ -1247,6 +1254,7 @@ #include "code\datums\elements\chemical_transfer.dm" #include "code\datums\elements\chewable.dm" #include "code\datums\elements\cleaning.dm" +#include "code\datums\elements\cliff_walker.dm" #include "code\datums\elements\climbable.dm" #include "code\datums\elements\connect_loc.dm" #include "code\datums\elements\content_barfer.dm" @@ -1521,6 +1529,7 @@ #include "code\datums\status_effects\debuffs\screwy_hud.dm" #include "code\datums\status_effects\debuffs\silenced.dm" #include "code\datums\status_effects\debuffs\speech_debuffs.dm" +#include "code\datums\status_effects\debuffs\static_vision.dm" #include "code\datums\status_effects\debuffs\strandling.dm" #include "code\datums\status_effects\debuffs\terrified.dm" #include "code\datums\status_effects\debuffs\tower_of_babel.dm" @@ -2230,6 +2239,7 @@ #include "code\game\objects\structures\dresser.dm" #include "code\game\objects\structures\electricchair.dm" #include "code\game\objects\structures\extinguisher.dm" +#include "code\game\objects\structures\fake_stairs.dm" #include "code\game\objects\structures\false_walls.dm" #include "code\game\objects\structures\fans.dm" #include "code\game\objects\structures\fence.dm" @@ -2356,6 +2366,7 @@ #include "code\game\turfs\open\asteroid.dm" #include "code\game\turfs\open\basalt.dm" #include "code\game\turfs\open\chasm.dm" +#include "code\game\turfs\open\cliff.dm" #include "code\game\turfs\open\dirtystation.dm" #include "code\game\turfs\open\floor.dm" #include "code\game\turfs\open\grass.dm" @@ -3000,6 +3011,54 @@ #include "code\modules\basketball\controller.dm" #include "code\modules\basketball\hoop.dm" #include "code\modules\basketball\referee.dm" +#include "code\modules\bitrunning\abilities.dm" +#include "code\modules\bitrunning\alerts.dm" +#include "code\modules\bitrunning\areas.dm" +#include "code\modules\bitrunning\event.dm" +#include "code\modules\bitrunning\job.dm" +#include "code\modules\bitrunning\turfs.dm" +#include "code\modules\bitrunning\antagonists\cyber_police.dm" +#include "code\modules\bitrunning\antagonists\outfit.dm" +#include "code\modules\bitrunning\components\avatar_connection.dm" +#include "code\modules\bitrunning\components\bitrunning_points.dm" +#include "code\modules\bitrunning\components\netpod_healing.dm" +#include "code\modules\bitrunning\objects\bit_vendor.dm" +#include "code\modules\bitrunning\objects\clothing.dm" +#include "code\modules\bitrunning\objects\disks.dm" +#include "code\modules\bitrunning\objects\hololadder.dm" +#include "code\modules\bitrunning\objects\host_monitor.dm" +#include "code\modules\bitrunning\objects\landmarks.dm" +#include "code\modules\bitrunning\objects\loot_crate.dm" +#include "code\modules\bitrunning\objects\netpod.dm" +#include "code\modules\bitrunning\objects\quantum_console.dm" +#include "code\modules\bitrunning\orders\disks.dm" +#include "code\modules\bitrunning\orders\flair.dm" +#include "code\modules\bitrunning\orders\tech.dm" +#include "code\modules\bitrunning\server\loot.dm" +#include "code\modules\bitrunning\server\map_handling.dm" +#include "code\modules\bitrunning\server\obj_generation.dm" +#include "code\modules\bitrunning\server\quantum_server.dm" +#include "code\modules\bitrunning\server\signal_handlers.dm" +#include "code\modules\bitrunning\server\util.dm" +#include "code\modules\bitrunning\virtual_domain\safehouses.dm" +#include "code\modules\bitrunning\virtual_domain\virtual_domain.dm" +#include "code\modules\bitrunning\virtual_domain\domains\ash_drake.dm" +#include "code\modules\bitrunning\virtual_domain\domains\beach_bar.dm" +#include "code\modules\bitrunning\virtual_domain\domains\blood_drunk_miner.dm" +#include "code\modules\bitrunning\virtual_domain\domains\bubblegum.dm" +#include "code\modules\bitrunning\virtual_domain\domains\clown_planet.dm" +#include "code\modules\bitrunning\virtual_domain\domains\colossus.dm" +#include "code\modules\bitrunning\virtual_domain\domains\gondola_asteroid.dm" +#include "code\modules\bitrunning\virtual_domain\domains\hierophant.dm" +#include "code\modules\bitrunning\virtual_domain\domains\legion.dm" +#include "code\modules\bitrunning\virtual_domain\domains\pipedream.dm" +#include "code\modules\bitrunning\virtual_domain\domains\pirates.dm" +#include "code\modules\bitrunning\virtual_domain\domains\stairs_and_cliffs.dm" +#include "code\modules\bitrunning\virtual_domain\domains\syndicate_assault.dm" +#include "code\modules\bitrunning\virtual_domain\domains\test_only.dm" +#include "code\modules\bitrunning\virtual_domain\domains\vaporwave.dm" +#include "code\modules\bitrunning\virtual_domain\domains\wendigo.dm" +#include "code\modules\bitrunning\virtual_domain\domains\xeno_nest.dm" #include "code\modules\buildmode\bm_mode.dm" #include "code\modules\buildmode\buildmode.dm" #include "code\modules\buildmode\buttons.dm" @@ -4832,7 +4891,6 @@ #include "code\modules\religion\sparring\sparring_datum.dm" #include "code\modules\requests\request.dm" #include "code\modules\requests\request_manager.dm" -#include "code\modules\research\bepis.dm" #include "code\modules\research\designs.dm" #include "code\modules\research\destructive_analyzer.dm" #include "code\modules\research\experimentor.dm" diff --git a/tgui/packages/tgui/interfaces/AntagInfoCyberAuth.tsx b/tgui/packages/tgui/interfaces/AntagInfoCyberAuth.tsx new file mode 100644 index 000000000000..21d872ed6a05 --- /dev/null +++ b/tgui/packages/tgui/interfaces/AntagInfoCyberAuth.tsx @@ -0,0 +1,75 @@ +import { useBackend } from '../backend'; +import { Divider, Section, Stack } from '../components'; +import { Window } from '../layouts'; +import { Objective } from './common/Objectives'; + +type Info = { + antag_name: string; + objectives: Objective[]; +}; + +const textStyles = { + variable: { + color: 'white', + }, + danger: { + color: 'red', + }, +} as const; + +export const AntagInfoCyberAuth = (props, context) => { + const { data } = useBackend(context); + const { objectives = [] } = data; + + return ( + + +
+ + FN CYBER AUTHORITY UNIT (REF) + + + + You are a cyber authority unit. + + + + Your mission: Eliminate{' '} + organic intruders to maintain the integrity of the system. + + + Bitrunning is a crime. To + assist your task, your program has been loaded with cutting edge{' '} + martial arts skills. + + + Ranged weaponry is{' '} + forbidden. Ballistic + defense is frowned upon. Style is paramount. + + + {objectives[0].explanation} + + + + const TARGETS ={' '} + + + system. + INTRUDERS; + + + while TARGETS.LIFE !={' '} + stat.DEAD + + + action. + KILL() + + cyber_authority_unit([0x70cf4020]) + +
+
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/AvatarHelp.tsx b/tgui/packages/tgui/interfaces/AvatarHelp.tsx new file mode 100644 index 000000000000..647d3a2e22b4 --- /dev/null +++ b/tgui/packages/tgui/interfaces/AvatarHelp.tsx @@ -0,0 +1,122 @@ +import { useBackend } from '../backend'; +import { Box, Icon, Section, Stack } from '../components'; +import { Window } from '../layouts'; + +type Data = { + help_text: string; +}; + +const DEFAULT_HELP = `No information available! Ask for assistance if needed.`; + +const boxHelp = [ + { + color: 'purple', + text: 'Study the area and do what needs to be done to recover the crate. Pay close attention to domain information and context clues.', + icon: 'search-location', + title: 'Search', + }, + { + color: 'green', + text: 'Bring the crate to the designated sending location in the safehouse. The area may seem out of place. Examine the safehouse to find it.', + icon: 'boxes', + 'title': 'Recover', + }, + { + color: 'blue', + text: 'The ladder represents the safest way to disconnect before the cache is recovered. Should your connection sever, the netpod offers limited resuscitation potential.', + icon: 'plug', + title: 'Disconnect', + }, + { + color: 'yellow', + text: 'While connected, you are somewhat safe from environmental hazards and intrusions, but not completely. Pay close attention to alerts.', + icon: 'id-badge', + title: 'Security', + }, + { + color: 'gold', + text: 'Generating avatars costs tremendous bandwidth. Do not waste them.', + icon: 'coins', + title: 'Limited Attempts', + }, + { + color: 'red', + text: 'Remember that you are physically linked to this presence. You are a foreign body in a hostile environment. It will attempt to forcefully eject you.', + icon: 'skull-crossbones', + title: 'Realized Danger', + }, +] as const; + +export const AvatarHelp = (props, context) => { + const { data } = useBackend(context); + const { help_text = DEFAULT_HELP } = data; + + return ( + + + + +
+ {help_text} +
+
+ + + + + {[0, 1].map((i) => ( + + ))} + + + + + {[2, 3].map((i) => ( + + ))} + + + + + {[4, 5].map((i) => ( + + ))} + + + + +
+
+
+ ); +}; + +// I wish I had media queries +const BoxHelp = (props: { index: number }, context) => { + const { index } = props; + + return ( + +
+ + {boxHelp[index].title} + + }> + {boxHelp[index].text} +
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/Bepis.tsx b/tgui/packages/tgui/interfaces/Bepis.tsx deleted file mode 100644 index d2835e530d36..000000000000 --- a/tgui/packages/tgui/interfaces/Bepis.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import { BooleanLike } from 'common/react'; -import { useBackend } from '../backend'; -import { Box, Button, Grid, LabeledList, NumberInput, Section } from '../components'; -import { Window } from '../layouts'; - -type Data = { - amount: number; - account_owner: string; - manual_power: BooleanLike; - stored_cash: number; - accuracy_percentage: number; - positive_cash_offset: number; - negative_cash_offset: number; - silicon_check: BooleanLike; - success_estimate: number; - mean_value: number; - error_name: string; -}; - -const BEPIS_SLOGAN = `All you need to know about the B.E.P.I.S. and you! The -B.E.P.I.S. performs hundreds of tests a second using -electrical and financial resources to invent new products, -or discover new technologies otherwise overlooked for being -too risky or too niche to produce!`; - -export const Bepis = (props, context) => { - const { act, data } = useBackend(context); - const { - amount, - account_owner, - manual_power, - stored_cash, - accuracy_percentage, - positive_cash_offset, - negative_cash_offset, - silicon_check, - success_estimate, - mean_value, - error_name, - } = data; - - return ( - - -
-
act('toggle_power')} - /> - }> - {BEPIS_SLOGAN} -
-
act('account_reset')} - /> - }> - Console is currently being operated by{' '} - {account_owner ? account_owner : 'no one'}. -
- - -
- - - {stored_cash} - - - {accuracy_percentage}% - - - {positive_cash_offset} - - - {negative_cash_offset} - - - - act('amount', { - amount: value, - }) - } - /> - - -
- -
-
-
- ); -}; diff --git a/tgui/packages/tgui/interfaces/Canvas.tsx b/tgui/packages/tgui/interfaces/Canvas.tsx index f4d374629470..1dddec2e9073 100644 --- a/tgui/packages/tgui/interfaces/Canvas.tsx +++ b/tgui/packages/tgui/interfaces/Canvas.tsx @@ -1,12 +1,15 @@ import { Color } from 'common/color'; -import { decodeHtmlEntities } from 'common/string'; +import { multiline, decodeHtmlEntities } from 'common/string'; import { Component, createRef, RefObject } from 'inferno'; import { useBackend } from '../backend'; -import { Box, Button, Flex } from '../components'; +import { Tooltip, Icon, Box, Button, Flex } from '../components'; import { Window } from '../layouts'; +const LEFT_CLICK = 0; + type PaintCanvasProps = Partial<{ onCanvasModifiedHandler: (data: PointData[]) => void; + onCanvasDropperHandler: (x: number, y: number) => void; value: string[][]; width: number; height: number; @@ -14,6 +17,8 @@ type PaintCanvasProps = Partial<{ imageHeight: number; editable: boolean; drawing_color: string | null; + has_palette: boolean; + show_grid: boolean; }>; type PointData = { @@ -33,8 +38,10 @@ const toMassPaintFormat = (data: PointData[]) => { class PaintCanvas extends Component { canvasRef: RefObject; baseImageData: Color[][]; + is_grid_shown: boolean; modifiedElements: PointData[]; onCanvasModified: (data: PointData[]) => void; + onCanvasDropper: (x: number, y: number) => void; drawing: boolean; drawing_color: string; @@ -42,12 +49,15 @@ class PaintCanvas extends Component { super(props); this.canvasRef = createRef(); this.modifiedElements = []; + this.is_grid_shown = false; this.drawing = false; this.onCanvasModified = props.onCanvasModifiedHandler; + this.onCanvasDropper = props.onCanvasDropperHandler; this.handleStartDrawing = this.handleStartDrawing.bind(this); this.handleDrawing = this.handleDrawing.bind(this); this.handleEndDrawing = this.handleEndDrawing.bind(this); + this.handleDropper = this.handleDropper.bind(this); } componentDidMount() { @@ -58,9 +68,10 @@ class PaintCanvas extends Component { componentDidUpdate() { // eslint-disable-next-line max-len if ( - this.props.value !== undefined && - JSON.stringify(this.baseImageData) !== - JSON.stringify(fromDM(this.props.value)) + (this.props.value !== undefined && + JSON.stringify(this.baseImageData) !== + JSON.stringify(fromDM(this.props.value))) || + this.is_grid_shown !== this.props.show_grid ) { this.syncCanvas(); } @@ -84,6 +95,7 @@ class PaintCanvas extends Component { return; } this.baseImageData = fromDM(this.props.value); + this.is_grid_shown = !!this.props.show_grid; this.modifiedElements = []; const canvas = this.canvasRef.current!; @@ -94,6 +106,11 @@ class PaintCanvas extends Component { const color = element[y]; ctx.fillStyle = color.toString(); ctx.fillRect(x, y, 1, 1); + if (this.is_grid_shown) { + ctx.strokeStyle = '#888888'; + ctx.lineWidth = 0.05; + ctx.strokeRect(x, y, 1, 1); + } } } } @@ -115,7 +132,8 @@ class PaintCanvas extends Component { if ( !this.props.editable || this.props.drawing_color === undefined || - this.props.drawing_color === null + this.props.drawing_color === null || + event.button !== LEFT_CLICK ) { return; } @@ -133,6 +151,11 @@ class PaintCanvas extends Component { const ctx = canvas.getContext('2d')!; ctx.fillStyle = color; ctx.fillRect(x, y, 1, 1); + if (this.is_grid_shown) { + ctx.strokeStyle = '#888888'; + ctx.lineWidth = 0.05; + ctx.strokeRect(x, y, 1, 1); + } } handleDrawing(event: MouseEvent) { @@ -155,6 +178,15 @@ class PaintCanvas extends Component { } } + handleDropper(event: MouseEvent) { + event.preventDefault(); + if (!this.props.has_palette) { + return; + } + const coords = this.eventToCoords(event); + this.onCanvasDropper(coords.x + 1, coords.y + 1); // 1-based index dm side + } + render() { const { value, @@ -173,7 +205,8 @@ class PaintCanvas extends Component { onMouseDown={this.handleStartDrawing} onMouseMove={this.handleDrawing} onMouseUp={this.handleEndDrawing} - onMouseOut={this.handleEndDrawing}> + onMouseOut={this.handleEndDrawing} + onContextMenu={this.handleDropper}> Canvas failed to render. ); @@ -204,6 +237,7 @@ type CanvasData = { patron: string | null; date: string | null; show_plaque: boolean; + show_grid: boolean; }; export const Canvas = (props, context) => { @@ -212,7 +246,8 @@ export const Canvas = (props, context) => { const scaled_width = width * data.px_per_unit; const scaled_height = height * data.px_per_unit; const average_plaque_height = 90; - const palette_height = 36; + const palette_height = 44; + const griddy = !!data.show_grid && !!data.editable && !!data.paint_tool_color; return ( { (data.editable && data.paint_tool_palette ? palette_height : 0) }> + + {!!data.paint_tool_palette && ( + + + + + + )} + {!!data.editable && !!data.paint_tool_color && ( + + + + ))} + + + + + + + + {selected} + + + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/constants.ts b/tgui/packages/tgui/interfaces/Orbit/constants.ts index d80d284eed04..eb03e0ed9215 100644 --- a/tgui/packages/tgui/interfaces/Orbit/constants.ts +++ b/tgui/packages/tgui/interfaces/Orbit/constants.ts @@ -2,8 +2,12 @@ export const ANTAG2COLOR = { 'Abductors': 'pink', 'Ash Walkers': 'olive', 'Biohazards': 'brown', + 'Bounty Hunters': 'yellow', 'CentCom': 'teal', + 'Cyber Authority': 'teal', 'Emergency Response Team': 'teal', + 'Escaped Fugitives': 'orange', + 'Xenomorph Infestation': 'violet', } as const; export const THREAT = { diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cyberpolice.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cyberpolice.ts new file mode 100644 index 000000000000..03fc370c1f4c --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cyberpolice.ts @@ -0,0 +1,23 @@ +import { Antagonist, Category } from '../base'; +import { multiline } from 'common/string'; + +const CyberPolice: Antagonist = { + key: 'cyberpolice', + name: 'Cyber Police', + description: [ + multiline` + On the razor edge of the digital realm, the Cyber Authority has tasked + enforcement officers with preserving system harmony. + `, + + multiline` + Using refined martial arts skills, terminate bitrunners in the virtual + domain. Look snazzy while doing it. Cyber police are short lived combat + roles that spawn from mobs (other than elites or players) in the virtual + domain. + `, + ], + category: Category.Midround, +}; + +export default CyberPolice; diff --git a/tgui/packages/tgui/interfaces/QuantumConsole.tsx b/tgui/packages/tgui/interfaces/QuantumConsole.tsx new file mode 100644 index 000000000000..5e87e61bb462 --- /dev/null +++ b/tgui/packages/tgui/interfaces/QuantumConsole.tsx @@ -0,0 +1,350 @@ +import { Window } from '../layouts'; +import { useBackend } from '../backend'; +import { Button, Collapsible, Icon, NoticeBox, ProgressBar, Section, Stack, Table, Tooltip } from '../components'; +import { BooleanLike } from 'common/react'; +import { LoadingScreen } from './common/LoadingToolbox'; +import { TableCell, TableRow } from '../components/Table'; + +type Data = + | { + available_domains: Domain[]; + avatars: Avatar[]; + connected: 1; + generated_domain: string | null; + occupants: number; + points: number; + randomized: BooleanLike; + ready: BooleanLike; + retries_left: number; + scanner_tier: number; + } + | { + connected: 0; + }; + +type Avatar = { + health: number; + name: string; + pilot: string; + brute: number; + burn: number; + tox: number; + oxy: number; +}; + +type Domain = { + cost: number; + desc: string; + difficulty: number; + id: string; + name: string; + reward: number | string; +}; + +type DomainEntryProps = { + domain: Domain; +}; + +type DisplayDetailsProps = { + amount: number | string; + color: string; + icon: string; +}; + +enum Difficulty { + None, + Low, + Medium, + High, +} + +const isConnected = (data: Data): data is Data & { connected: 1 } => + data.connected === 1; + +const getColor = (difficulty: number) => { + switch (difficulty) { + case Difficulty.Low: + return 'yellow'; + case Difficulty.Medium: + return 'average'; + case Difficulty.High: + return 'bad'; + default: + return ''; + } +}; + +export const QuantumConsole = (props, context) => { + const { data } = useBackend(context); + + return ( + + + {!!data.connected && !data.ready && } + + + + ); +}; + +const AccessView = (props, context) => { + const { act, data } = useBackend(context); + + if (!isConnected(data)) { + return No server connected!; + } + + const { + available_domains = [], + generated_domain, + ready, + occupants, + points, + } = data; + + const sorted = available_domains.sort((a, b) => a.cost - b.cost); + + const selected = sorted.find(({ id }) => id === generated_domain); + + return ( + + +
+ + + + {points} + + + } + fill + scrollable + title="Virtual Domains"> + {sorted.map((domain) => ( + + ))} +
+
+ + + + +
+ + + + {selected?.name ?? 'Nothing loaded'} + + + + act('stop_domain')} + tooltip="Begins shutdown. Will notify anyone connected." + /> + + +
+
+
+ ); +}; + +const DomainEntry = (props: DomainEntryProps, context) => { + const { + domain: { cost, desc, difficulty, id, name, reward }, + } = props; + const { act, data } = useBackend(context); + if (!isConnected(data)) { + return null; + } + + const { generated_domain, ready, occupants, randomized, points } = data; + + const current = generated_domain === id; + const occupied = occupants > 0; + let buttonIcon, buttonName; + if (randomized) { + buttonIcon = ''; + buttonName = '???'; + } else if (current) { + buttonIcon = 'download'; + buttonName = 'Deployed'; + } else { + buttonIcon = 'coins'; + buttonName = 'Deploy'; + } + + return ( + act('set_domain', { id })} + tooltip={!!generated_domain && 'Stop current domain first.'}> + {buttonName} + + } + color={getColor(difficulty)} + title={ + <> + {name} + {difficulty === Difficulty.High && } + + }> + + + {desc} + + + + + + + + + + + + + +
+
+
+
+ ); +}; + +const AvatarDisplay = (props, context) => { + const { act, data } = useBackend(context); + if (!isConnected(data)) { + return null; + } + + const { avatars = [], generated_domain, retries_left } = data; + + return ( +
+ {!!generated_domain && ( + + + + + + )} + + + + + }> + + {avatars.map(({ health, name, pilot, brute, burn, tox, oxy }) => ( + + + {pilot} as{' '} + "{name}" + + + + {brute === 0 && burn === 0 && tox === 0 && oxy === 0 && ( + + + + )} + + 50 ? 'bad' : 'gray'} name="tint" /> + + + 50 ? 'average' : 'gray'} name="fire" /> + + + 50 ? 'green' : 'gray'} + name="skull-crossbones" + /> + + + 50 ? 'blue' : 'gray'} name="lungs" /> + + + + + + + + ))} +
+
+ ); +}; + +const DisplayDetails = (props: DisplayDetailsProps, context) => { + const { amount = 0, color, icon = 'star' } = props; + + if (amount === 0) { + return No bandwidth; + } + + if (typeof amount === 'string') { + return {String(amount)}; // don't ask + } + + if (amount > 4) { + return ( + + + {amount} + + + + + + ); + } + + return ( + + + {Array.from({ length: amount }, (_, index) => ( + + + + ))} + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/common/JobToIcon.ts b/tgui/packages/tgui/interfaces/common/JobToIcon.ts index a5f5c72dd0b8..c75cee645baa 100644 --- a/tgui/packages/tgui/interfaces/common/JobToIcon.ts +++ b/tgui/packages/tgui/interfaces/common/JobToIcon.ts @@ -4,6 +4,8 @@ const BASEICONS = { 'Assistant': 'toolbox', 'Atmospheric Technician': 'fan', 'Bartender': 'cocktail', + 'Bit Avatar': 'code', + 'Bitrunner': 'gamepad', 'Botanist': 'seedling', 'Captain': 'crown', 'Cargo Technician': 'box', @@ -18,7 +20,9 @@ const BASEICONS = { 'Chief Medical Officer': 'user-md', 'Clown': 'face-grin-tears', 'Cook': 'utensils', + 'Coroner': 'skull', 'Curator': 'book', + 'Cyber Police': 'qrcode', 'Cyborg': 'robot', 'Detective': 'user-secret', 'Geneticist': 'dna', diff --git a/tgui/packages/tgui/interfaces/common/LoadingToolbox.tsx b/tgui/packages/tgui/interfaces/common/LoadingToolbox.tsx new file mode 100644 index 000000000000..a77eb78c3389 --- /dev/null +++ b/tgui/packages/tgui/interfaces/common/LoadingToolbox.tsx @@ -0,0 +1,32 @@ +import { Stack, Icon, Dimmer } from '../../components'; + +/** Spinner that represents loading states. + * + * @usage + * ```tsx + * /// rest of the component + * return ( + * ///... content to overlay + * {!!loading && } + * /// ... content to overlay + * ); + * ``` + * OR + * ```tsx + * return ( + * {loading ? : } + * ) + * ``` + */ +export const LoadingScreen = (props, context) => { + return ( + + + + + + Please wait... + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/common/Objectives.tsx b/tgui/packages/tgui/interfaces/common/Objectives.tsx new file mode 100644 index 000000000000..a6bd5b539bff --- /dev/null +++ b/tgui/packages/tgui/interfaces/common/Objectives.tsx @@ -0,0 +1,92 @@ +import { BooleanLike } from 'common/react'; +import { InfernoNode } from 'inferno'; +import { useBackend } from '../../backend'; +import { Button, Stack } from '../../components'; + +export type Objective = { + // The title of the objective, not actually displayed so optional + name?: string; + // What "number" objective this is, IE, its index in the list of objectives + count: number; + // The text explaining what this objective requires + explanation: string; + // Whether or not this objective is completed + complete: BooleanLike; +}; + +type ObjectivePrintoutProps = { + // For passing onto the Stack component + fill?: boolean; + // Allows additional components to follow the printout in the same stack + objectiveFollowup?: InfernoNode; + // The prefix to use for each objective, defaults to "#" (#1, #2) + objectivePrefix?: string; + // The font size to use for each objective + objectiveTextSize?: string; + // The objectives to print out + objectives: Objective[]; + // The title to use for the printout, defaults to "Your current objectives" + titleMessage?: string; +}; + +export const ObjectivePrintout = (props: ObjectivePrintoutProps, context) => { + const { + fill, + objectiveFollowup, + objectivePrefix, + objectiveTextSize, + objectives = [], + titleMessage, + } = props; + + return ( + + {titleMessage || `Your current objectives`}: + + {(objectives.length === 0 && 'None!') || + objectives.map((objective) => ( + + {objectivePrefix || '#'} + {objective.count}: {objective.explanation} + + ))} + + {!!objectiveFollowup && {objectiveFollowup}} + + ); +}; + +type ReplaceObjectivesProps = { + // Whether we can actually use this button + can_change_objective: BooleanLike; + // What do we call our button + button_title: string; + // What colour is our button + button_colour: string; + // Tooltip to display on our button + button_tooltip?: string; +}; + +export const ReplaceObjectivesButton = ( + props: ReplaceObjectivesProps, + context +) => { + const { + can_change_objective, + button_title, + button_colour, + button_tooltip = 'Replace your existing objectives with a custom one. This action can only be taken once', + } = props; + const { act } = useBackend(context); + if (!can_change_objective) { + return null; + } + return ( +