diff --git a/.github/workflows/compile_changelogs.yml b/.github/workflows/compile_changelogs.yml new file mode 100644 index 0000000000..141fc9a7d8 --- /dev/null +++ b/.github/workflows/compile_changelogs.yml @@ -0,0 +1,36 @@ +name: Compile changelogs + +on: + schedule: + - cron: "0 0 * * *" + +jobs: + compile: + name: "Compile changelogs" + runs-on: ubuntu-latest + steps: + - name: "Setup python" + uses: actions/setup-python@v1 + with: + python-version: '3.x' + - name: "Install deps" + run: | + python -m pip install --upgrade pip + python -m pip install pyyaml + - name: "Checkout" + uses: actions/checkout@v1 + with: + fetch-depth: 25 + - name: "Compile" + run: | + python tools/ss13_genchangelog.py html/changelog.html html/changelogs + - name: Commit + run: | + git config --local user.email "action@github.com" + git config --local user.name "Changelogs" + git pull origin master + git commit -m "Automatic changelog compile [ci skip]" -a || true + - name: "Push" + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/SpacemanDMM.toml b/SpacemanDMM.toml new file mode 100644 index 0000000000..b827472254 --- /dev/null +++ b/SpacemanDMM.toml @@ -0,0 +1,2 @@ +[langserver] +dreamchecker = true diff --git a/_maps/RandomRuins/SpaceRuins/spacehermit.dmm b/_maps/RandomRuins/SpaceRuins/spacehermit.dmm index 8113c586ff..dd7e700146 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehermit.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehermit.dmm @@ -145,9 +145,6 @@ "aE" = ( /turf/open/floor/plating/asteroid/airless, /area/ruin/powered) -"aF" = ( -/turf/open/floor/plating/asteroid, -/area/ruin/powered) "aG" = ( /obj/structure/sink/puddle, /turf/open/floor/plating/asteroid, @@ -241,7 +238,7 @@ /turf/closed/mineral/random/low_chance/earth_like, /area/ruin/powered) "bb" = ( -/turf/closed/mineral/random/earth_like, +/turf/closed/mineral/random/no_caves/earth_like, /area/ruin/powered) "bc" = ( /obj/item/circuitboard/machine/circuit_imprinter, @@ -1137,7 +1134,7 @@ ao ao ak af -aF +am bb bb bb @@ -1189,7 +1186,7 @@ an an ae ae -aF +am bb bb bb @@ -1223,8 +1220,8 @@ bb bb bb ba -aF -aF +am +am ba ba ba @@ -1241,7 +1238,7 @@ ar af at at -aF +am bb fp bb @@ -1275,10 +1272,10 @@ bb bb bb ad -aF -aF -aF -aF +am +am +am +am ba aH aJ @@ -1286,13 +1283,13 @@ aL bb bb aT -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am aR bb bb @@ -1328,23 +1325,23 @@ bb bb ad au -aF +am aB -aF -aF -aF -aF -aF +am +am +am +am +am ba bb -aF -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am +am bg bb fp @@ -1384,19 +1381,19 @@ bs aC bC WH -aF -aF -aF +am +am +am ba bb bb -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am bb bb bb @@ -1432,23 +1429,23 @@ bb bb ad ax -aF +am aD -aF -aF -aF -aF +am +am +am +am bb bb bb aU bd -aF -aF +am +am bl bm -aF -aF +am +am bb bb bb @@ -1484,20 +1481,20 @@ bb bb ad ay -aF -aF -aF +am +am +am aG -aF -aF +am +am bb bb ba av be -aF -aF -aF +am +am +am bn bo bo @@ -1535,24 +1532,24 @@ bb bb bb ba -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am bb bb bb bc bf -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am br bb bb @@ -1590,22 +1587,22 @@ bb bb bb bb -aF -aF -aF -aF -aF +am +am +am +am +am bb bb -aF -aF -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am +am +am bb bb bb @@ -1642,21 +1639,21 @@ bb bb bb bb -aF -aF -aF -aF -aF +am +am +am +am +am aN -aF -aF -aF -aF +am +am +am +am aR -aF -aF -aF -aF +am +am +am +am bb bb fp @@ -1695,22 +1692,22 @@ bb bb bb ba -aF -aF -aF +am +am +am ba ba -aF -aF -aF -aF -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am +am +am +am +am ba ba ba @@ -1752,16 +1749,16 @@ ba aK ba ba -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am bp -aF -aF +am +am aR ba ba @@ -1805,15 +1802,15 @@ ba fp ba aP -aF -aF -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am +am +am aR ba ba @@ -1858,15 +1855,15 @@ ba ba aQ aP -aF -aF +am +am aR -aF -aF -aF -aF +am +am +am +am bb -aF +am ba ba aZ @@ -1910,12 +1907,12 @@ ba ba ba ba -aF -aF -aF -aF +am +am +am +am aP -aF +am bg bb bb @@ -1962,12 +1959,12 @@ bb bb ba ba -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am aS bb fp @@ -2015,11 +2012,11 @@ bb bb ba bg -aF -aF -aF -aF -aF +am +am +am +am +am aS bb fp @@ -2066,12 +2063,12 @@ bb bb fp ba -aF -aF +am +am bj -aF -aF -aF +am +am +am aS fp bb @@ -2120,9 +2117,9 @@ ba ba aS bi -aF -aF -aF +am +am +am aS aS bb @@ -2171,10 +2168,10 @@ ba aZ ba aS -aF -aF -aF -aF +am +am +am +am aS aS ba diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm index 69b56946f2..209feb82e3 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm @@ -2688,7 +2688,7 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/piano{ +/obj/structure/musician/piano{ icon_state = "piano" }, /turf/open/floor/plasteel/grimy, diff --git a/_maps/RandomRuins/SpaceRuins/vaporwave.dmm b/_maps/RandomRuins/SpaceRuins/vaporwave.dmm index 75adc455b0..a1b2271d96 100644 --- a/_maps/RandomRuins/SpaceRuins/vaporwave.dmm +++ b/_maps/RandomRuins/SpaceRuins/vaporwave.dmm @@ -28,7 +28,7 @@ /turf/open/floor/holofloor/beach, /area/ruin/space/has_grav/powered/aesthetic) "i" = ( -/obj/structure/piano, +/obj/structure/musician/piano, /obj/structure/window{ dir = 8 }, diff --git a/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm b/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm index 3118ad3f5f..1bfb337d99 100644 --- a/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm +++ b/_maps/RandomRuins/StationRuins/Lavaland/Mining_Station/Mining_Station_Public_01.dmm @@ -154,13 +154,7 @@ /turf/open/floor/plasteel, /area/mine/living_quarters) "cX" = ( -/obj/structure/statue{ - desc = "A lifelike statue of a horrifying monster."; - dir = 8; - icon = 'icons/mob/lavaland/lavaland_monsters.dmi'; - icon_state = "goliath"; - name = "goliath" - }, +/obj/structure/closet/secure_closet/miner, /turf/open/floor/plasteel, /area/mine/living_quarters) "dk" = ( @@ -267,9 +261,13 @@ /turf/open/floor/plasteel, /area/mine/living_quarters) "eS" = ( -/obj/structure/table, -/obj/item/gps/mining, -/obj/item/gps/mining, +/obj/structure/statue{ + desc = "A lifelike statue of a horrifying monster."; + dir = 8; + icon = 'icons/mob/lavaland/lavaland_monsters.dmi'; + icon_state = "goliath"; + name = "goliath" + }, /turf/open/floor/plasteel, /area/mine/living_quarters) "fm" = ( @@ -427,7 +425,6 @@ /obj/effect/turf_decal/tile/brown{ dir = 4 }, -/obj/structure/displaycase, /turf/open/floor/plasteel, /area/mine/living_quarters) "hP" = ( @@ -773,7 +770,8 @@ /turf/open/floor/plasteel, /area/mine/laborcamp/security) "nH" = ( -/obj/structure/displaycase, +/obj/machinery/light, +/obj/structure/closet/wardrobe/miner, /turf/open/floor/plasteel, /area/mine/living_quarters) "nI" = ( @@ -1086,6 +1084,7 @@ /obj/effect/turf_decal/tile/brown{ dir = 1 }, +/obj/effect/turf_decal/tile/brown, /turf/open/floor/plasteel, /area/mine/living_quarters) "re" = ( @@ -1181,9 +1180,6 @@ name = "Station Intercom (General)"; pixel_x = 28 }, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 }, @@ -1279,12 +1275,8 @@ /turf/open/floor/plasteel, /area/mine/production) "uG" = ( -/obj/structure/table, -/obj/item/clothing/glasses/meson, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/item/mining_scanner, -/obj/item/flashlight, +/obj/structure/ore_box, +/obj/effect/turf_decal/box, /turf/open/floor/plasteel, /area/mine/living_quarters) "uI" = ( @@ -1758,15 +1750,6 @@ "Cd" = ( /turf/closed/wall, /area/mine/production) -"Cg" = ( -/obj/structure/table, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/tank/internals/emergency_oxygen, -/turf/open/floor/plasteel, -/area/mine/living_quarters) "Cj" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -1870,7 +1853,6 @@ /obj/machinery/light{ dir = 1 }, -/obj/structure/chair, /turf/open/floor/plasteel, /area/mine/living_quarters) "Dv" = ( @@ -1880,12 +1862,6 @@ }, /turf/open/floor/plating, /area/mine/laborcamp/security) -"DN" = ( -/obj/machinery/computer/shuttle/mining/common{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) "Ed" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -2028,27 +2004,6 @@ }, /turf/open/floor/plating, /area/mine/laborcamp) -"Hk" = ( -/obj/docking_port/stationary{ - area_type = /area/lavaland/surface/outdoors; - dir = 8; - dwidth = 3; - height = 7; - id = "lavaland_common_away"; - name = "Mining base public dock"; - width = 7 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Hm" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Lavaland Shuttle Airlock" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) "Ho" = ( /obj/machinery/door/airlock{ name = "Restroom" @@ -2121,12 +2076,6 @@ }, /turf/open/floor/plasteel/white, /area/mine/living_quarters) -"If" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) "Ii" = ( /obj/structure/table, /obj/item/storage/box/donkpockets, @@ -2757,9 +2706,6 @@ /obj/effect/turf_decal/tile/brown{ dir = 4 }, -/obj/structure/table, -/obj/item/gps/mining, -/obj/item/gps/mining, /turf/open/floor/plasteel, /area/mine/living_quarters) "Pq" = ( @@ -2882,7 +2828,6 @@ /obj/machinery/newscaster{ pixel_y = 32 }, -/obj/structure/chair, /turf/open/floor/plasteel, /area/mine/living_quarters) "Rv" = ( @@ -3399,15 +3344,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/plasteel, /area/mine/living_quarters) -"Zw" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Lavaland Shuttle Airlock" - }, -/turf/open/floor/plasteel, -/area/mine/living_quarters) "ZF" = ( /obj/machinery/telecomms/relay/preset/mining, /obj/machinery/light/small{ @@ -4330,10 +4266,10 @@ VT VT VT VT -Lm -Lm -Lm -Lm +VT +VT +VT +VT VT VT VT @@ -4386,14 +4322,14 @@ VT VT VT VT -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm +VT +VT +VT +VT +VT +VT +VT +VT VT VT VT @@ -4442,15 +4378,15 @@ wz VT VT VT +VT +VT +VT +VT +VT Lm Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm +VT +VT Lm VT VT @@ -4499,17 +4435,17 @@ wz wz VT VT +VT +VT Lm +VT +VT +VT Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm +VT +VT +VT +VT Lm VT VT @@ -4555,18 +4491,18 @@ Lm wz wz Lm +VT +VT +VT Lm Lm Lm Lm Lm -Lm -Lm -Lm -Lm -Lm -Lm -Lm +VT +VT +VT +VT VT VT VT @@ -4612,6 +4548,8 @@ VT VT wz Lm +VT +VT Lm Lm Lm @@ -4620,10 +4558,8 @@ Lm Lm Lm Lm -Lm -Lm -Lm -Lm +VT +VT VT VT VT @@ -4669,6 +4605,7 @@ VT VT Lm Lm +VT Lm Lm Lm @@ -4678,8 +4615,7 @@ Lm Lm Lm Lm -Lm -Lm +VT VT VT VT @@ -4725,12 +4661,12 @@ my VT VT VT +VT +VT Lm Lm -Lm -Lm -Lm -Lm +VT +VT Lm Lm Lm @@ -4786,10 +4722,10 @@ wz Lm Lm Lm +VT Lm Lm Lm -Hk Lm Lm Lm @@ -4843,11 +4779,11 @@ wz Lm Lm Lm +VT +Lm +Lm Lm Lm -KV -Zw -KV Lm Lm Lm @@ -4902,9 +4838,9 @@ Lm Lm Lm Lm -KV -Ag -KV +Lm +Lm +Lm Lm Lm VT @@ -4959,9 +4895,9 @@ VN VN XX VN -KV -Hm -KV +VN +VN +VN VT VT VT @@ -5013,12 +4949,12 @@ pu bn VN zy -If -DN -If -FE +Ag +Ag +Ag +Ag qZ -KV +VN VT VT VT @@ -5074,8 +5010,8 @@ Ag Ag Ag Ag -Ag -KV +cX +VN VT VT VT @@ -5132,7 +5068,7 @@ uG uG Ag cX -KV +VN VT VT VT @@ -5188,8 +5124,8 @@ KO uG uG Ag -Ag -KV +cX +VN VT VT VT @@ -5245,7 +5181,7 @@ RP Ag Ag Ag -oy +nH VN VT VT @@ -5300,8 +5236,8 @@ VN Pp sx eS -Cg -nH +Ag +Ag hH VN wz diff --git a/_maps/RandomZLevels/Cabin.dmm b/_maps/RandomZLevels/Cabin.dmm index 4d07c02565..a0862213a2 100644 --- a/_maps/RandomZLevels/Cabin.dmm +++ b/_maps/RandomZLevels/Cabin.dmm @@ -713,7 +713,7 @@ /turf/open/floor/wood, /area/awaymission/cabin) "cz" = ( -/obj/structure/piano, +/obj/structure/musician/piano, /turf/open/floor/wood, /area/awaymission/cabin) "cA" = ( diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index e9d592c107..c84acf0131 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -924,8 +924,8 @@ /area/awaymission/caves/BMP_asteroid/level_two) "cK" = ( /obj/structure/sign/warning/securearea{ - desc = "A warning sign which reads 'HOLY SHIT NIGGA WHAT ARE YOU DOING'."; - name = "\improper HOLY SHIT NIGGA WHAT ARE YOU DOING" + desc = "A warning sign which reads 'HOLY SHIT DUDE WHAT ARE YOU DOING'."; + name = "\improper HOLY SHIT DUDE WHAT ARE YOU DOING" }, /turf/closed/wall, /area/awaymission/caves/BMP_asteroid/level_two) diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 0a08edb9b2..d85c8b12d6 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -761,7 +761,7 @@ }, /area/awaymission/moonoutpost19/syndicate) "bF" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/high_loot{ dir = 1 }, /turf/open/floor/plasteel/freezer{ @@ -4121,7 +4121,7 @@ }, /area/awaymission/moonoutpost19/research) "hP" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/high_loot{ dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -4473,7 +4473,7 @@ }, /area/awaymission/moonoutpost19/research) "iw" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/high_loot{ dir = 4 }, /obj/machinery/light/small{ @@ -4764,7 +4764,7 @@ }, /area/awaymission/moonoutpost19/arrivals) "iZ" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/high_loot{ dir = 1 }, /turf/open/floor/plasteel/freezer{ diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index c24bf45f81..a40066df4f 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -5939,7 +5939,7 @@ /turf/open/floor/plasteel, /area/awaymission/snowdin/post/garage) "mD" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/high_loot{ dir = 1 }, /obj/machinery/light/small, @@ -8796,7 +8796,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/awaymission/snowdin/post/cavern2) "tk" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/high_loot{ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, @@ -9643,7 +9643,7 @@ /turf/open/floor/plasteel/showroomfloor, /area/awaymission/snowdin/post/cavern1) "vE" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/high_loot{ dir = 1 }, /turf/open/floor/plasteel/showroomfloor, diff --git a/_maps/cogstation.dm b/_maps/cogstation.dm new file mode 100644 index 0000000000..5c01aaec46 --- /dev/null +++ b/_maps/cogstation.dm @@ -0,0 +1 @@ +#define FORCE_MAP "_maps/cogstation.json" \ No newline at end of file diff --git a/_maps/cogstation.json b/_maps/cogstation.json new file mode 100644 index 0000000000..8adabe69a2 --- /dev/null +++ b/_maps/cogstation.json @@ -0,0 +1,11 @@ +{ + "map_name": "CogStation", + "map_path": "map_files/CogStation", + "map_file": "CogStation.dmm", + "shuttles": { + "cargo": "cargo_box", + "ferry": "ferry_fancy", + "whiteship": "whiteship_cog", + "emergency": "emergency_cog" + } +} \ No newline at end of file diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index a2f0026842..3b2ee52e24 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -1337,7 +1337,7 @@ /turf/open/floor/plasteel, /area/security/prison) "adf" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/prison{ dir = 1 }, /turf/open/floor/plasteel/freezer, @@ -11677,7 +11677,7 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "aAs" = ( -/obj/structure/piano{ +/obj/structure/musician/piano{ icon_state = "piano" }, /turf/open/floor/plating, @@ -13056,7 +13056,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/cryopod) "aDL" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 4 }, /obj/structure/mirror{ @@ -13944,7 +13944,7 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/storage/eva) "aGk" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 4 }, /obj/structure/mirror{ @@ -15799,7 +15799,7 @@ /area/hydroponics) "aKJ" = ( /obj/machinery/vending/cola/black, -/obj/structure/sign/poster/contraband/sun_kist{ +/obj/structure/sign/poster/contraband/starkist{ pixel_y = 32 }, /turf/open/floor/wood, @@ -21467,7 +21467,7 @@ /turf/open/floor/plating, /area/maintenance/port) "aZt" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 4 }, /obj/structure/mirror{ @@ -55549,18 +55549,6 @@ /obj/structure/grille, /turf/open/space/basic, /area/space/nearstation) -"iDS" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 3; - height = 5; - id = "commonmining_home"; - name = "SS13: Common Mining Dock"; - roundstart_template = /datum/map_template/shuttle/mining_common/meta; - width = 7 - }, -/turf/open/space/basic, -/area/space) "iEJ" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod One" @@ -55633,7 +55621,7 @@ }, /area/crew_quarters/theatre) "iTU" = ( -/obj/structure/piano{ +/obj/structure/musician/piano{ icon_state = "piano" }, /turf/open/floor/wood, @@ -56816,7 +56804,7 @@ /turf/open/floor/plating, /area/security/main) "myh" = ( -/obj/structure/piano, +/obj/structure/musician/piano, /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, @@ -57124,15 +57112,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"nGI" = ( -/obj/machinery/door/airlock/external{ - name = "Common Mining Shuttle Bay" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) "nLu" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -57504,7 +57483,7 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "oIW" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /turf/open/floor/mineral/titanium/blue, @@ -60202,17 +60181,6 @@ /obj/item/coin/gold, /turf/open/floor/plasteel, /area/crew_quarters/fitness) -"xfS" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/computer/shuttle/mining/common{ - dir = 4 - }, -/turf/open/floor/plasteel/white/corner{ - dir = 1 - }, -/area/hallway/secondary/entry) "xgk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -60535,15 +60503,6 @@ /obj/item/instrument/trombone, /turf/open/floor/wood, /area/crew_quarters/theatre) -"xQG" = ( -/obj/machinery/door/airlock/external{ - name = "Common Mining Shuttle Bay" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) "xSW" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -60647,7 +60606,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/pool) "ycd" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 4 }, /obj/structure/mirror{ @@ -69068,7 +69027,7 @@ aaa aaa aoV aaa -iDS +aaa aaa aaa aoV @@ -69323,11 +69282,11 @@ aaa aaa aaa aaa -asE -asE -nGI -asE -asE +aaa +aaa +aaa +aaa +aaa aoV aaa aaa @@ -69581,9 +69540,9 @@ aaa aaa aaa aaf -awW -auP -awW +aaa +aaa +aaa aaf kls aaa @@ -69839,8 +69798,8 @@ aaa aaa arB arB -xQG -asE +arB +arB aAC aaf aaa @@ -70095,7 +70054,7 @@ aaa aaa aaa arB -xfS +awZ ayk awW aAD @@ -73439,7 +73398,7 @@ ayl aIK ayl beM -asE +arB aaa aaa aaa diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm new file mode 100644 index 0000000000..28eded5c85 --- /dev/null +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -0,0 +1,136682 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aaa" = ( +/turf/open/space/basic, +/area/space) +"aab" = ( +/obj/structure/sign/poster/official/anniversary_vintage_reprint, +/turf/closed/wall/r_wall, +/area/science/research{ + name = "Research Sector" + }) +"aac" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"aad" = ( +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/holodeck/rec_center) +"aae" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 4; + height = 12; + id = "arrivals_stationary"; + name = "cog arrivals"; + roundstart_template = /datum/map_template/shuttle/arrival/cog; + width = 9 + }, +/turf/open/space/basic, +/area/space) +"aaf" = ( +/turf/closed/wall, +/area/science/test_area) +"aag" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/stairs/medium, +/area/hallway/secondary/entry) +"aah" = ( +/obj/structure/sign/warning/electricshock, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"aai" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall/rust, +/area/maintenance/fore) +"aaj" = ( +/turf/closed/wall/r_wall, +/area/maintenance/port/fore) +"aak" = ( +/obj/machinery/conveyor/auto{ + id = "pb" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"aal" = ( +/turf/closed/wall, +/area/maintenance/port/fore) +"aam" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aan" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/ai_monitored/security/armory) +"aao" = ( +/obj/machinery/power/solar{ + id = "forestarboard"; + name = "Fore-Starboard Solar Array" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) +"aap" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aaq" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aar" = ( +/obj/machinery/conveyor/auto{ + dir = 8; + id = "pb" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"aas" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aat" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/observatory"; + dir = 1; + name = "Observatory APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aau" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/port/fore"; + dir = 8; + name = "Port Bow Maintenance APC"; + pixel_x = -24 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aav" = ( +/obj/machinery/conveyor/auto{ + dir = 8; + id = "solar" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"aaw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/test_area) +"aax" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"aay" = ( +/obj/structure/sign/warning/electricshock, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"aaz" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/ai_monitored/security/armory) +"aaA" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"aaB" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/kitchen/backroom"; + dir = 1; + name = "Kitchen Coldroom APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"aaC" = ( +/obj/structure/closet/secure_closet/lethalshots, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/storage/box/firingpins, +/obj/item/storage/box/firingpins, +/obj/effect/spawner/lootdrop/armory_contraband/metastation, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"aaD" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"aaE" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/camera{ + c_tag = "Port Bow Maintenance - Fore"; + network = list("ss13","rd") + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aaF" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aaG" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/stairs/left, +/area/security/brig) +"aaH" = ( +/obj/machinery/computer/communications, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/obj/machinery/camera/motion{ + c_tag = "Armory Motion Sensor"; + pixel_x = 22 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aaI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aaJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aaK" = ( +/obj/machinery/power/solar{ + id = "foreport"; + name = "Fore-Port Solar Array" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"aaL" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space/basic, +/area/solar/port) +"aaM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/port) +"aaN" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/security/brig) +"aaO" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"aaP" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"aaQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aaR" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aaS" = ( +/turf/open/floor/plasteel, +/area/security/brig) +"aaT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"aaU" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"aaV" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solar/starboard/fore) +"aaW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aaX" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aaY" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 21 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"aaZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aba" = ( +/obj/machinery/door/airlock/external{ + name = "Arrival Shuttle Airlock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"abb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"abc" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"abd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"abe" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"abf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"abg" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"abh" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solar/port) +"abi" = ( +/obj/machinery/power/solar{ + id = "foreport"; + name = "Fore-Port Solar Array" + }, +/obj/structure/cable, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/port) +"abj" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"abk" = ( +/obj/structure/closet/crate/secure/plasma{ + name = "Ballistics Crate" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/gun/ballistic/automatic/wt550, +/obj/item/gun/ballistic/automatic/wt550, +/obj/item/ammo_box/magazine/wt550m9/wtrubber, +/obj/item/ammo_box/magazine/wt550m9/wtrubber, +/obj/item/ammo_box/magazine/wt550m9/wtrubber, +/obj/item/ammo_box/magazine/wt550m9/wtrubber, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"abl" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"abm" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"abn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/gun/ballistic/shotgun/riot{ + pixel_y = 6 + }, +/obj/item/gun/ballistic/shotgun/riot, +/obj/item/gun/ballistic/shotgun/riot{ + pixel_y = -6 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"abo" = ( +/obj/structure/closet/crate/secure/gear{ + name = "Grenade Crate" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/storage/box/flashbangs{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/storage/box/teargas{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/grenade/syndieminibomb/concussion/frag{ + pixel_x = -4 + }, +/obj/item/grenade/syndieminibomb/concussion/frag{ + pixel_x = -4 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier, +/obj/item/grenade/chem_grenade/incendiary{ + pixel_x = 3 + }, +/obj/item/grenade/chem_grenade/incendiary{ + pixel_x = 3 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"abp" = ( +/turf/closed/wall/r_wall, +/area/space/nearstation) +"abq" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"abr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"abs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"abt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"abu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"abv" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"abw" = ( +/obj/structure/closet/crate/secure/weapon{ + name = "Energy Gun Crate" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/gun/energy/laser, +/obj/item/gun/energy/laser, +/obj/item/gun/energy{ + pixel_y = -6 + }, +/obj/item/gun/energy{ + pixel_y = -6 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"abx" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/port) +"aby" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/space/nearstation) +"abz" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"abA" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"abB" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/closed/wall, +/area/crew_quarters/theatre/clown) +"abC" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/closed/wall, +/area/crew_quarters/theatre/clown) +"abD" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"abE" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"abF" = ( +/obj/machinery/mass_driver{ + dir = 8; + id = "sb_out"; + name = "Router Driver" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"abG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/box/trackimp{ + pixel_x = 4 + }, +/obj/item/storage/box/chemimp{ + pixel_x = -4 + }, +/obj/item/storage/lockbox/loyalty, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"abH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/space/nearstation) +"abI" = ( +/obj/structure/table, +/obj/structure/mirror{ + icon_state = "mirror_broke"; + pixel_x = -24 + }, +/obj/item/storage/briefcase, +/obj/item/circuitboard/machine/vending/donksofttoyvendor, +/obj/item/storage/pill_bottle/happy, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre/clown) +"abJ" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "sb_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"abK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"abL" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"abM" = ( +/turf/closed/wall/r_wall, +/area/router/aux) +"abN" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/checker, +/area/hallway/secondary/entry) +"abO" = ( +/obj/item/electropack, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"abP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/gun/energy/ionrifle{ + pixel_y = 4 + }, +/obj/item/gun/energy/temperature/security{ + pixel_y = -4 + }, +/obj/item/clothing/suit/armor/laserproof, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"abQ" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/maintenance/fore) +"abR" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/router/aux) +"abS" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"abT" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/dorms/purple"; + name = "Crew Quarters A APC"; + pixel_y = -26 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"abU" = ( +/obj/machinery/space_heater, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/dorms/blue"; + name = "Crew Quarters B APC"; + pixel_y = -26 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/fore) +"abV" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"abW" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/router/aux) +"abX" = ( +/obj/machinery/computer/secure_data, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Security Checkpoint"; + pixel_x = 22 + }, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"abY" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"abZ" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "sb_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"aca" = ( +/obj/machinery/conveyor{ + dir = 5; + id = "pb_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"acb" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"acc" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"acd" = ( +/obj/machinery/button/door{ + id = "armory"; + name = "Armory Blast Door Control"; + pixel_x = -28; + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ace" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "pb_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"acf" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "pb_out"; + name = "Router Driver" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"acg" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"ach" = ( +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aci" = ( +/turf/closed/wall, +/area/medical{ + name = "Medical Booth" + }) +"acj" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "solar_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"ack" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/shield/riot{ + pixel_x = -6 + }, +/obj/item/shield/riot{ + pixel_x = -6 + }, +/obj/item/shield/riot{ + pixel_x = -6 + }, +/obj/item/clothing/mask/gas/sechailer/swat{ + pixel_x = -4 + }, +/obj/item/clothing/mask/gas/sechailer/swat{ + pixel_x = -4 + }, +/obj/item/clothing/mask/gas/sechailer/swat{ + pixel_x = -4 + }, +/obj/item/clothing/glasses/hud/security/night, +/obj/item/clothing/glasses/hud/security/night, +/obj/item/clothing/glasses/hud/security/night, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"acl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Armory"; + req_one_access_txt = "3" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acm" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"acn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aco" = ( +/turf/open/floor/plating, +/area/maintenance/port/fore) +"acp" = ( +/turf/open/floor/plating/airless, +/area/science/test_area) +"acq" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/machinery/conveyor{ + id = "solar_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"acr" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 7 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"acs" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"act" = ( +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"acu" = ( +/obj/structure/table, +/obj/machinery/light, +/obj/machinery/recharger, +/obj/item/assembly/signaler{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/assembly/signaler{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/assembly/signaler{ + pixel_x = 8; + pixel_y = 2 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acv" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"acw" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"acx" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"acy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/vending/security, +/turf/open/floor/plasteel, +/area/ai_monitored/security/armory) +"acz" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "sb_in"; + name = "Router Driver" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"acA" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "sb_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"acB" = ( +/obj/machinery/conveyor{ + dir = 6; + id = "sb_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"acC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor{ + id = "armory"; + name = "Armory" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acD" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"acE" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"acF" = ( +/turf/closed/wall, +/area/crew_quarters/lounge) +"acG" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "pb_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"acH" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"acI" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"acJ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor{ + id = "solar_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"acK" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical{ + name = "Medical Booth" + }) +"acL" = ( +/obj/machinery/door/poddoor{ + id = "executionspaceblast" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"acM" = ( +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_x = -32 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"acN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"acO" = ( +/obj/structure/sign/warning/electricshock, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"acP" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating, +/area/maintenance/fore) +"acQ" = ( +/turf/closed/wall, +/area/crew_quarters/theatre/clown) +"acR" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/turf/open/floor/plasteel/checker, +/area/hallway/secondary/entry) +"acS" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/fore) +"acT" = ( +/obj/structure/table/reinforced, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"acU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/camera{ + c_tag = "Armory Access"; + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"acV" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/closet/crate/freezer, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/item/reagent_containers/food/snacks/meat/slab, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"acW" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/deliveryChute, +/turf/open/floor/plating/airless, +/area/router/aux) +"acX" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/fore) +"acY" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"acZ" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"ada" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"adb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"adc" = ( +/obj/machinery/conveyor{ + id = "sb_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"add" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/crew_quarters/observatory) +"ade" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"adf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/observatory) +"adg" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"adh" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/crew_quarters/observatory) +"adi" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"adj" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/observatory) +"adk" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/conveyor{ + id = "solar_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"adl" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"adm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Fore Maintenance"; + req_one_access_txt = "12;46" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"adn" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"ado" = ( +/obj/machinery/power/solar{ + id = "forestarboard"; + name = "Fore-Starboard Solar Array" + }, +/obj/structure/cable, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/fore) +"adp" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/tcommsat/computer) +"adq" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/entry) +"adr" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"ads" = ( +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"adt" = ( +/turf/open/floor/plating, +/area/maintenance/fore) +"adu" = ( +/obj/structure/sign/warning{ + name = "\improper CONSTRUCTION AREA"; + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"adv" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/maintenance/fore) +"adw" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "solar" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"adx" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"ady" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/airless, +/area/solar/starboard/fore) +"adz" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) +"adA" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"adB" = ( +/obj/structure/sign/poster/official/enlist{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"adC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/crew_quarters/observatory) +"adD" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/vending/security, +/turf/open/floor/plasteel, +/area/security/brig) +"adE" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/gun/energy/laser/practice, +/obj/item/gun/energy/laser/practice, +/obj/machinery/syndicatebomb/training, +/turf/open/floor/plasteel, +/area/security/brig) +"adF" = ( +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"adG" = ( +/obj/machinery/mass_driver{ + id = "serv_in"; + name = "Router Driver" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"adH" = ( +/obj/machinery/conveyor/auto{ + dir = 1; + id = "solar" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"adI" = ( +/obj/machinery/disposal/bin{ + name = "Service Delivery" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/hydroponics) +"adJ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/closet, +/obj/item/clothing/under/staffassistant, +/obj/item/clothing/under/staffassistant, +/obj/item/clothing/under/staffassistant, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"adK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/stairs/medium, +/area/security/brig) +"adL" = ( +/obj/machinery/mass_driver{ + id = "starboard_in"; + name = "Router Driver" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"adM" = ( +/turf/closed/wall, +/area/crew_quarters/observatory) +"adN" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) +"adO" = ( +/obj/structure/noticeboard{ + dir = 4; + pixel_x = -27 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"adP" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"adQ" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"adR" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/storage/box/beakers, +/obj/item/hand_labeler, +/obj/item/folder/white{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/stamp/denied{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/stamp, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"adS" = ( +/turf/closed/wall, +/area/construction) +"adT" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/construction) +"adU" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"adV" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard/fore"; + dir = 1; + name = "Starboard Bow Maintenance APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"adW" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/stairs/right, +/area/security/brig) +"adX" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"adY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"adZ" = ( +/turf/open/floor/plating, +/area/tcommsat/computer) +"aea" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aeb" = ( +/obj/structure/table, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/security/brig) +"aec" = ( +/turf/closed/wall/r_wall, +/area/construction) +"aed" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aee" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"aef" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aeg" = ( +/obj/structure/sign/warning/electricshock, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/security/armory) +"aeh" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aei" = ( +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/entry"; + dir = 8; + name = "Arrival Shuttle Hallway APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aej" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/plating/airless, +/area/engine/engineering{ + name = "Engine Room" + }) +"aek" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"ael" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aem" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"aen" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aeo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/circuitboard/machine/sleeper, +/obj/structure/frame/machine, +/turf/open/floor/plasteel, +/area/construction) +"aep" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aeq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aer" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aes" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"aet" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aeu" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aev" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/maintenance/fore) +"aew" = ( +/turf/closed/wall/r_wall, +/area/security/prison) +"aex" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/table, +/obj/item/storage/hypospraykit/regular, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"aey" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aez" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aeA" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aeB" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/toilet/fitness"; + name = "Fitness Toilets APC"; + pixel_y = -26 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aeC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aeD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aeE" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel, +/area/construction) +"aeF" = ( +/obj/structure/table, +/obj/item/assembly/infra, +/obj/item/assembly/voice{ + pixel_x = 4; + pixel_y = 12 + }, +/obj/item/assembly/health{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 4; + pixel_y = -2 + }, +/turf/open/floor/plating, +/area/construction) +"aeG" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/construction"; + dir = 1; + name = "Construction Area APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/construction) +"aeH" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aeI" = ( +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) +"aeJ" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/security/prison) +"aeK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/secondary/entry) +"aeL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aeM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aeN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Router"; + req_one_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aeO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aeP" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"aeQ" = ( +/obj/structure/closet/secure_closet/brig, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aeR" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aeS" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aeT" = ( +/obj/structure/table, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"aeU" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"aeV" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/suit/straight_jacket, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aeW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Construction Area"; + req_access_txt = "12" + }, +/turf/open/floor/plasteel, +/area/construction) +"aeX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aeY" = ( +/turf/closed/wall, +/area/crew_quarters/toilet/fitness) +"aeZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"afa" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"afb" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afc" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afd" = ( +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"afe" = ( +/obj/machinery/door/airlock, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aff" = ( +/turf/closed/wall, +/area/crew_quarters/fitness) +"afg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"afh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/obj/machinery/power/apc/highcap/fifteen_k{ + areastring = /area/maintenance/solars/starboard/fore; + dir = 4; + name = "Starboard Bow Solars APC"; + pixel_x = 28 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"afi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"afj" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afl" = ( +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"afm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/construction) +"afn" = ( +/obj/machinery/biogenerator, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/prison) +"afo" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/landmark/start/mime, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/theatre/mime"; + dir = 4; + name = "Mime's Office APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/theatre/mime) +"afp" = ( +/turf/open/floor/plating, +/area/construction) +"afq" = ( +/obj/structure/table, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"afr" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/camera{ + pixel_y = -8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"afs" = ( +/obj/machinery/flasher{ + id = "executionflash"; + pixel_x = -25 + }, +/obj/structure/chair/e_chair, +/obj/effect/decal/cleanable/ash{ + pixel_y = -8 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aft" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"afu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afv" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afw" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"afx" = ( +/obj/machinery/computer/holodeck{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afy" = ( +/obj/structure/table, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afz" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afA" = ( +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"afB" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afC" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"afD" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall/r_wall, +/area/maintenance/port/fore) +"afE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall, +/area/crew_quarters/theatre/clown) +"afF" = ( +/obj/machinery/sparker{ + id = "executionburn"; + pixel_x = 25 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"afG" = ( +/obj/structure/sink{ + pixel_y = 28 + }, +/obj/item/paper/guides/jobs/hydroponics, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/prison) +"afH" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Security RC"; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"afI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afJ" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/plant_analyzer, +/obj/item/cultivator, +/obj/item/reagent_containers/glass/bucket, +/obj/item/reagent_containers/glass/bucket, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/prison) +"afK" = ( +/turf/closed/wall, +/area/crew_quarters/kitchen) +"afL" = ( +/obj/machinery/door/airlock, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afM" = ( +/obj/structure/closet/crate/internals, +/obj/machinery/camera{ + c_tag = "Construction Area"; + pixel_x = 22 + }, +/obj/item/flashlight, +/obj/item/clothing/suit/hazardvest, +/obj/item/tank/internals/emergency_oxygen/engi, +/turf/open/floor/plating, +/area/construction) +"afN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afO" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/checker, +/area/hallway/secondary/entry) +"afP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"afR" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/table/reinforced, +/obj/item/paicard, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"afS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"afT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"afU" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/stairs/left, +/area/hallway/secondary/entry) +"afV" = ( +/obj/structure/closet/crate, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/clothing/gloves/color/white, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/structure/sign/poster/contraband/red_rum{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"afW" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/fore) +"afX" = ( +/obj/item/cigbutt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/camera{ + c_tag = "Port Bow Maintenance - Aft"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"afY" = ( +/obj/item/seeds/carrot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/prison) +"afZ" = ( +/obj/machinery/disposal/bin{ + name = "Brig Catering" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5; + layer = 2.03 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"aga" = ( +/obj/structure/table, +/obj/item/paper/fluff/holodeck/disclaimer, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agb" = ( +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) +"agd" = ( +/obj/structure/fans/tiny/invisible, +/obj/docking_port/stationary{ + dwidth = 1; + height = 4; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 + }, +/turf/open/space/basic, +/area/space) +"age" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"agf" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"agg" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"agh" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"agi" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"agj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Observatory Access" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"agk" = ( +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agl" = ( +/obj/machinery/disposal/bin{ + name = "Bar Catering" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6; + layer = 2.03 + }, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/turf/open/floor/plasteel, +/area/crew_quarters/kitchen) +"agm" = ( +/obj/structure/table, +/obj/item/sharpener, +/obj/item/kitchen/knife, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"agn" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall, +/area/crew_quarters/lounge) +"ago" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"agp" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agq" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"agr" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"ags" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/mob/living/simple_animal/pet/redpanda{ + name = "Stinky" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"agt" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agu" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"agv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/brig) +"agw" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"agx" = ( +/mob/living/simple_animal/bot/floorbot, +/turf/open/floor/plating, +/area/construction) +"agy" = ( +/obj/effect/landmark/xeno_spawn, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"agz" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/fore) +"agA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/warning{ + name = "\improper CONSTRUCTION AREA"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"agB" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"agC" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) +"agD" = ( +/obj/machinery/seed_extractor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/prison) +"agE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"agF" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/camera{ + c_tag = "Observatory Viewing Area"; + dir = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agG" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/theatre/mime) +"agH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"agI" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/tower, +/obj/item/seeds/amanita, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/prison) +"agJ" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Fore Maintenance"; + req_one_access_txt = "12;46" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"agK" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agL" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/airless, +/area/solar/port) +"agM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agN" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agO" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/prison) +"agQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"agR" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agS" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/suit_storage_unit/engine, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"agU" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 3 + }, +/obj/item/assembly/timer{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/t_scanner{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/t_scanner, +/obj/item/assembly/igniter{ + pixel_x = 6; + pixel_y = -4 + }, +/obj/structure/sign/poster/contraband/missing_gloves{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"agV" = ( +/obj/machinery/newscaster{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"agW" = ( +/turf/closed/wall/r_wall, +/area/security/processing) +"agX" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + name = "Starboard Bow Solar Exterior Airlock"; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"agY" = ( +/obj/structure/table, +/obj/item/storage/crayons, +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"agZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aha" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ahb" = ( +/obj/machinery/processor, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ahc" = ( +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 8 + }, +/obj/structure/sign/poster/official/cleanliness{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ahd" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ahe" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ahf" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external/glass{ + name = "Labor Camp Shuttle Airlock" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"ahg" = ( +/turf/closed/wall/r_wall, +/area/security/warden) +"ahh" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/tcommsat/computer) +"ahi" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = 28 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/blue, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"ahj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Fore Maintenance - Fore"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ahk" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/processing) +"ahl" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"ahm" = ( +/obj/structure/falsewall/reinforced, +/turf/closed/wall, +/area/maintenance/port/fore) +"ahn" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aho" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"ahp" = ( +/obj/machinery/gulag_item_reclaimer{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"ahq" = ( +/turf/open/floor/plasteel, +/area/security/processing) +"ahr" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/ambrosia, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/prison) +"ahs" = ( +/obj/machinery/light, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/machinery/camera{ + c_tag = "Kitchen"; + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aht" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/item/storage/box/disks, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"ahu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hydroponics) +"ahv" = ( +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_x = 32 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"ahw" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"ahx" = ( +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ahy" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"ahz" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"ahA" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/crew_quarters/fitness) +"ahB" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/door/window/eastleft{ + name = "Bathroom Stall" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"ahC" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"ahD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/fore"; + dir = 1; + name = "Fore Maintenance APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ahE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"ahF" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/structure/mirror{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"ahG" = ( +/obj/structure/sink{ + pixel_y = 28 + }, +/obj/structure/sign/poster/official/cleanliness{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"ahH" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"ahI" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness"; + name = "Fitness Room APC"; + pixel_y = -26 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ahJ" = ( +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"ahK" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ahL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/crew_quarters/observatory) +"ahM" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"ahN" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ahO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"ahP" = ( +/turf/closed/wall, +/area/maintenance/solars/starboard/fore) +"ahQ" = ( +/obj/structure/closet/lasertag/blue, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"ahR" = ( +/obj/item/beacon, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"ahS" = ( +/obj/structure/closet/cabinet, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"ahT" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/storage/bag/plants, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ahU" = ( +/obj/machinery/vending/wardrobe/chef_wardrobe, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ahV" = ( +/obj/structure/closet/lasertag/red, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"ahW" = ( +/obj/structure/closet/secure_closet/personal, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"ahX" = ( +/obj/machinery/deepfryer, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ahY" = ( +/obj/machinery/vending/autodrobe, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre/clown) +"ahZ" = ( +/obj/structure/table/glass, +/obj/item/storage/toolbox/emergency{ + pixel_y = 4 + }, +/obj/item/radio/off, +/obj/machinery/camera{ + c_tag = "Arrival Shuttle Hallway" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/hallway/secondary/entry) +"aia" = ( +/obj/effect/landmark/start/cook, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aib" = ( +/obj/structure/table/glass, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/hallway/secondary/entry) +"aic" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aid" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/cotton, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/prison) +"aie" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aif" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aig" = ( +/obj/machinery/camera{ + c_tag = "Observatory Holodeck"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aih" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aii" = ( +/obj/structure/closet, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/gps, +/turf/open/floor/plasteel, +/area/storage/tools) +"aij" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"aik" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ail" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"aim" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"ain" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/processing) +"aio" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"aip" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aiq" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/port) +"air" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stack/cable_coil/red{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/stack/cable_coil/red, +/obj/item/screwdriver, +/obj/item/multitool{ + pixel_x = -6; + pixel_y = -2 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"ais" = ( +/obj/structure/window/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"ait" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aiu" = ( +/obj/effect/landmark/start/mime, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/theatre/mime) +"aiv" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aiw" = ( +/obj/machinery/vending/cola/random, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"aix" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/crew_quarters/kitchen) +"aiy" = ( +/obj/structure/bed, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/effect/landmark/start/clown, +/obj/item/bedsheet/clown, +/obj/structure/sign/plaques/kiddie/perfect_man{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre/clown) +"aiz" = ( +/turf/closed/wall, +/area/maintenance/starboard/fore) +"aiA" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/construction) +"aiB" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/kitchen"; + name = "Kitchen APC"; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aiC" = ( +/turf/closed/wall, +/area/hallway/secondary/service) +"aiD" = ( +/obj/structure/closet/crate/wooden/toy, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Clown's Office"; + pixel_x = 22 + }, +/obj/item/clothing/under/rank/yellowclown, +/obj/item/clothing/under/rank/blueclown, +/obj/item/clothing/under/rank/greenclown, +/obj/item/toy/crayon/spraycan/lubecan, +/obj/item/megaphone/clown, +/turf/open/floor/plating, +/area/crew_quarters/theatre/clown) +"aiE" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/security/processing) +"aiF" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Starboard Bow Maintenance"; + req_one_access_txt = "12;25;26;28;35;46" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aiG" = ( +/obj/structure/closet, +/obj/structure/window/reinforced, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aiH" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/grass, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/security/prison) +"aiI" = ( +/obj/structure/closet/boxinggloves, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aiJ" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/secondary/entry) +"aiK" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aiL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/prison) +"aiM" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/observatory) +"aiN" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aiO" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aiP" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aiQ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"aiR" = ( +/obj/structure/rack, +/obj/item/reagent_containers/glass/beaker/waterbottle, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"aiS" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-06" + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"aiT" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Port Bow Maintainance"; + req_one_access_txt = "1" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aiU" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/deepfryer, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aiV" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 10; + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/construction) +"aiW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Observatory" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/observatory) +"aiX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall, +/area/crew_quarters/observatory) +"aiY" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/machinery/door/window/eastright{ + name = "Bathroom Stall" + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"aiZ" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/observatory) +"aja" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/obj/item/caution, +/turf/open/floor/plating, +/area/construction) +"ajb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ajc" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"ajd" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aje" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ajf" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ajg" = ( +/obj/structure/table, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/item/reagent_containers/food/snacks/pie/cream, +/obj/item/instrument/bikehorn, +/obj/item/flashlight/lamp/bananalamp{ + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre/clown) +"ajh" = ( +/obj/structure/table/glass, +/obj/item/paper_bin/construction, +/obj/item/storage/crayons, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/hallway/secondary/entry) +"aji" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"ajj" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ajk" = ( +/obj/effect/landmark/start/clown, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre/clown) +"ajl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/mob/living/simple_animal/cockroach, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ajm" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"ajn" = ( +/obj/machinery/power/smes, +/turf/open/floor/plating, +/area/tcommsat/computer) +"ajo" = ( +/obj/structure/table, +/obj/item/toy/dummy, +/obj/structure/mirror{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/theatre/mime) +"ajp" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/observatory) +"ajq" = ( +/obj/effect/landmark/start/clown, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/theatre/clown"; + dir = 4; + name = "Clown's Office APC"; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/crew_quarters/theatre/clown) +"ajr" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/observatory) +"ajs" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/mint, +/obj/item/reagent_containers/food/condiment/mayonnaise, +/obj/item/bikehorn{ + pixel_x = -8; + pixel_y = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ajt" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/tcommsat/computer) +"aju" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"ajv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/theatre/mime) +"ajw" = ( +/turf/closed/wall, +/area/construction/secondary) +"ajx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"ajy" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/computer/prisoner/management, +/turf/open/floor/plasteel, +/area/security/brig) +"ajz" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajA" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/plasteel, +/area/security/brig) +"ajB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Hydroponics" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"ajC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ajD" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/cook, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ajE" = ( +/obj/structure/closet/secure_closet/freezer/kitchen, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ajF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/construction/secondary) +"ajG" = ( +/obj/machinery/computer/arcade, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"ajH" = ( +/obj/structure/rack, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/head/hardhat/red{ + pixel_y = 6 + }, +/obj/item/clothing/mask/gas, +/obj/item/storage/toolbox/mechanical, +/obj/item/crowbar, +/obj/item/extinguisher, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ajI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ajJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"ajK" = ( +/obj/structure/sign/warning{ + name = "\improper CONSTRUCTION AREA"; + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ajL" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/lounge"; + name = "Lounge APC"; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/observatory) +"ajM" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 6 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ajN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ajO" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"ajP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ajQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ajR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/observatory) +"ajS" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"ajT" = ( +/obj/structure/weightmachine/weightlifter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"ajU" = ( +/obj/structure/rack, +/obj/item/wrench, +/obj/item/light/tube, +/obj/item/radio/off, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/camera{ + c_tag = "Security - Interrogation Maintenance"; + dir = 1 + }, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/security/brig"; + dir = 4; + name = "Brig APC"; + pixel_x = 26 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"ajV" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall, +/area/crew_quarters/theatre/mime) +"ajW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/observatory) +"ajX" = ( +/obj/item/pipe{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/melee/baseball_bat, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/machinery/camera{ + c_tag = "Secondary Construction Area" + }, +/turf/open/floor/plating, +/area/construction/secondary) +"ajY" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ajZ" = ( +/obj/item/multitool, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/tcommsat/computer"; + dir = 1; + name = "Telecomms Access APC"; + pixel_y = 28 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"aka" = ( +/turf/closed/wall, +/area/crew_quarters/bar) +"akb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Mime's Office"; + req_access_txt = "46" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/crew_quarters/theatre/mime) +"akc" = ( +/obj/machinery/computer/slot_machine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/construction/secondary) +"akd" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"ake" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/rnd/production/techfab/department/service, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"akf" = ( +/obj/structure/table, +/obj/item/storage/toolbox/emergency{ + pixel_y = 4 + }, +/obj/item/electronics/firelock, +/obj/item/electronics/firealarm, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/construction/secondary) +"akg" = ( +/obj/machinery/power/solar_control{ + dir = 4; + id = "foreport"; + name = "Port Bow Solar Control" + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"akh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/construction/secondary) +"aki" = ( +/obj/structure/closet/toolcloset, +/turf/open/floor/plating, +/area/construction/secondary) +"akj" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"akk" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 10; + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/construction/secondary) +"akl" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/computer/shuttle/labor{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel, +/area/construction/secondary) +"akn" = ( +/obj/machinery/power/solar_control{ + id = "forestarboard"; + name = "Starboard Bow Solar Control" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"ako" = ( +/obj/machinery/button/flasher{ + id = "executionflash"; + pixel_x = 7; + pixel_y = 24 + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"akp" = ( +/obj/structure/closet/secure_closet/warden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"akq" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/table/reinforced, +/obj/item/storage/box/prisoner, +/obj/item/razor, +/obj/item/paper/guides/jobs/security/labor_camp, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/security/processing) +"akr" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/computer/prisoner/gulag_teleporter_computer{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Security - Prison Shuttle Dock"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aks" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"akt" = ( +/obj/machinery/computer/prisoner/management, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; + dir = 1; + name = "Brig Control APC"; + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"aku" = ( +/obj/machinery/computer/secure_data, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"akv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"akw" = ( +/obj/structure/bed, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"akx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Secondary Construction Area"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/construction/secondary) +"aky" = ( +/obj/machinery/computer/crew, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"akz" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"akA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/turf/open/floor/plating, +/area/security/warden) +"akB" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"akC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"akD" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/hand_labeler{ + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akE" = ( +/turf/closed/wall/r_wall, +/area/router/sec) +"akF" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akG" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"akH" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"akI" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"akJ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Telecommunications Maintenance"; + req_access_txt = "61" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/tcommsat/computer) +"akK" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"akL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Security - Brig"; + pixel_x = 22 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akM" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"akN" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor/preopen{ + id = "secblock"; + name = "Security Router" + }, +/obj/machinery/conveyor/auto{ + id = "sec" + }, +/turf/open/floor/plating, +/area/router/sec) +"akO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/computer/security/labor{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akP" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + name = "Security Router" + }, +/turf/open/floor/plating, +/area/router/sec) +"akQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akR" = ( +/obj/structure/punching_bag, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"akS" = ( +/obj/structure/rack, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/item/soap/nanotrasen, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"akT" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"akU" = ( +/obj/machinery/door/window/northleft{ + name = "Showers" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"akV" = ( +/obj/structure/rack, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/item/storage/firstaid/regular, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"akW" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/item/reagent_containers/hypospray/medipen, +/obj/item/reagent_containers/hypospray/medipen, +/obj/item/reagent_containers/hypospray/medipen, +/obj/item/reagent_containers/hypospray/medipen, +/obj/structure/sign/departments/restroom{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"akX" = ( +/turf/closed/wall, +/area/crew_quarters/dorms/purple) +"akY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"akZ" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"ala" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/secondary/entry) +"alb" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"alc" = ( +/obj/structure/fermenting_barrel, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"ald" = ( +/obj/machinery/chem_master/condimaster, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"ale" = ( +/turf/closed/wall, +/area/crew_quarters/dorms/blue) +"alf" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"alg" = ( +/obj/structure/frame/machine, +/obj/item/circuitboard/computer/arcade/minesweeper, +/turf/open/floor/plating, +/area/construction/secondary) +"alh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ali" = ( +/turf/open/floor/plating, +/area/construction/secondary) +"alj" = ( +/obj/machinery/gulag_teleporter, +/turf/open/floor/plasteel, +/area/security/processing) +"alk" = ( +/obj/item/caution, +/turf/open/floor/plating, +/area/construction/secondary) +"all" = ( +/obj/structure/table/glass, +/obj/item/wrench{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/reagent_containers/glass/bottle/mutagen{ + pixel_x = -4 + }, +/turf/open/floor/grass, +/area/hydroponics) +"alm" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/turf/open/floor/grass, +/area/hydroponics) +"aln" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/grass, +/area/hydroponics) +"alo" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"alp" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plasteel, +/area/construction/secondary) +"alq" = ( +/obj/machinery/conveyor/auto{ + id = "sec" + }, +/turf/open/floor/plating, +/area/router/sec) +"alr" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"als" = ( +/obj/machinery/mass_driver{ + dir = 1; + id = "sec_out"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/router/sec) +"alt" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external/glass{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"alu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"alv" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"alw" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/landmark/start/warden, +/obj/machinery/camera{ + c_tag = "Security - Brig Control"; + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"alx" = ( +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"aly" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"alz" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"alA" = ( +/obj/structure/bed, +/obj/item/bedsheet/purple, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"alB" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"alC" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"alD" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"alE" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"alF" = ( +/obj/machinery/photocopier, +/obj/machinery/newscaster/security_unit{ + pixel_y = -28 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"alG" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"alH" = ( +/obj/structure/table, +/obj/item/storage/box/beakers{ + pixel_x = -8 + }, +/obj/item/storage/box/ingredients{ + pixel_x = 6 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"alI" = ( +/obj/structure/weightmachine/stacklifter, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"alJ" = ( +/obj/machinery/vending/hydroseeds, +/turf/open/floor/grass, +/area/hydroponics) +"alK" = ( +/obj/effect/landmark/xmastree, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"alL" = ( +/obj/structure/weightmachine/weightlifter, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"alM" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alN" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"alO" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"alP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"alQ" = ( +/obj/structure/dresser, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"alR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/secondary/entry) +"alS" = ( +/obj/structure/table/wood, +/obj/item/trash/plate, +/obj/item/reagent_containers/food/drinks/drinkingglass, +/obj/item/reagent_containers/rag, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"alT" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"alU" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"alV" = ( +/obj/structure/bed, +/obj/item/bedsheet/blue, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"alW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"alX" = ( +/obj/structure/table, +/obj/item/storage/box/ingredients, +/obj/item/clothing/head/chefhat, +/obj/item/reagent_containers/glass/beaker, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"alY" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/t_scanner, +/turf/open/floor/plating, +/area/construction/secondary) +"alZ" = ( +/turf/closed/wall/r_wall, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"ama" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/warden) +"amb" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"amc" = ( +/turf/closed/wall, +/area/storage/tools) +"amd" = ( +/obj/structure/table, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ame" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/warden) +"amf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"amg" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"amh" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/machinery/recharger, +/obj/item/pen/red{ + pixel_y = 4 + }, +/obj/item/pen/blue{ + pixel_x = -4; + pixel_y = -4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ami" = ( +/obj/structure/sign/poster/contraband/grey_tide{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"amj" = ( +/turf/closed/wall/rust, +/area/maintenance/port/fore) +"amk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/maintenance/port/fore) +"aml" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"amm" = ( +/obj/structure/closet/crate/secure/weapon{ + desc = "A secure clothing crate."; + name = "formal uniform crate"; + req_access_txt = "3" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"amn" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/plating, +/area/construction/secondary) +"amo" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"amp" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Fore Maintenance"; + req_one_access_txt = "12;46" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"amq" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"amr" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Starboard Bow Maintenance"; + req_one_access_txt = "12;25;26;28;35;46" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ams" = ( +/obj/machinery/camera{ + c_tag = "Fitness Toilets"; + pixel_x = 22 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"amt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"amu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"amv" = ( +/obj/structure/punching_bag, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"amw" = ( +/obj/structure/sign/poster/contraband/eat{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"amx" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"amy" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"amz" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"amA" = ( +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"amB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/warden) +"amC" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"amD" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"amE" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/crew_quarters/bar"; + dir = 8; + name = "Bar APC"; + pixel_x = -26 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"amF" = ( +/obj/effect/landmark/start/cook, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -30 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"amG" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/chapel/main) +"amH" = ( +/obj/item/crowbar/large{ + pixel_y = 3 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/construction/secondary) +"amI" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start/warden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"amJ" = ( +/obj/structure/lattice, +/obj/structure/sign/departments/botany{ + pixel_x = -32 + }, +/turf/open/space/basic, +/area/space/nearstation) +"amK" = ( +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"amL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"amM" = ( +/obj/machinery/light, +/obj/machinery/disposal/bin{ + name = "Kitchen Mailbox" + }, +/obj/effect/turf_decal/delivery/white, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"amN" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/storage/tools) +"amO" = ( +/obj/item/bedsheet/mime, +/obj/structure/bed, +/obj/effect/landmark/start/mime, +/obj/machinery/camera{ + c_tag = "Mime's Office"; + pixel_x = 22 + }, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/theatre/mime) +"amP" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/hallway/secondary/entry) +"amQ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastleft{ + name = "Reception Window" + }, +/obj/machinery/door/window/westleft{ + name = "Warden's Desk"; + req_one_access_txt = "2" + }, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"amR" = ( +/obj/machinery/light/small, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/construction/secondary) +"amS" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"amT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/construction/secondary) +"amU" = ( +/obj/structure/beebox, +/obj/item/queen_bee/bought, +/turf/open/floor/grass, +/area/hydroponics) +"amV" = ( +/turf/open/floor/grass, +/area/hydroponics) +"amW" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/pill/patch/silver_sulf{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/reagent_containers/pill/patch/silver_sulf{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/pill/patch/styptic{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/reagent_containers/pill/patch/styptic{ + pixel_x = -4 + }, +/obj/item/book/manual/hydroponics_pod_people{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/paper/guides/jobs/hydroponics{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/grass, +/area/hydroponics) +"amX" = ( +/obj/machinery/suit_storage_unit/security, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"amY" = ( +/turf/closed/wall, +/area/chapel/main) +"amZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ana" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"anb" = ( +/obj/structure/table, +/obj/item/lipstick/black, +/obj/item/lipstick/random{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/theatre/mime) +"anc" = ( +/obj/item/cigbutt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/construction/secondary) +"and" = ( +/turf/closed/wall/r_wall, +/area/chapel/main) +"ane" = ( +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"anf" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/construction/secondary"; + dir = 1; + name = "Secondary Construction Area APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/construction/secondary) +"ang" = ( +/turf/closed/wall/r_wall, +/area/engine/storage_shared{ + name = "Electrical Substation" + }) +"anh" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/clothing/glasses/regular, +/obj/machinery/door/window/northright{ + name = "Medical Booth Desk"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"ani" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/sign/poster/official/duelshotgun{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"anj" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"ank" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/easel, +/obj/item/canvas/nineteenXnineteen, +/obj/machinery/camera{ + c_tag = "Crew Lounge"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"anl" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"anm" = ( +/obj/machinery/conveyor/auto{ + dir = 8; + id = "disposal" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ann" = ( +/obj/effect/turf_decal/plaque{ + desc = "It reads 'In honor of spacemen past, whose work allowed this station to find its new home. The fact that you stand on a station originally built light years away is a definitive representation of the ingenuity of the human spirit.' Beneath this is the image of a spaceman rocketing upwards by means of what appears to be a match and flatulence." + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"ano" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"anp" = ( +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"anq" = ( +/turf/closed/wall, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"anr" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"ans" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/destTagger, +/obj/machinery/button/door{ + id = "secblock"; + name = "Router Access Control"; + pixel_x = 8; + pixel_y = 24; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/router/sec) +"ant" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/kitchen/backroom) +"anu" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"anv" = ( +/obj/item/stack/sheet/plasteel{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/storage/box/beakers, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/construction) +"anw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"anx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plating, +/area/tcommsat/computer) +"any" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/pill/patch/styptic, +/obj/item/reagent_containers/pill/patch/styptic, +/obj/item/reagent_containers/pill/patch/styptic, +/obj/item/reagent_containers/pill/patch/styptic, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"anz" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"anA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Fitness Room Maintenance"; + req_one_access_txt = "12;46" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"anB" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/sign/barsign{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"anC" = ( +/obj/machinery/computer/cargo/request, +/obj/effect/turf_decal/delivery, +/obj/machinery/requests_console{ + department = "Security Router"; + name = "Security Router RC"; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/router/sec) +"anD" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/secondary/entry) +"anE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"anF" = ( +/obj/machinery/smartfridge, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"anG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"anH" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/security{ + name = "Security Checkpoint"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/security/checkpoint) +"anI" = ( +/obj/machinery/computer/arcade/orion_trail, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"anJ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/item/paper_bin, +/obj/item/stamp/denied{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/stamp{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/pen, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint"; + dir = 4; + name = "Security Checkpoint APC"; + pixel_x = 24 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Security RC"; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"anK" = ( +/turf/closed/wall/r_wall, +/area/security/detectives_office) +"anL" = ( +/obj/machinery/computer/arcade/minesweeper, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"anM" = ( +/obj/machinery/recharge_station, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"anN" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/item/analyzer, +/obj/item/wrench{ + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"anO" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/storage/belt/utility, +/obj/item/extinguisher, +/turf/open/floor/plasteel, +/area/storage/tools) +"anP" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"anQ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"anR" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"anS" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/power/apc{ + areastring = "/area/storage/tools"; + name = "Auxiliary Tool Storage APC"; + pixel_y = -26 + }, +/obj/machinery/camera{ + c_tag = "Auxiliary Tool Storage"; + dir = 4; + pixel_y = -22 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"anT" = ( +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"anU" = ( +/turf/closed/wall/r_wall, +/area/security/brig) +"anV" = ( +/turf/open/floor/plating, +/area/maintenance/solars/port) +"anW" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "sec_off" + }, +/turf/open/floor/plating, +/area/router/sec) +"anX" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"anY" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"anZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"aoa" = ( +/obj/item/clockwork/component/geis_capacitor/fallen_armor, +/obj/structure/table/bronze, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"aob" = ( +/obj/structure/closet/emcloset, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aoc" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/requests_console{ + department = "Recreation"; + name = "Recreation RC"; + pixel_y = -32 + }, +/obj/item/storage/box/drinkingglasses, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -4; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"aod" = ( +/obj/machinery/computer/security{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/warden) +"aoe" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"aof" = ( +/obj/structure/sign/poster/official/foam_force_ad{ + pixel_y = 32 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"aog" = ( +/turf/open/floor/grass, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"aoh" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"aoi" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"aoj" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"aok" = ( +/obj/structure/chair/wood/normal{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "Dorm1"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + pixel_x = -7; + pixel_y = -24; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"aol" = ( +/obj/machinery/button/door{ + id = "Dorm3"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + pixel_x = 7; + pixel_y = -24; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"aom" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"aon" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"aoo" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/ears/earmuffs, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/construction/secondary) +"aop" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/construction/secondary) +"aoq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/warden) +"aor" = ( +/obj/machinery/shower{ + dir = 1 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"aos" = ( +/obj/structure/window/reinforced, +/obj/structure/closet/athletic_mixed, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"aot" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"aou" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aov" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/grass, +/area/hydroponics) +"aow" = ( +/mob/living/simple_animal/banana_spider{ + name = "Henry" + }, +/turf/open/floor/grass, +/area/hydroponics) +"aox" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/secondary/entry) +"aoy" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint) +"aoz" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/construction/secondary) +"aoA" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/item/flashlight/lamp, +/obj/machinery/door/window/westright{ + name = "Security Checkpoint"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"aoB" = ( +/obj/structure/bed, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/camera{ + c_tag = "Security - Prison Beds"; + dir = 8; + pixel_y = -22 + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/security/prison"; + dir = 4; + name = "Prison APC"; + pixel_x = 26 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aoC" = ( +/obj/structure/window/reinforced, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aoD" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"aoE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/chapel/main) +"aoF" = ( +/turf/closed/wall/r_wall, +/area/security/main) +"aoG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"aoH" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Port Bow Solars External Access"; + req_access_txt = "10;13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aoI" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/grass, +/area/hydroponics) +"aoJ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/machinery/space_heater, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"aoK" = ( +/turf/closed/wall/r_wall, +/area/router/service) +"aoL" = ( +/obj/structure/chair/stool, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"aoM" = ( +/obj/structure/closet/crate, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/scanning_module, +/obj/item/stock_parts/capacitor, +/turf/open/floor/plating, +/area/construction) +"aoN" = ( +/obj/structure/closet/crate/internals, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = -26 + }, +/obj/item/clothing/head/hardhat/orange, +/obj/item/clothing/head/hardhat/orange, +/turf/open/floor/plasteel, +/area/storage/tools) +"aoO" = ( +/turf/open/floor/plasteel, +/area/storage/tools) +"aoP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aoQ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aoR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/warden) +"aoS" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/conveyor{ + id = "serv_off" + }, +/obj/machinery/door/poddoor/preopen{ + id = "servblock"; + name = "Service Router" + }, +/turf/open/floor/plating, +/area/router/service) +"aoT" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor/preopen{ + id = "servblock"; + name = "Service Router" + }, +/turf/open/floor/plating, +/area/router/service) +"aoU" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"aoV" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aoW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external/glass{ + name = "Port Bow Solars External Access"; + req_access_txt = "10;13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aoX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aoY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aoZ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"apa" = ( +/obj/structure/chair/sofa/right, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"apb" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"apc" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/brig) +"apd" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/engine/storage_shared{ + name = "Electrical Substation" + }) +"ape" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"apf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"apg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/router/sec) +"aph" = ( +/turf/open/floor/plasteel/dark, +/area/security/brig) +"api" = ( +/obj/machinery/door/window/southright{ + name = "Weightroom" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"apj" = ( +/obj/structure/window/reinforced, +/obj/structure/punching_bag, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"apk" = ( +/obj/structure/closet/lasertag/blue, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"apl" = ( +/obj/structure/chair/sofa/right, +/obj/item/clothing/head/beret/black, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"apm" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) +"apn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/router/sec) +"apo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/construction) +"app" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/router/sec) +"apq" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"apr" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/button/massdriver{ + id = "sec_out"; + pixel_x = 24; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/router/sec) +"aps" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security{ + name = "Security EVA Prep Room"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"apt" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/construction) +"apu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"apv" = ( +/turf/closed/wall, +/area/hallway/secondary/entry) +"apw" = ( +/obj/structure/chair/sofa/left, +/obj/effect/landmark/start/assistant, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"apx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"apy" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"apz" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"apA" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall, +/area/crew_quarters/dorms/purple) +"apB" = ( +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/grass, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"apC" = ( +/turf/closed/wall/r_wall, +/area/hydroponics) +"apD" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm1"; + name = "Room 1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"apE" = ( +/obj/machinery/biogenerator, +/turf/open/floor/grass, +/area/hydroponics) +"apF" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"apG" = ( +/mob/living/simple_animal/chicken{ + name = "Featherbottom"; + real_name = "Featherbottom" + }, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"apH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/main) +"apI" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"apJ" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/camera{ + c_tag = "Hydroponics - Fore"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"apK" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -30 + }, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/grass, +/area/hydroponics) +"apL" = ( +/obj/structure/chair/sofa/left, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"apM" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"apN" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm3"; + name = "Room 3" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"apO" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall, +/area/crew_quarters/dorms/blue) +"apP" = ( +/obj/structure/table, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)" + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"apQ" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Solitary Confinement"; + req_one_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"apR" = ( +/obj/structure/table/wood, +/obj/item/trash/plate, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = 1; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"apS" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"apT" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/construction) +"apU" = ( +/obj/structure/table/wood, +/obj/item/trash/plate, +/obj/item/gun/ballistic/revolver/russian, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"apV" = ( +/turf/closed/wall/rust, +/area/chapel/main) +"apW" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/crew_quarters/kitchen) +"apX" = ( +/obj/structure/fermenting_barrel, +/turf/open/floor/grass, +/area/hydroponics) +"apY" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"apZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Fitness Toilets" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"aqa" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aqb" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Secondary Construction Area"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/construction/secondary) +"aqc" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/r_wall, +/area/medical{ + name = "Medical Booth" + }) +"aqd" = ( +/obj/structure/chair/sofa/right, +/obj/machinery/camera{ + c_tag = "Chapel - Fore" + }, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"aqe" = ( +/obj/machinery/conveyor{ + id = "serv_off" + }, +/turf/open/floor/plating, +/area/router/service) +"aqf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aqg" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Fitness Room"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"aqh" = ( +/obj/structure/chair/sofa/left, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"aqi" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/paper_bin{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"aqj" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aqk" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"aql" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/bar) +"aqm" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aqn" = ( +/turf/closed/wall/r_wall, +/area/medical{ + name = "Medical Booth" + }) +"aqo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"aqp" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/kitchen/backroom) +"aqq" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/storage/tools) +"aqr" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/storage/tools) +"aqs" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aqt" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/structure/sign/poster/contraband/hacking_guide{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"aqu" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aqv" = ( +/obj/structure/sign/poster/official/no_erp{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"aqw" = ( +/turf/closed/wall/r_wall/rust, +/area/maintenance/solars/port) +"aqx" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/kitchen/backroom) +"aqy" = ( +/obj/machinery/mass_driver{ + dir = 1; + id = "serv_out"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/router/service) +"aqz" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aqA" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"aqB" = ( +/turf/closed/wall, +/area/hydroponics) +"aqC" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hydroponics) +"aqD" = ( +/obj/machinery/vending/sustenance, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aqE" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/router/sec) +"aqF" = ( +/turf/open/floor/plasteel, +/area/router/sec) +"aqG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"aqH" = ( +/obj/machinery/power/apc{ + name = "Security Router APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/router/sec) +"aqI" = ( +/obj/structure/flora/ausbushes/genericbush, +/turf/open/floor/grass, +/area/hydroponics) +"aqJ" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/router/sec) +"aqK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aqL" = ( +/turf/closed/wall, +/area/security/checkpoint) +"aqM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aqN" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock{ + name = "Service Hallway"; + req_one_access_txt = "25;26;28;35" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"aqO" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering EVA"; + req_access_txt = "11" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"aqP" = ( +/obj/structure/chair/stool, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"aqQ" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/kitchen/backroom) +"aqR" = ( +/obj/item/grown/bananapeel, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre/clown) +"aqS" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"aqT" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"aqU" = ( +/turf/closed/wall/r_wall, +/area/engine/storage{ + name = "Canister Storage" + }) +"aqV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Purple Dorms Maintenance"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/dorms/purple) +"aqW" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/item/book/manual/chef_recipes, +/obj/item/storage/box/donkpockets, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aqX" = ( +/obj/structure/sign/warning/fire{ + desc = "A sign that states the labeled room's number."; + icon_state = "roomnum"; + name = "Room Number 1"; + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"aqY" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aqZ" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"ara" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"arb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/barbershop"; + dir = 4; + name = "Barbershop APC"; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"arc" = ( +/obj/structure/closet/secure_closet/freezer/cream_pie, +/obj/item/toy/figure/clown, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/crew_quarters/theatre/clown) +"ard" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"are" = ( +/obj/machinery/chem_heater, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"arf" = ( +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"arg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"arh" = ( +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"ari" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"arj" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/dorms/purple) +"ark" = ( +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"arl" = ( +/obj/machinery/vending/kink, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Locker Room"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"arm" = ( +/obj/structure/chair/sofa/right, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"arn" = ( +/obj/machinery/vending/tool, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"aro" = ( +/obj/structure/closet/firecloset, +/obj/machinery/camera{ + c_tag = "Starboard Bow Maintenance - Starboard"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"arp" = ( +/obj/machinery/conveyor/auto{ + dir = 8; + id = "disposal" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"arq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"arr" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"ars" = ( +/obj/structure/chair/stool, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/landmark/start/bartender, +/obj/item/clothing/under/janimaid, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"art" = ( +/obj/structure/punching_bag, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aru" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/dorms/blue) +"arv" = ( +/obj/structure/table, +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_x = 1; + pixel_y = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"arw" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/public/glass{ + name = "Crew Quarters" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"arx" = ( +/obj/machinery/button/door{ + id = "kitchenlock"; + name = "Kitchen Lockup"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"ary" = ( +/obj/machinery/food_cart, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"arz" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"arA" = ( +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"arB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"arC" = ( +/obj/structure/sign/warning/fire{ + desc = "A sign that states the labeled room's number."; + dir = 4; + icon_state = "roomnum"; + name = "Room Number 3"; + pixel_y = 28 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"arD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 8; + icon_state = "intact" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance{ + name = "Blue Dorms Maintenance"; + req_one_access_txt = "12;46" + }, +/turf/open/floor/plating, +/area/crew_quarters/dorms/blue) +"arE" = ( +/turf/closed/wall/r_wall, +/area/maintenance/starboard/central) +"arF" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"arG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"arH" = ( +/obj/machinery/disposal/bin{ + name = "Detective's Mailbox" + }, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"arI" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"arJ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"arK" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/item/destTagger, +/obj/machinery/button/massdriver{ + id = "serv_out"; + pixel_x = 8; + pixel_y = -4 + }, +/obj/machinery/requests_console{ + department = "Service Router"; + name = "Service Router RC"; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/router/service) +"arL" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "serv_off" + }, +/turf/open/floor/plating, +/area/router/service) +"arM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/router/service) +"arN" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4; + name = "Sauna" + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"arO" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"arP" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"arQ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"arR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/falsewall/reinforced{ + req_access_txt = "1" + }, +/turf/open/floor/plasteel, +/area/router/sec) +"arS" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/crew_quarters/dorms/purple) +"arT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"arU" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/sign/warning/fire{ + desc = "A sign that states the labeled room's number."; + dir = 1; + icon_state = "roomnum"; + name = "Room Number 2"; + pixel_y = -28 + }, +/obj/machinery/camera{ + c_tag = "Dormitories - Purple"; + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"arV" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/sign/poster/official/soft_cap_pop_art{ + pixel_x = -32 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"arW" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"arX" = ( +/obj/machinery/computer/med_data{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"arY" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"arZ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"asa" = ( +/obj/machinery/computer/arcade, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"asb" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"asc" = ( +/obj/machinery/disposal/bin, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"asd" = ( +/turf/closed/wall/rust, +/area/maintenance/starboard/fore) +"ase" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Purple Dorms" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms/purple) +"asf" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Blue Dorms" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/dorms/blue) +"asg" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"ash" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"asi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"asj" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ask" = ( +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Security - Prison Fore"; + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/mob/living/simple_animal/mouse/brown/Tom, +/turf/open/floor/plasteel, +/area/security/prison) +"asl" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/camera{ + c_tag = "Port Bow Solar Maintenance"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"asm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/service"; + dir = 8; + name = "Service Hall APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"asn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"aso" = ( +/obj/structure/sign/warning/fire{ + desc = "A sign that states the labeled room's number."; + dir = 8; + icon_state = "roomnum"; + name = "Room Number 4"; + pixel_y = -28 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Dormitories - Blue"; + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"asp" = ( +/obj/structure/chair/comfy/brown, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"asq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/crew_quarters/dorms/blue) +"asr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/fore) +"ass" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/light/small, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"ast" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"asu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/rust, +/area/maintenance/disposal) +"asv" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"asw" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"asx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"asy" = ( +/obj/effect/landmark/start/assistant, +/obj/machinery/holopad, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/hallway/secondary/entry) +"asz" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Security - Prison Bathroom"; + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"asA" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/open/floor/plating, +/area/router/service) +"asB" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"asC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"asD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"asE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/button/door{ + id = "servblock"; + name = "Router Access Control"; + pixel_x = 8; + pixel_y = 24; + req_one_access_txt = "12;25;26;28;35;46" + }, +/turf/open/floor/plasteel, +/area/router/service) +"asF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security{ + name = "Labor Camp Arrivals" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"asG" = ( +/obj/structure/sign/warning/nosmoking/circle, +/turf/closed/wall/r_wall, +/area/engine/storage{ + name = "Canister Storage" + }) +"asH" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"asI" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"asJ" = ( +/turf/closed/wall, +/area/crew_quarters/toilet) +"asK" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"asL" = ( +/turf/closed/wall, +/area/security/brig) +"asM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/storage{ + name = "Canister Storage" + }) +"asN" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"asO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"asP" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"asQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/router/service) +"asR" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"asS" = ( +/turf/closed/wall/r_wall, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"asT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/mob/living/simple_animal/mouse/gray{ + desc = "A strangely observant rodent."; + name = "Remy" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"asU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Router"; + req_access_txt = "11" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"asV" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"asW" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/security/main) +"asX" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/tape, +/obj/item/radio/off, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"asY" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/item/clipboard, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"asZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/router/service) +"ata" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/main) +"atb" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"atc" = ( +/turf/closed/wall, +/area/security/main) +"atd" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; + dir = 1; + name = "Service Router APC"; + pixel_y = 24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/router/service) +"ate" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/router/service) +"atf" = ( +/turf/closed/wall/r_wall/rust, +/area/maintenance/starboard/central) +"atg" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/router/service) +"ath" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/router/service) +"ati" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel, +/area/router/service) +"atj" = ( +/obj/structure/window/reinforced, +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"atk" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"atl" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/router/service) +"atm" = ( +/obj/structure/table, +/obj/item/kitchen/rollingpin, +/obj/item/reagent_containers/food/condiment/enzyme, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"atn" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel, +/area/router/service) +"ato" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"atp" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm2"; + name = "Room 2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"atq" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/processing) +"atr" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm4"; + name = "Room 4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"ats" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Clown's Office"; + req_access_txt = "46" + }, +/turf/open/floor/plating, +/area/crew_quarters/theatre/clown) +"att" = ( +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"atu" = ( +/obj/machinery/computer/cargo/request{ + dir = 4 + }, +/turf/open/floor/plating, +/area/router/service) +"atv" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"atw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/router/service) +"atx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/router/service) +"aty" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/router/service) +"atz" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"atA" = ( +/obj/machinery/vending/cigarette, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"atB" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/item/bikehorn/rubberducky, +/obj/structure/sign/poster/official/no_erp{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"atC" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"atD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/router/service) +"atE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/router/service) +"atF" = ( +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"atG" = ( +/turf/open/floor/plasteel/dark, +/area/router/service) +"atH" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/power/apc{ + areastring = "/area/security/processing"; + name = "Labor Shuttle Dock APC"; + pixel_y = -26 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/dark, +/area/security/processing) +"atI" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/warden) +"atJ" = ( +/turf/closed/wall/rust, +/area/crew_quarters/theatre/clown) +"atK" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"atL" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"atM" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"atN" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"atO" = ( +/obj/structure/table, +/obj/item/storage/bag/tray, +/obj/item/clothing/gloves/color/white, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"atP" = ( +/obj/structure/table/wood, +/obj/item/trash/plate, +/obj/item/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"atQ" = ( +/obj/structure/closet/lasertag/red, +/obj/structure/sign/poster/official/space_cops{ + pixel_x = -32 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"atR" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/vending/wardrobe/bar_wardrobe, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"atS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Bar Backroom"; + req_access_txt = "25" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"atT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"atU" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"atV" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"atW" = ( +/obj/machinery/disposal/bin{ + name = "Parolee Exit" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/brig) +"atX" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/item/stock_parts/cell/high/plus, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/storage/tools) +"atY" = ( +/obj/machinery/button/door{ + id = "Dorm2"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + pixel_x = -7; + pixel_y = 24; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"atZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/wall, +/area/hallway/secondary/entry) +"aua" = ( +/obj/structure/chair/wood/normal, +/obj/machinery/button/door{ + id = "Dorm4"; + name = "Dormitory Door Lock"; + normaldoorcontrol = 1; + pixel_x = 7; + pixel_y = 24; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"aub" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"auc" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aud" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"aue" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/seeds/random, +/turf/open/floor/plating, +/area/router/service) +"auf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/router/service) +"aug" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/storage/bag/plants, +/turf/open/floor/plasteel, +/area/hydroponics) +"auh" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/item/storage/pill_bottle/dice, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aui" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Freezer AC Pump" + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/kitchen/backroom) +"auj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/router/service) +"auk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/service) +"aul" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/mob/living/simple_animal/mouse/brown{ + name = "Chewy" + }, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"aum" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/service) +"aun" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel, +/area/hydroponics) +"auo" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aup" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 26 + }, +/obj/structure/table/glass, +/obj/item/reagent_containers/glass/bucket{ + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"auq" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/router/service) +"aur" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/router/service) +"aus" = ( +/turf/open/floor/engine, +/area/engine/gravity_generator) +"aut" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"auu" = ( +/obj/effect/landmark/start/botanist, +/turf/open/floor/plasteel/dark, +/area/router/service) +"auv" = ( +/obj/structure/bed, +/obj/item/bedsheet/purple, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"auw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aux" = ( +/obj/machinery/light/small, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"auy" = ( +/turf/open/floor/plasteel, +/area/hydroponics) +"auz" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/chem_master, +/turf/open/floor/plasteel, +/area/hydroponics) +"auA" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/hydroponics) +"auB" = ( +/obj/structure/dresser, +/turf/open/floor/carpet/purple, +/area/crew_quarters/dorms/purple) +"auC" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"auD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"auE" = ( +/obj/structure/bed, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"auF" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"auG" = ( +/obj/machinery/light/small, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"auH" = ( +/obj/structure/girder/displaced, +/obj/item/reagent_containers/rag, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"auI" = ( +/obj/structure/closet/secure_closet/brig, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"auJ" = ( +/obj/structure/bed, +/obj/item/bedsheet/blue, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/dorms/blue) +"auK" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"auL" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"auM" = ( +/obj/machinery/door/firedoor, +/obj/structure/sign/poster/official/bless_this_spess{ + pixel_x = -32 + }, +/obj/machinery/door/airlock/public/glass, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"auN" = ( +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"auO" = ( +/obj/structure/closet/crate/freezer, +/turf/open/floor/plating, +/area/router/service) +"auP" = ( +/obj/structure/chair/sofa/right, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/landmark/start/assistant/override, +/turf/open/floor/plasteel, +/area/security/main) +"auQ" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/public/glass, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"auR" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/engine/secure_construction"; + dir = 1; + name = "Engineering Construction Area APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"auS" = ( +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"auT" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"auU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/stairs/left, +/area/router/service) +"auV" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"auW" = ( +/obj/structure/chair/sofa/left, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/sign/poster/official/the_owl{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/security/main) +"auX" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/stairs/right, +/area/router/service) +"auY" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"auZ" = ( +/obj/structure/disposalpipe/junction/flip, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"ava" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/service) +"avb" = ( +/turf/closed/wall, +/area/hallway/secondary/civilian) +"avc" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"avd" = ( +/obj/structure/sign/warning{ + name = "\improper COLD TEMPERATURES"; + pixel_x = 32 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"ave" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"avf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Starboard Bow Maintenance"; + req_one_access_txt = "12;25;26;28;35;46" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/hallway/secondary/civilian) +"avg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Brig"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"avh" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/storage/tools) +"avi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Port Bow Maintainance"; + req_one_access_txt = "13" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"avj" = ( +/obj/machinery/photocopier, +/turf/open/floor/carpet/red, +/area/security/brig) +"avk" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/item/plant_analyzer, +/obj/structure/table/glass, +/obj/machinery/plantgenes{ + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"avl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"avm" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/civilian) +"avn" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/stripes/white/full, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/sign/poster/official/spiderlings{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"avo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"avp" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/glass{ + name = "East Primary Hallway"; + req_one_access_txt = "10;12;25;26;28;35;46" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/router/service) +"avq" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/glass{ + name = "East Primary Hallway"; + req_one_access_txt = "10;12;25;26;28;35;46" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/router/service) +"avr" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space/basic, +/area/solar/starboard/fore) +"avs" = ( +/turf/closed/wall, +/area/router/service) +"avt" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"avu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"avv" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plating, +/area/space/nearstation) +"avw" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/structure/sign/poster/official/wtf_is_co2{ + pixel_x = 32 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"avx" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/obj/item/crowbar/large, +/obj/item/crowbar{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/router/service) +"avy" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plating, +/area/space/nearstation) +"avz" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/router/service) +"avA" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"avB" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/router/service) +"avC" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"avD" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/fragile, +/obj/item/clothing/head/helmet/space/fragile, +/obj/item/storage/belt/utility, +/obj/item/tank/internals/air, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/router/service) +"avE" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"avF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"avG" = ( +/turf/closed/wall, +/area/security/prison) +"avH" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/machinery/meter, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"avI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"avJ" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel, +/area/security/main) +"avK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"avL" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"avM" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/security/main) +"avN" = ( +/turf/closed/wall, +/area/crew_quarters/barbershop) +"avO" = ( +/obj/structure/table, +/obj/structure/bedsheetbin/color, +/obj/item/clothing/gloves/color/white, +/obj/machinery/camera{ + c_tag = "Laundry Room" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"avP" = ( +/obj/structure/reagent_dispensers/keg, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"avQ" = ( +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"avR" = ( +/obj/machinery/washing_machine, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"avS" = ( +/obj/machinery/washing_machine, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"avT" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"avU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 6 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"avV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"avW" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"avX" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"avY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AIShutter"; + name = "AI Core Shutters" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"avZ" = ( +/obj/effect/landmark/start/cook, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"awa" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible, +/obj/machinery/meter, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"awb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"awc" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"awd" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"awe" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"awf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"awg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Civilian Wing Hallway - Fore" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"awh" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/sign/poster/official/fruit_bowl{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"awi" = ( +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"awj" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"awk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"awl" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "applebush" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"awm" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/r_wall, +/area/maintenance/solars/port) +"awn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AIShutter"; + name = "AI Core Shutters" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"awo" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"awp" = ( +/turf/closed/wall, +/area/hydroponics/lobby) +"awq" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plating, +/area/space/nearstation) +"awr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aws" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/engine/storage{ + name = "Canister Storage" + }) +"awt" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/item/folder/red, +/obj/machinery/door/window/westleft{ + name = "Security Checkpoint"; + req_access_txt = "1" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"awu" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"awv" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, +/obj/structure/table, +/obj/item/clothing/gloves/color/white, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"aww" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"awx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hydroponics/lobby) +"awy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Laundry Room Maintenance"; + req_one_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/barbershop) +"awz" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"awA" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"awB" = ( +/obj/machinery/microwave, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/table/wood/fancy, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/crew_quarters/bar) +"awC" = ( +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"awD" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"awE" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/storage/tools) +"awF" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"awG" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"awH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"awI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"awJ" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel, +/area/security/brig) +"awK" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"awL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"awM" = ( +/obj/structure/rack, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/head/hardhat/red{ + pixel_y = 6 + }, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/air, +/obj/item/crowbar/large, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"awN" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fore) +"awO" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/port/central"; + dir = 1; + name = "Central Port Maintenance APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"awP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"awQ" = ( +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted, +/obj/structure/table, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/turf/open/floor/plasteel, +/area/security/main) +"awR" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"awS" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"awT" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + sortType = 7 + }, +/turf/open/floor/plasteel, +/area/security/main) +"awU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"awV" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/vending/assist, +/turf/open/floor/plasteel, +/area/storage/tools) +"awW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"awX" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"awY" = ( +/obj/structure/closet/wardrobe/orange, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"awZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"axa" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"axb" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"axc" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/maintenance/solars/port) +"axd" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"axe" = ( +/obj/structure/closet/crate, +/obj/item/storage/belt/utility, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plating, +/area/maintenance/fore) +"axf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"axg" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/camera{ + c_tag = "Arcade"; + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"axh" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/random{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"axi" = ( +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/plasteel, +/area/security/brig) +"axj" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"axk" = ( +/obj/item/storage/pill_bottle/penis_enlargement, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"axl" = ( +/obj/machinery/shower{ + dir = 8; + pixel_y = -4 + }, +/obj/item/soap/homemade, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"axm" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/wall, +/area/security/prison) +"axn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"axo" = ( +/obj/structure/table, +/obj/item/tape, +/obj/item/wrench, +/obj/item/radio/off, +/turf/open/floor/plasteel, +/area/security/brig) +"axp" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"axq" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"axr" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"axs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"axt" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"axu" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/brig) +"axv" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/item/clothing/accessory/armband/deputy, +/obj/item/encryptionkey/headset_sec, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/item/clothing/head/cowboyhat/sec, +/turf/open/floor/plasteel, +/area/security/brig) +"axw" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/main) +"axx" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/camera{ + c_tag = "Fore Maintenance - Aft"; + dir = 8; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"axy" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/botanist, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"axz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"axA" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot, +/obj/item/clothing/accessory/armband/science, +/obj/item/encryptionkey/headset_sci, +/turf/open/floor/plasteel, +/area/security/brig) +"axB" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot, +/obj/item/clothing/accessory/armband/medblue, +/obj/item/encryptionkey/headset_med, +/turf/open/floor/plasteel, +/area/security/brig) +"axC" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"axD" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Hydroponics Storage"; + req_access_txt = "35" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"axE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/kudzu{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"axF" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"axG" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"axH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"axI" = ( +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"axJ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"axK" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"axL" = ( +/obj/structure/sign/warning{ + name = "\improper CONSTRUCTION AREA"; + pixel_y = 32 + }, +/obj/item/assembly/prox_sensor, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"axM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"axN" = ( +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/computer/security{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"axO" = ( +/obj/structure/weightmachine/stacklifter, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"axP" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"axQ" = ( +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"axR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"axS" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/lights/mixed, +/obj/item/clothing/mask/gas, +/obj/item/cane, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"axT" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/storage/crayons{ + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"axU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"axV" = ( +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"axW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"axX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"axY" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"axZ" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"aya" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "AI Core Exterior"; + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"ayb" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"ayc" = ( +/obj/structure/kitchenspike, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"ayd" = ( +/turf/closed/wall, +/area/hallway/primary/port/fore) +"aye" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"ayf" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 2 + }, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ayg" = ( +/obj/machinery/vending/wardrobe/hydro_wardrobe, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"ayh" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"ayi" = ( +/obj/structure/table, +/obj/item/clipboard, +/obj/item/paper_bin{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/pen, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ayj" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/security/brig) +"ayk" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/secondary/entry) +"ayl" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aym" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/prison) +"ayn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plating, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"ayo" = ( +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"ayp" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"ayq" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"ayr" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"ays" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/soda_cans/space_up, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"ayt" = ( +/obj/structure/closet/crate, +/obj/item/reagent_containers/glass/beaker/waterbottle/large/empty, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"ayu" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayv" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"ayw" = ( +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Service Hallway - Fore"; + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"ayx" = ( +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"ayy" = ( +/turf/open/floor/carpet, +/area/chapel/main) +"ayz" = ( +/obj/structure/chair/pew/right{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"ayA" = ( +/obj/structure/window/reinforced, +/obj/structure/destructible/cult/tome, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"ayB" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"ayC" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"ayD" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"ayE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hydroponics/lobby) +"ayF" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ayG" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"ayH" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/mob/living/simple_animal/cockroach, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"ayI" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ayJ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/maintenance/solars/port) +"ayK" = ( +/obj/structure/flora/tree/jungle/small, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"ayL" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"ayM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"ayN" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ayO" = ( +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted, +/obj/structure/table, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ayP" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"ayQ" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"ayR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/security/brig) +"ayS" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ayT" = ( +/obj/machinery/vending/security, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ayU" = ( +/obj/vehicle/ridden/secway, +/obj/effect/turf_decal/bot, +/obj/item/key/security, +/turf/open/floor/plasteel, +/area/security/brig) +"ayV" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"ayW" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ayX" = ( +/obj/structure/closet/wardrobe/mixed, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"ayY" = ( +/obj/machinery/vending/medical, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"ayZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aza" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table, +/obj/item/clothing/gloves/botanic_leather, +/obj/item/hand_labeler, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"azb" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"azc" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"azd" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/clothing/mask/gas, +/obj/machinery/camera{ + c_tag = "Central Port Maintenace - Port" + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aze" = ( +/obj/machinery/power/apc{ + name = "AI Chamber APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"azf" = ( +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"azg" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"azh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"azi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Interrogation Maintenance"; + req_access_txt = "63;12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"azj" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"azk" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"azl" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Security - Brig Aft"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"azm" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"azn" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"azo" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"azp" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"azq" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plating, +/area/space/nearstation) +"azr" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"azs" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"azt" = ( +/obj/structure/chair/pew/right{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"azu" = ( +/obj/structure/chair/pew{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"azv" = ( +/obj/machinery/door/window/westleft{ + name = "Holy Driver"; + req_one_access_txt = "22" + }, +/obj/machinery/conveyor{ + dir = 4; + id = "Holydriver" + }, +/turf/open/floor/plating, +/area/chapel/main) +"azw" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "Holydriver" + }, +/turf/open/floor/plating, +/area/chapel/main) +"azx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"azy" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"azz" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"azA" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"azB" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"azC" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/barbershop) +"azD" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"azE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"azF" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tools) +"azG" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/secondary/entry) +"azH" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/sign/departments/botany{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"azI" = ( +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"azJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"azK" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/machinery/door/window/westleft{ + name = "Boxing Ring" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"azL" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"azM" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_y = 2 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"azN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/security/prison) +"azO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/blobstart, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"azP" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"azQ" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"azR" = ( +/obj/structure/closet/secure_closet/bar, +/obj/structure/disposalpipe/segment, +/obj/item/clothing/under/janimaid, +/obj/item/stack/spacecash/c10, +/obj/item/clothing/under/waiter, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"azS" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/closet, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/cable_coil/red{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil/red, +/obj/item/wrench, +/obj/item/screwdriver{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"azT" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"azU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"azV" = ( +/obj/structure/kitchenspike, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"azW" = ( +/obj/effect/landmark/start/botanist, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"azX" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/storage/tools) +"azY" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + areastring = "/area/hydroponics/lobby"; + dir = 4; + name = "Hydroponics Lobby APC"; + pixel_x = 24 + }, +/obj/item/clothing/suit/beekeeper_suit, +/obj/item/melee/flyswatter, +/obj/item/clothing/head/beekeeper_head, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"azZ" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "chapelgun"; + name = "Holy Driver" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/chapel/main) +"aAa" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/kitchen) +"aAb" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aAc" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aAd" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/processing) +"aAe" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aAf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/mineral_door/wood, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/barbershop) +"aAg" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, +/obj/machinery/gibber, +/obj/machinery/camera{ + c_tag = "Kitchen Coldroom"; + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"aAh" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/easel, +/obj/item/canvas/nineteenXnineteen, +/obj/item/storage/crayons, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aAi" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aAj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aAk" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aAl" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aAm" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/door/airlock/freezer{ + name = "Kitchen Coldroom"; + req_access_txt = "28" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"aAn" = ( +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/security/brig) +"aAo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/sign/poster/official/twelve_gauge{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"aAp" = ( +/obj/machinery/computer/security/telescreen/entertainment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/bar) +"aAq" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aAr" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aAs" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aAt" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/obj/machinery/camera{ + c_tag = "Hydroponics Storage"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aAu" = ( +/obj/structure/closet/crate/hydroponics, +/obj/effect/decal/cleanable/dirt, +/obj/item/circuitboard/machine/hydroponics, +/obj/item/circuitboard/machine/hydroponics, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aAv" = ( +/obj/structure/rack, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_y = 6 + }, +/obj/item/gun/energy/e_gun/advtaser, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_y = -6 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aAw" = ( +/obj/machinery/door/poddoor{ + id = "chapelgun"; + name = "Chapel Launcher Door" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/chapel/main) +"aAx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aAy" = ( +/obj/machinery/atmospherics/components/binary/circulator{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aAz" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aAA" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aAB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aAC" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aAD" = ( +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"aAE" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aAF" = ( +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"aAG" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"aAH" = ( +/obj/structure/chair/pew{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/chapel/main) +"aAI" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"aAJ" = ( +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"aAK" = ( +/obj/structure/transit_tube/horizontal, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"aAL" = ( +/obj/machinery/shower{ + dir = 8 + }, +/obj/structure/sign/poster/official/cleanliness{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aAM" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Hydroponics"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aAN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aAO" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/crew_quarters/toilet) +"aAP" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aAQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aAR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Telecomms Access Maintenance"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aAS" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot, +/obj/item/clothing/accessory/armband/engine, +/obj/item/encryptionkey/headset_eng, +/turf/open/floor/plasteel, +/area/security/brig) +"aAT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aAU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aAV" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aAW" = ( +/obj/machinery/chem_master/condimaster{ + name = "BrewMaster 3000" + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aAX" = ( +/turf/open/floor/carpet/red, +/area/security/brig) +"aAY" = ( +/obj/structure/chair, +/turf/open/floor/carpet/red, +/area/security/brig) +"aAZ" = ( +/obj/structure/chair, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/carpet/red, +/area/security/brig) +"aBa" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aBb" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aBc" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/suit/beekeeper_suit, +/obj/item/melee/flyswatter, +/obj/item/clothing/head/beekeeper_head, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aBd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aBe" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aBf" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aBg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/junction, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aBh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aBi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aBj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/brig) +"aBk" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/crew_quarters/barbershop) +"aBl" = ( +/obj/structure/chair/comfy/brown, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/barbershop) +"aBm" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Dormitories" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"aBn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aBo" = ( +/obj/structure/table, +/obj/item/storage/pill_bottle/epinephrine, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/barbershop) +"aBp" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/computer/pod/old{ + density = 0; + icon = 'icons/obj/airlock_machines.dmi'; + icon_state = "airlock_control_standby"; + id = "chapelgun"; + name = "Mass Driver Controller"; + pixel_x = 24 + }, +/obj/machinery/conveyor_switch/oneway{ + id = "Holydriver" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aBq" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"aBr" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/barbershop) +"aBs" = ( +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aBt" = ( +/obj/structure/chair/comfy/brown, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/barbershop) +"aBu" = ( +/obj/item/flashlight/lantern, +/turf/open/floor/carpet, +/area/chapel/main) +"aBv" = ( +/obj/structure/chair/pew/left{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"aBw" = ( +/obj/structure/chair/comfy/brown, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/barbershop) +"aBx" = ( +/obj/structure/window/plasma/reinforced{ + dir = 8 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar, +/turf/open/floor/plasteel, +/area/security/main) +"aBy" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/obj/machinery/camera{ + c_tag = "Port Bow Hall - Central"; + dir = 4; + network = list("ss13","medbay") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aBz" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBA" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/table, +/obj/item/healthanalyzer, +/obj/item/storage/hypospraykit/fire{ + pixel_x = -4 + }, +/obj/item/storage/hypospraykit/brute{ + pixel_x = 4 + }, +/obj/structure/sign/poster/official/nt_storm{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aBB" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aBC" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/security/main) +"aBD" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aBE" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aBF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet/red, +/area/security/brig) +"aBG" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/crew_quarters/bar) +"aBH" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aBJ" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aBK" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/security/main) +"aBL" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBM" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/abandoned_gambling_den"; + name = "Arcade APC"; + pixel_y = -26 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBN" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aBO" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock{ + name = "Hydroponics Storage"; + req_access_txt = "35" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aBP" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aBQ" = ( +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aBR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aBS" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aBT" = ( +/obj/item/razor, +/obj/item/toy/figure/chef{ + pixel_x = -6 + }, +/obj/item/toy/figure/bartender{ + pixel_x = 4 + }, +/obj/structure/table/wood/fancy, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"aBU" = ( +/obj/structure/window/reinforced/tinted, +/obj/structure/rack, +/obj/item/soap/nanotrasen, +/obj/item/reagent_containers/food/drinks/bottle/vodka, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aBV" = ( +/obj/item/flashlight/lantern, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aBW" = ( +/obj/structure/window/reinforced, +/obj/item/clothing/head/hardhat/cakehat, +/obj/structure/table/wood/fancy, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"aBX" = ( +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aBY" = ( +/obj/structure/closet/emcloset, +/obj/machinery/camera{ + c_tag = "Security Maintenance"; + dir = 1; + network = list("ss13","medbay") + }, +/turf/open/floor/plating, +/area/maintenance/department/security) +"aBZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aCa" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/main) +"aCb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/brig) +"aCc" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/item/clothing/accessory/armband/cargo, +/obj/item/encryptionkey/headset_cargo, +/turf/open/floor/plasteel, +/area/security/brig) +"aCd" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/highcap/fifteen_k{ + areastring = /area/maintenance/solars/port; + dir = 1; + name = "Port Solars APC"; + pixel_y = 26 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aCe" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/bar) +"aCf" = ( +/obj/machinery/light/small, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"aCg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/landmark/start/depsec/supply, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aCh" = ( +/obj/structure/mineral_door/wood{ + name = "Barbershop" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aCi" = ( +/obj/structure/closet/l3closet/security, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/security/brig) +"aCj" = ( +/obj/machinery/door/window/southleft{ + name = "Showers" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aCk" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/crew_quarters/toilet/fitness) +"aCl" = ( +/obj/structure/closet/bombcloset/security, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/security/brig) +"aCm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aCn" = ( +/obj/machinery/vending/boozeomat, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aCo" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"aCp" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/fitness) +"aCq" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/closed/wall, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"aCr" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aCs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aCt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aCu" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"aCv" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aCw" = ( +/obj/structure/window/reinforced/tinted, +/obj/machinery/shower{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aCx" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aCy" = ( +/obj/structure/table/wood, +/obj/item/storage/book/bible, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aCz" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aCA" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aCB" = ( +/obj/structure/chair/stool/bar, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"aCC" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/security/prison) +"aCD" = ( +/obj/item/trash/plate, +/obj/item/kitchen/fork, +/obj/structure/table/wood/fancy, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aCE" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "briglockdown"; + name = "Brig Lockdown"; + pixel_x = 24; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aCF" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aCG" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aCH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Brig"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aCI" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/sign/departments/botany{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aCJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/chapel/main) +"aCK" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/security/prison) +"aCL" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/carpet/red, +/area/security/brig) +"aCM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/fun_police{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aCN" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aCO" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aCP" = ( +/obj/structure/chair/sofa/left, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/landmark/start/botanist, +/obj/machinery/camera{ + c_tag = "Hydroponics Lobby" + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aCQ" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/grown/harebell, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"aCR" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_x = 1; + pixel_y = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aCS" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aCT" = ( +/obj/machinery/disposal/bin{ + name = "Hydroponics Mailbox" + }, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/delivery/white, +/obj/machinery/requests_console{ + department = "Hydroponics"; + name = "Hydroponics RC"; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aCU" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plating, +/area/space/nearstation) +"aCV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/storage/tools) +"aCW" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/junction, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aCX" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aCY" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/biogenerator, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aCZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/electricshock, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aDa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/barbershop) +"aDb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/security/main) +"aDc" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Barbershop"; + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aDd" = ( +/obj/structure/chair/office/dark, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aDe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aDf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aDg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Central Maintenance"; + req_one_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/central) +"aDh" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Port Bow Primary Hallway" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aDi" = ( +/obj/structure/closet/secure_closet/evidence, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aDj" = ( +/obj/structure/closet/wardrobe/green, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aDk" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/door/window/eastright{ + name = "Bathroom Stall" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDl" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aDm" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"aDn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/transit_tube/horizontal, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/bridge) +"aDo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aDp" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/barbershop) +"aDq" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aDr" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Civilian Wing Hallway" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aDs" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) +"aDt" = ( +/obj/structure/closet{ + name = "Evidence Closet 1" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aDu" = ( +/obj/structure/closet{ + name = "Evidence Closet 2" + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aDv" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aDw" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aDx" = ( +/obj/structure/closet/crate, +/obj/item/gun/ballistic/shotgun/toy/unrestricted, +/obj/item/gun/ballistic/shotgun/toy/unrestricted, +/obj/item/toy/gun, +/obj/item/toy/sword, +/obj/item/toy/sword, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"aDy" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aDz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/sign/departments/restroom{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aDA" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aDB" = ( +/obj/structure/closet{ + name = "Evidence Closet 3" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aDC" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aDD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"aDE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aDF" = ( +/obj/structure/table, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/security/main) +"aDG" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aDH" = ( +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aDI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"aDJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aDK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aDL" = ( +/obj/structure/closet{ + name = "Evidence Closet 4" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aDM" = ( +/turf/closed/wall, +/area/maintenance/central) +"aDN" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/central) +"aDO" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aDP" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/full, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aDQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aDR" = ( +/turf/open/floor/plating, +/area/maintenance/central) +"aDS" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/barbershop) +"aDT" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aDU" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aDV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aDW" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aDX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aDY" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aDZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aEa" = ( +/obj/structure/transit_tube/horizontal, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aEb" = ( +/obj/structure/transit_tube/crossing/horizontal, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aEc" = ( +/obj/structure/closet{ + name = "Evidence Closet 5" + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aEd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aEe" = ( +/obj/structure/transit_tube/horizontal, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aEf" = ( +/obj/machinery/camera/motion{ + c_tag = "Telecomms Satellite Exterior - Port Bow"; + dir = 1; + network = list("tcomms") + }, +/turf/open/space/basic, +/area/space) +"aEg" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"aEh" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Fore Maintenance"; + req_one_access_txt = "12;46" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/hallway/primary/port/fore) +"aEi" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aEj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"aEk" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aEl" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aEm" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aEn" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aEo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/obj/structure/sign/poster/official/fashion{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aEp" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aEq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aEr" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/lighter, +/obj/item/clothing/glasses/sunglasses{ + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aEs" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aEt" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aEu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aEv" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aEw" = ( +/obj/structure/chair, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aEx" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aEy" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/brig) +"aEz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aEA" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aEB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aEC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aED" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/carpet/red, +/area/security/brig) +"aEE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aEF" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"aEG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aEH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aEI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"aEJ" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-08" + }, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aEK" = ( +/obj/structure/table, +/obj/item/razor, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aEL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aEM" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/grown/poppy, +/turf/open/floor/carpet, +/area/chapel/main) +"aEN" = ( +/obj/structure/table, +/obj/machinery/light, +/obj/item/razor, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aEO" = ( +/obj/structure/table, +/obj/item/clothing/accessory/pocketprotector/cosmetology, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aEP" = ( +/obj/item/twohanded/required/kirbyplants, +/turf/open/floor/wood, +/area/crew_quarters/barbershop) +"aEQ" = ( +/turf/closed/wall/r_wall, +/area/maintenance/central) +"aER" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aES" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aET" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aEU" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aEV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/central) +"aEW" = ( +/obj/structure/table, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aEX" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/poster/official/safety_internals{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aEY" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aEZ" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; + dir = 1; + name = "Emergency Storage APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aFa" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/head/hardhat/red{ + pixel_y = 10 + }, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/air, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aFb" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aFc" = ( +/obj/structure/table, +/obj/item/clothing/suit/toggle/owlwings, +/obj/item/clothing/under/owl, +/obj/item/clothing/mask/gas/owl_mask, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"aFd" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aFe" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"aFf" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=serv"; + location = "sec1" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aFg" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aFh" = ( +/obj/structure/chair/pew/right{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/carpet, +/area/chapel/main) +"aFi" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=market"; + location = "sec2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aFj" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hos) +"aFk" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/security/main) +"aFl" = ( +/obj/structure/chair/sofa/right, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/reagent_containers/glass/bottle/diethylamine, +/obj/structure/sign/poster/official/hydro_ad{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aFm" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hos) +"aFn" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aFo" = ( +/obj/machinery/door/window/southleft{ + name = "Weightroom" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"aFp" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aFq" = ( +/obj/structure/table/wood, +/obj/item/candle{ + pixel_x = 4 + }, +/obj/item/candle{ + pixel_y = 8 + }, +/turf/open/floor/carpet, +/area/chapel/main) +"aFr" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aFs" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aFt" = ( +/obj/structure/table/glass, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aFu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aFv" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/hallway/secondary/entry) +"aFw" = ( +/obj/structure/table, +/obj/item/multitool, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/camera{ + c_tag = "Central Maintenance - Power Monitoring"; + network = list("ss13","rd") + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aFx" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/item/folder/blue, +/obj/machinery/door/window/westleft{ + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aFy" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aFz" = ( +/obj/structure/table, +/obj/item/multitool{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/stack/cable_coil/random, +/obj/item/crowbar, +/turf/open/floor/plating, +/area/maintenance/central) +"aFA" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/landmark/start/botanist, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aFB" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aFC" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aFD" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=AftH"; + location = "Hydroponics" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aFE" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/techstorage/tcomms, +/turf/open/floor/circuit, +/area/bridge) +"aFF" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aFG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/prison) +"aFH" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aFI" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Primary Tool Storage" + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"aFJ" = ( +/obj/structure/closet/crate/hydroponics, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/watertank, +/obj/item/grenade/chem_grenade/antiweed, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aFK" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/item/storage/box/beakers{ + pixel_y = 4 + }, +/obj/item/reagent_containers/dropper, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/item/pen/blue{ + pixel_x = -4; + pixel_y = -2 + }, +/obj/item/pen/red{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/structure/table/glass, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aFL" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/chem_master, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aFM" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/barbershop) +"aFN" = ( +/obj/structure/flora/junglebush/b, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"aFO" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aFP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/security/checkpoint) +"aFQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aFR" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aFS" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aFT" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/turf/closed/wall, +/area/security/brig) +"aFU" = ( +/obj/machinery/atmospherics/components/binary/circulator/cold{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aFV" = ( +/obj/structure/window/reinforced, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/table/wood/fancy, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"aFW" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aFX" = ( +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"aFY" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet, +/area/chapel/main) +"aFZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/security/prison) +"aGa" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/transit_tube/horizontal, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"aGb" = ( +/obj/machinery/suit_storage_unit/hos, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"aGc" = ( +/obj/item/coin/iron, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"aGd" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aGe" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aGf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aGg" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aGh" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/landmark/start/security_officer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aGi" = ( +/obj/machinery/porta_turret/ai{ + dir = 1; + req_access = list(16) + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"aGj" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/toolbox/emergency{ + pixel_y = 4 + }, +/obj/item/analyzer{ + pixel_y = -4 + }, +/obj/item/flashlight{ + pixel_y = 4 + }, +/obj/item/flashlight{ + pixel_y = 4 + }, +/obj/item/extinguisher, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aGk" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aGl" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/structure/window/reinforced, +/obj/structure/table, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/item/clipboard, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aGm" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/machinery/door/window/southright{ + name = "Hydroponics Desk"; + req_access_txt = "35" + }, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aGn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/bridge) +"aGo" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/screwdriver, +/obj/item/wrench, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/multitool, +/obj/item/multitool, +/obj/item/wrench, +/turf/open/floor/plasteel, +/area/security/brig) +"aGp" = ( +/mob/living/simple_animal/mouse/brown, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"aGq" = ( +/turf/closed/wall/r_wall, +/area/bridge) +"aGr" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aGs" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/bridge) +"aGt" = ( +/obj/machinery/computer/card/minor/hos{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"aGu" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"aGv" = ( +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"aGw" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock{ + name = "Hydroponics Lobby"; + req_access_txt = "35" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"aGx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aGy" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aGz" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/bridge"; + name = "Bridge APC"; + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aGA" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"aGB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"aGC" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aGD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/toilet"; + dir = 8; + name = "Dormitory Toilets APC"; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aGE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aGF" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aGG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aGH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Medical Booth"; + req_access_txt = "5" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/medical{ + name = "Medical Booth" + }) +"aGI" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/item/reagent_containers/pill/patch/silver_sulf{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/reagent_containers/pill/patch/silver_sulf{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/reagent_containers/pill/patch/silver_sulf{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/reagent_containers/pill/patch/silver_sulf{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/reagent_containers/pill/patch/silver_sulf{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/reagent_containers/pill/patch/silver_sulf{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/reagent_containers/pill/patch/silver_sulf{ + pixel_x = -4 + }, +/obj/item/reagent_containers/pill/patch/silver_sulf{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/reagent_containers/pill/patch/styptic{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/reagent_containers/pill/patch/styptic{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/reagent_containers/pill/patch/styptic{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/pill/patch/styptic{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/reagent_containers/pill/patch/styptic{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/reagent_containers/pill/patch/styptic{ + pixel_x = 4; + pixel_y = 1 + }, +/obj/item/reagent_containers/pill/patch/styptic{ + pixel_x = 4 + }, +/obj/item/reagent_containers/pill/patch/styptic{ + pixel_x = 4; + pixel_y = -1 + }, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aGJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aGK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; + dir = 1; + name = "Head of Security's APC"; + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Security - Head of Security's Office"; + pixel_x = 22 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"aGL" = ( +/obj/structure/table/wood, +/obj/item/storage/firstaid/regular, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aGM" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aGN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aGO" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aGP" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aGQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aGR" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/snacks/store/cake/chocolate, +/obj/machinery/door/poddoor/preopen{ + id = "kitchenlock"; + name = "Kitchen Lockup" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/kitchen) +"aGS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aGT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aGU" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aGV" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/table, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aGW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/bridge) +"aGX" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/drinks/bottle/vodka, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Bridge"; + departmentType = 5; + name = "Bridge RC"; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aGY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -30 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"aGZ" = ( +/turf/open/floor/plasteel/stairs/medium, +/area/hallway/secondary/entry) +"aHa" = ( +/obj/structure/disposalpipe/junction/yjunction, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aHb" = ( +/obj/structure/chair, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aHc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"aHd" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aHe" = ( +/obj/structure/sign/poster/official/bless_this_spess{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"aHf" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aHg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aHh" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aHi" = ( +/obj/structure/chair/stool, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"aHj" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + name = "Starboard Bow Solar Exterior Airlock"; + req_access_txt = "10;13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"aHk" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aHl" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aHm" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aHn" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plating, +/area/maintenance/central) +"aHo" = ( +/obj/structure/rack, +/obj/item/circuitboard/machine/telecomms/relay, +/obj/item/circuitboard/machine/telecomms/server, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"aHp" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aHq" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/obj/machinery/porta_turret/ai{ + dir = 1; + req_access = list(16) + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"aHr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/clown{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aHs" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/port/fore) +"aHt" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/port/fore) +"aHu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aHv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aHw" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aHx" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/closed/wall, +/area/security/detectives_office) +"aHy" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/security/detectives_office) +"aHz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/security/detectives_office) +"aHA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/detectives_office) +"aHB" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/toolbox/emergency{ + pixel_y = 4 + }, +/obj/item/wrench, +/obj/item/wrench{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/light/tube, +/obj/item/light/tube{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/extinguisher, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aHC" = ( +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aHD" = ( +/obj/machinery/modular_computer/console/preset/engineering, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aHE" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 6; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aHF" = ( +/turf/open/floor/plasteel/dark, +/area/bridge) +"aHG" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aHH" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aHI" = ( +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aHJ" = ( +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aHK" = ( +/obj/structure/piano, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aHL" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/stack/medical/gauze, +/obj/item/reagent_containers/blood, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/ointment, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aHM" = ( +/turf/open/floor/plasteel, +/area/bridge) +"aHN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Security - Interrogation Room"; + pixel_x = 22 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aHO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aHP" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hos) +"aHQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aHR" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; + dir = 1; + name = "Security Office APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aHS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aHT" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aHU" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/mineral_door/woodrustic{ + name = "Nature Preserve" + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"aHV" = ( +/obj/structure/flora/junglebush/large, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"aHW" = ( +/obj/structure/chair/comfy/brown, +/obj/effect/landmark/start/head_of_security, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"aHX" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aHY" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/cryopod) +"aHZ" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/door/window/eastleft{ + name = "Security Office Desk"; + req_one_access_txt = "63" + }, +/obj/item/folder/red, +/obj/item/stamp/denied{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stamp, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aIa" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aIb" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/flip, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aIc" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aId" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aIe" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aIf" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aIg" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aIh" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aIi" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aIj" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aIk" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aIl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aIm" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/machinery/requests_console{ + department = "Kitchen"; + departmentType = 2; + name = "Kitchen RC"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"aIn" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/security/prison) +"aIo" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aIp" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aIq" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aIr" = ( +/obj/structure/table/reinforced, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/item/folder/red, +/obj/item/stamp/hos, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"aIs" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aIt" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aIu" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aIv" = ( +/obj/machinery/cryopod{ + dir = 8 + }, +/turf/open/floor/circuit/green, +/area/crew_quarters/cryopod) +"aIw" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aIx" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aIy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aIz" = ( +/obj/machinery/cryopod{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aIA" = ( +/obj/machinery/computer/med_data{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aIB" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aIC" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aID" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aIE" = ( +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aIF" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aIG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/detectives_office) +"aIH" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aII" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aIJ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aIK" = ( +/obj/structure/table/wood, +/obj/item/camera, +/obj/item/folder, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aIL" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aIM" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"aIN" = ( +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aIO" = ( +/obj/structure/sign/directions/medical{ + dir = 8; + pixel_y = -24 + }, +/obj/structure/sign/directions/evac{ + dir = 1; + pixel_y = -32 + }, +/obj/structure/sign/directions/supply{ + dir = 8; + pixel_y = -40 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aIP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aIQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aIR" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/botanist, +/turf/open/floor/plasteel, +/area/hydroponics) +"aIS" = ( +/obj/effect/landmark/start/ai, +/obj/machinery/button/door{ + id = "AIShutter"; + layer = 3.6; + name = "AI Core Shutter Control"; + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"aIT" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aIU" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aIV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Interrogation Monitoring"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aIW" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aIX" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"aIY" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aIZ" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aJa" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aJb" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aJc" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aJd" = ( +/turf/closed/wall, +/area/chapel/office) +"aJe" = ( +/obj/machinery/computer/crew{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aJf" = ( +/obj/machinery/camera{ + c_tag = "Chapel - Aft"; + dir = 1 + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aJg" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"aJh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aJi" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aJj" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aJk" = ( +/obj/structure/table/wood, +/obj/item/candle, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aJl" = ( +/obj/structure/bodycontainer/crematorium{ + id = "foo" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aJm" = ( +/obj/machinery/light, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"aJn" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aJo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aJp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/camera/motion{ + c_tag = "AI"; + network = list("minisat") + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"aJq" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/storage/box/beakers{ + pixel_y = 4 + }, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel, +/area/hydroponics) +"aJr" = ( +/obj/structure/sign/directions/command{ + dir = 8; + pixel_y = -32 + }, +/obj/structure/sign/directions/security{ + dir = 8; + pixel_y = -24 + }, +/obj/structure/sign/directions/science{ + dir = 8; + pixel_y = -40 + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aJs" = ( +/obj/structure/noticeboard{ + name = "Hydroponics Requests Board"; + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aJt" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/item/toy/figure/syndie, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"aJu" = ( +/obj/structure/chair/comfy/brown, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aJv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"aJw" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aJx" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aJy" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/stairs/right, +/area/security/brig) +"aJz" = ( +/obj/structure/chair/comfy/brown, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aJA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Port Bow Hall - Dorms Access"; + network = list("ss13","rd") + }, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aJB" = ( +/obj/machinery/computer/security/mining{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aJC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aJD" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/storage/belt/medical, +/obj/item/clothing/suit/space/hardsuit/medical, +/obj/item/tank/internals/emergency_oxygen, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"aJE" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"aJF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"aJG" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/bridge) +"aJH" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/storage/tools) +"aJI" = ( +/obj/structure/closet/crate/hydroponics, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/cable, +/obj/item/shovel/spade, +/obj/item/wrench, +/obj/item/cultivator, +/obj/item/crowbar, +/obj/item/wirecutters, +/obj/item/reagent_containers/glass/bucket, +/obj/item/hatchet, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hydroponics"; + name = "Hydroponics APC"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"aJJ" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"aJK" = ( +/obj/structure/filingcabinet, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/bridge) +"aJL" = ( +/turf/open/floor/circuit, +/area/bridge) +"aJM" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/circuit, +/area/bridge) +"aJN" = ( +/obj/machinery/camera{ + c_tag = "Security - Prison Aft"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aJO" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aJP" = ( +/obj/structure/chair/comfy/teal, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/sign/departments/botany{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Civilian Wing Hallway - Starboard"; + dir = 8; + pixel_y = -22 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aJQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aJR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"aJS" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aJT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aJU" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aJV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/security/prison) +"aJW" = ( +/obj/machinery/cryopod{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/circuit/green, +/area/crew_quarters/cryopod) +"aJX" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/modular_computer/console/preset/civilian{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/bridge) +"aJY" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/storage/box/lights/mixed, +/obj/item/stack/sheet/metal/fifty{ + pixel_x = -3; + pixel_y = -7 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"aJZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"aKa" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aKb" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/civilian) +"aKc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aKd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access_txt = "63" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aKe" = ( +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"aKf" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/emergency/generic) +"aKg" = ( +/turf/open/floor/plasteel/stairs/right, +/area/hallway/secondary/entry) +"aKh" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet/red, +/area/security/brig) +"aKi" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aKj" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aKk" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/landmark/start/detective, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aKl" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aKm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Emergency Storage" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aKn" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"aKo" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aKp" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aKq" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/chapel/main) +"aKr" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/public/glass{ + name = "Emergency Storage" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/storage/emergency/generic) +"aKs" = ( +/obj/structure/table/wood, +/obj/item/trash/plate, +/obj/item/reagent_containers/food/drinks/drinkingglass, +/obj/item/reagent_containers/rag, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aKt" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aKu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/storage/emergency/generic) +"aKv" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aKw" = ( +/obj/structure/table, +/obj/item/storage/pill_bottle/dice, +/obj/item/toy/cards/deck, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aKx" = ( +/obj/machinery/computer/security{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aKy" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/flasher/portable, +/turf/open/floor/plasteel, +/area/security/brig) +"aKz" = ( +/turf/closed/wall, +/area/storage/emergency/generic) +"aKA" = ( +/obj/structure/table/wood, +/obj/item/storage/box/ids, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aKB" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aKC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "2" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aKD" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aKE" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/donut_box, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aKF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Telecommunications Control Room"; + req_access_txt = "19;61" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aKG" = ( +/obj/structure/table/wood, +/obj/item/storage/toolbox/emergency, +/obj/item/crowbar/red, +/obj/item/beacon, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aKH" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/full, +/obj/machinery/camera{ + c_tag = "Bridge - Fore"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aKI" = ( +/obj/structure/closet/cabinet, +/obj/item/screwdriver, +/obj/item/storage/crayons, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 26 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aKJ" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aKK" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/vending/snack/blue, +/turf/open/floor/plasteel, +/area/bridge) +"aKL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aKM" = ( +/obj/machinery/camera{ + c_tag = "Chapel - Starboard"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aKN" = ( +/obj/structure/chair/pew/left{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aKO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/stairs/left, +/area/security/brig) +"aKP" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/bridge) +"aKQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/chapel/office) +"aKR" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aKS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aKT" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"aKU" = ( +/obj/structure/bodycontainer/morgue, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aKV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aKW" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aKX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Chapel Morgue"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aKY" = ( +/obj/structure/chair/sofa/left, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aKZ" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"aLa" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"aLb" = ( +/obj/item/toy/prize/honk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"aLc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Central Maintenance"; + req_one_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/hallway/primary/port/fore) +"aLd" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aLe" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aLf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aLg" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aLh" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aLi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Central Maintenance"; + req_one_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aLj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aLk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/brig) +"aLl" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/autodrobe/all_access, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aLm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aLn" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/flip, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aLo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aLp" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aLq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aLr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aLs" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aLt" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aLu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Visitation Maintainance"; + req_one_access_txt = "63" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/security/main) +"aLv" = ( +/obj/machinery/computer/cryopod{ + dir = 8; + pixel_x = 26 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aLw" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-06" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aLx" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aLy" = ( +/obj/machinery/modular_computer/console/preset/command{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aLz" = ( +/obj/machinery/newscaster{ + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aLA" = ( +/obj/item/candle{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/item/candle{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aLB" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aLC" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aLD" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aLE" = ( +/obj/machinery/computer/communications{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aLF" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aLG" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aLH" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"aLI" = ( +/obj/structure/table/wood, +/obj/item/storage/box/PDAs, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aLJ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aLK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/bridge) +"aLL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/brig) +"aLM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"aLN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/morgue{ + name = "Confession Booth" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aLO" = ( +/obj/item/toy/talking/owl, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"aLP" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = -26 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aLQ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel, +/area/bridge) +"aLR" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/item/storage/box/bodybags{ + pixel_y = 4 + }, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aLS" = ( +/obj/structure/disposaloutlet{ + dir = 8; + name = "Corpse Outlet" + }, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/delivery/red, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aLT" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aLU" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/vending/assist, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aLV" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/camera{ + c_tag = "Central Maintenance - Aft"; + network = list("ss13","rd") + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aLW" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aLX" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/recharger, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/security/main) +"aLY" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"aLZ" = ( +/mob/living/simple_animal/chicken{ + desc = "At least it isn't a court kangaroo."; + name = "amusing cluck"; + real_name = "amusing cluck" + }, +/turf/open/floor/carpet, +/area/security/courtroom) +"aMa" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aMb" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aMc" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 20 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aMd" = ( +/obj/machinery/vending/wardrobe/chap_wardrobe, +/obj/machinery/camera{ + c_tag = "Chapel Office"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aMe" = ( +/obj/machinery/door/window/northleft{ + name = "Game Room" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aMf" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aMg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/maintenance/central) +"aMh" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/item/reagent_containers/food/drinks/bottle/champagne, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_y = -32 + }, +/obj/machinery/keycard_auth{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"aMi" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aMj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aMk" = ( +/obj/structure/closet/crate/coffin, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"aMl" = ( +/obj/effect/landmark/start/bartender, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aMm" = ( +/obj/machinery/computer/med_data, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"aMn" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/sign/warning{ + name = "\improper WARNING: MOVING MACHINERY" + }, +/turf/closed/wall, +/area/maintenance/department/chapel) +"aMo" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"aMp" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aMq" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aMr" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Civilian Wing Hallway - Port" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aMs" = ( +/turf/closed/wall, +/area/maintenance/department/chapel) +"aMt" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"aMu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel{ + dir = 4; + icon_state = "chapel" + }, +/area/chapel/main) +"aMv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel{ + dir = 8; + icon_state = "chapel" + }, +/area/chapel/main) +"aMw" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aMx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"aMy" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aMz" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/storage{ + name = "Canister Storage" + }) +"aMA" = ( +/turf/closed/wall, +/area/janitor) +"aMB" = ( +/turf/closed/wall/r_wall, +/area/janitor) +"aMC" = ( +/obj/structure/table/wood, +/obj/item/kitchen/fork, +/obj/item/reagent_containers/food/snacks/salad/herbsalad, +/obj/item/candle{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aMD" = ( +/turf/closed/wall/rust, +/area/maintenance/disposal) +"aME" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aMF" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aMG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Central Starboard Maintenance"; + dir = 8; + pixel_y = -22 + }, +/mob/living/simple_animal/hostile/retaliate/bat, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"aMH" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aMI" = ( +/turf/closed/wall/r_wall, +/area/maintenance/disposal) +"aMJ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/effect/landmark/start/assistant, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aMK" = ( +/obj/vehicle/ridden/wheelchair, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aML" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/chapel/office) +"aMM" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/sign/poster/official/help_others{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aMN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"aMO" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aMP" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/drinks/bottle/wine, +/turf/open/floor/plasteel, +/area/security/brig) +"aMQ" = ( +/obj/machinery/computer/security{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aMR" = ( +/obj/effect/landmark/start/chaplain, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/carpet, +/area/chapel/main) +"aMS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aMT" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aMU" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen/fountain, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet, +/area/chapel/main) +"aMV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aMW" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aMX" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + dir = 1 + }, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aMY" = ( +/obj/structure/closet, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/courtroom) +"aMZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aNa" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aNb" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aNc" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/item/mop, +/obj/item/storage/box/mousetraps, +/obj/item/storage/box/mousetraps, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plasteel, +/area/janitor) +"aNd" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/paper_bin, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/courtroom) +"aNe" = ( +/obj/structure/closet/crate, +/obj/item/reagent_containers/food/snacks/spaghetti, +/obj/item/reagent_containers/food/snacks/spaghetti, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"aNf" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/clipboard, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/courtroom) +"aNg" = ( +/obj/machinery/computer/cargo/request{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aNh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"aNi" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aNj" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 2 + }, +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aNk" = ( +/obj/structure/table/glass, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/pen{ + pixel_y = 8 + }, +/obj/item/pen, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/courtroom) +"aNl" = ( +/obj/structure/table/wood, +/obj/item/trash/plate, +/obj/item/reagent_containers/food/condiment/pack/ketchup{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/condiment/pack/mustard{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/candle{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aNm" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aNn" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/reagent_containers/food/drinks/shaker, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aNo" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/aiModule/supplied/oxygen{ + pixel_x = 2; + pixel_y = 10 + }, +/obj/item/aiModule/supplied/quarantine{ + pixel_x = 1; + pixel_y = 8 + }, +/obj/item/aiModule/zeroth/oneHuman{ + pixel_y = 4 + }, +/obj/effect/spawner/lootdrop/aimodule_harmful{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/aiModule/supplied/protectStation{ + pixel_x = -2 + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"aNp" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aNq" = ( +/obj/machinery/door/window/northright{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aNr" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"aNs" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aNt" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aNu" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/bar) +"aNv" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aNw" = ( +/obj/machinery/atmospherics/components/binary/valve, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"aNx" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/securearea, +/turf/open/floor/plating, +/area/engine/storage{ + name = "Canister Storage" + }) +"aNy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aNz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/door/window/northleft{ + name = "AI Chamber"; + req_one_access_txt = "65" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"aNA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/security/main) +"aNB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Port Bow Primary Hallway" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aNC" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/camera/motion{ + c_tag = "Telecomms Control Room"; + network = list("tcomms"); + pixel_x = 22 + }, +/obj/machinery/power/apc/highcap/fifteen_k{ + areastring = "area/tcommsat/computer"; + dir = 1; + name = "Telecomms Server APC"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"aND" = ( +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aNE" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aNF" = ( +/obj/machinery/computer/secure_data{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aNG" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 2 + }, +/obj/structure/table, +/obj/item/taperecorder, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aNH" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Exterior Engineering Access"; + req_access_txt = "11;13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"aNI" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aNJ" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aNK" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aNL" = ( +/turf/open/floor/plasteel, +/area/security/courtroom) +"aNM" = ( +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Security RC"; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aNN" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aNO" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/courtroom) +"aNP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aNQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/securearea, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/engine/storage{ + name = "Canister Storage" + }) +"aNR" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hop) +"aNS" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/courtroom) +"aNT" = ( +/turf/closed/wall/r_wall, +/area/teleporter) +"aNU" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aNV" = ( +/obj/structure/table, +/obj/item/locator, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aNW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"aNX" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/item/instrument/guitar, +/obj/machinery/camera{ + c_tag = "Bar - Port"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aNY" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=sec2"; + location = "bar" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aNZ" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aOa" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "E.V.A. Maintenance"; + req_one_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aOb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "E.V.A. Maintenance"; + req_one_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aOc" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aOd" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aOe" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"aOf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aOg" = ( +/obj/structure/chair/comfy/teal{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aOh" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aOi" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aOj" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aOk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aOl" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aOm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/structure/table/wood, +/obj/item/toy/windupToolbox, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aOn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aOo" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/hallway/primary/port/fore"; + dir = 4; + name = "Port Bow Primary Hallway APC"; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/maintenance/department/security) +"aOp" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 31 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aOq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/effect/turf_decal/delivery, +/obj/item/extinguisher, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aOr" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + pixel_y = 3 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/bridge) +"aOs" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/bridge) +"aOt" = ( +/obj/structure/chair/stool, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aOu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"aOv" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/gavelblock, +/obj/item/gavelhammer, +/obj/machinery/camera{ + c_tag = "Courtroom"; + network = list("ss13","rd") + }, +/turf/open/floor/carpet, +/area/security/courtroom) +"aOw" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aOx" = ( +/obj/structure/table/reinforced, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_x = 4 + }, +/obj/item/radio, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aOy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aOz" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Port Bow Hall"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aOA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/department/chapel) +"aOB" = ( +/turf/closed/wall/r_wall, +/area/security/courtroom) +"aOC" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aOD" = ( +/obj/machinery/door/airlock{ + name = "Catering"; + req_one_access_txt = "25;28" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"aOE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aOF" = ( +/obj/structure/closet/crate/freezer/surplus_limbs, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"aOG" = ( +/obj/structure/chair/comfy/teal{ + dir = 1 + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aOH" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"aOI" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"aOJ" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/fitness/cogpool) +"aOK" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"aOL" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/brig) +"aOM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aON" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aOO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aOP" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"aOQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aOR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aOS" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aOT" = ( +/turf/closed/wall, +/area/crew_quarters/fitness/cogpool) +"aOU" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/fitness/cogpool) +"aOV" = ( +/turf/open/floor/plasteel/stairs, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aOW" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot, +/obj/item/clothing/accessory/armband/hydro, +/obj/item/encryptionkey/headset_service, +/obj/item/clothing/under/rank/vice, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aOX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Pool" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/white/side, +/area/crew_quarters/fitness/cogpool) +"aOY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aOZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/bridge) +"aPa" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Pool" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white/side, +/area/crew_quarters/fitness/cogpool) +"aPb" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/hallway/primary/central) +"aPc" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aPd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aPe" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aPf" = ( +/obj/machinery/computer/upload/ai{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"aPg" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aPh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aPi" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aPj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aPk" = ( +/obj/effect/landmark/start/depsec/science, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aPl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aPm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aPn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/landmark/start/depsec/medical, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aPo" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aPp" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aPq" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aPr" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/hallway/primary/central) +"aPs" = ( +/obj/structure/closet/secure_closet/hop, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit, +/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit/skirt, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"aPt" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"aPu" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/bridge) +"aPv" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Equipment Room"; + req_access_txt = "1" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aPw" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hall - Courtroom Access"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/hallway/primary/central) +"aPx" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aPy" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aPz" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aPA" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aPB" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/paper/guides/jobs/security/courtroom, +/obj/item/pen, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/courtroom) +"aPC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aPD" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Equipment Room"; + req_access_txt = "1" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aPE" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/toy/talking/AI{ + name = "Nanotrasen-brand toy AI"; + pixel_y = 6 + }, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"aPF" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/locker) +"aPG" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 21 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aPH" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/security/courtroom) +"aPI" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aPJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=bar"; + location = "serv" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aPK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aPL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aPM" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/courtroom) +"aPN" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/space/nearstation) +"aPO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aPP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aPQ" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aPR" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aPS" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aPT" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aPU" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/machinery/camera{ + c_tag = "Bridge - Port Quarter"; + dir = 1 + }, +/obj/machinery/keycard_auth{ + pixel_y = -24 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aPV" = ( +/obj/machinery/photocopier, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aPW" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aPX" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/item/storage/fancy/donut_box, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aPY" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aPZ" = ( +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aQa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"aQb" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aQc" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aQd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aQe" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aQf" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aQg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aQh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aQi" = ( +/obj/structure/table, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aQj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"aQk" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aQl" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aQm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet/red, +/area/security/brig) +"aQn" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/courtroom) +"aQo" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/security/courtroom) +"aQp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aQq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/space/nearstation) +"aQr" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/space/nearstation) +"aQs" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aQt" = ( +/obj/machinery/pool/controller, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aQu" = ( +/obj/structure/table, +/obj/item/toy/beach_ball{ + pixel_y = 12 + }, +/obj/item/clothing/glasses/sunglasses{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aQv" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"aQw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aQx" = ( +/obj/machinery/camera{ + c_tag = "Engine Room - Port Bow" + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aQy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/chapel/main) +"aQz" = ( +/obj/structure/chair/comfy/teal, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aQA" = ( +/obj/structure/chair/stool, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aQB" = ( +/obj/structure/table, +/obj/item/clothing/glasses/sunglasses{ + pixel_y = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aQC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aQD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aQE" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aQF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/circuit/green, +/area/crew_quarters/cryopod) +"aQG" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aQH" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aQI" = ( +/obj/structure/chair/comfy/teal, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aQJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aQK" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aQL" = ( +/turf/closed/wall, +/area/maintenance/port/central) +"aQM" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aQN" = ( +/obj/structure/chair/comfy/brown, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aQO" = ( +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aQP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aQQ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aQR" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aQS" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/central) +"aQT" = ( +/obj/machinery/door/airlock/engineering{ + name = "Thermo-Electric Generator"; + req_one_access_txt = "10;24" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aQU" = ( +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"aQV" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aQW" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/captain) +"aQX" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aQY" = ( +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted, +/obj/structure/table, +/obj/item/toy/beach_ball/holoball/dodgeball, +/obj/item/toy/beach_ball/holoball/dodgeball, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aQZ" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Service Hallway"; + req_one_access_txt = "25;26;28;35" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"aRa" = ( +/obj/structure/table/wood, +/obj/item/clothing/gloves/color/yellow, +/obj/item/lighter, +/obj/item/multitool{ + pixel_x = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aRb" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/primary/central) +"aRc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/fitness/cogpool) +"aRd" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aRe" = ( +/obj/structure/table/wood, +/obj/item/storage/secure/briefcase, +/obj/item/assembly/flash, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aRf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aRg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aRh" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aRi" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aRj" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 26 + }, +/obj/machinery/sleep_console{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aRk" = ( +/obj/structure/disposalpipe/junction/yjunction, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aRl" = ( +/obj/structure/table/wood, +/obj/item/clothing/gloves/color/yellow, +/obj/item/restraints/handcuffs, +/obj/item/laser_pointer/blue, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aRm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aRn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aRo" = ( +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"aRp" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aRq" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aRr" = ( +/mob/living/simple_animal/chicken{ + name = "Kentucky"; + real_name = "Kentucky" + }, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"aRs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aRt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aRu" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aRv" = ( +/obj/structure/lattice, +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_x = -32 + }, +/turf/open/space/basic, +/area/space/nearstation) +"aRw" = ( +/obj/vehicle/ridden/secway, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/item/key/security, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"aRx" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aRy" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"aRz" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"aRA" = ( +/obj/structure/table/optable, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/reagent_containers/blood/random, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aRB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aRC" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"aRD" = ( +/turf/closed/wall/r_wall/rust, +/area/engine/gravity_generator) +"aRE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aRF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/engine/storage_shared{ + name = "Electrical Substation" + }) +"aRG" = ( +/obj/machinery/power/generator, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aRH" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/blobstart, +/obj/machinery/camera{ + c_tag = "Central Port Maintenance - Starboard"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aRI" = ( +/obj/structure/rack, +/obj/item/extinguisher, +/obj/item/crowbar, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aRJ" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"aRK" = ( +/obj/structure/sign/departments/holy{ + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aRL" = ( +/mob/living/simple_animal/crab/kreb, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"aRM" = ( +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"aRN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aRO" = ( +/obj/structure/disposalpipe/junction/yjunction, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aRP" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aRQ" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aRR" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aRS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aRT" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aRU" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/main) +"aRV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aRW" = ( +/turf/open/floor/plating, +/area/maintenance/port/central) +"aRX" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aRY" = ( +/turf/closed/wall/r_wall, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"aRZ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aSa" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSb" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aSc" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aSd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"aSe" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/chapel/main) +"aSf" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aSg" = ( +/obj/machinery/power/apc{ + name = "Security Maintainance APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/department/security) +"aSh" = ( +/obj/structure/table, +/obj/item/storage/fancy/donut_box, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet/red, +/area/security/brig) +"aSi" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSj" = ( +/obj/structure/target_stake, +/obj/item/target/syndicate, +/turf/open/floor/plasteel, +/area/science/circuit) +"aSk" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aSl" = ( +/obj/machinery/computer/teleporter{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"aSm" = ( +/obj/machinery/teleport/station, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"aSn" = ( +/obj/machinery/teleport/hub, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"aSo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aSp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aSq" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aSr" = ( +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aSs" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#d1dfff" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/camera{ + c_tag = "Bridge Access"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSt" = ( +/turf/closed/wall/r_wall, +/area/maintenance/department/eva) +"aSu" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aSv" = ( +/turf/closed/wall, +/area/space/nearstation) +"aSw" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aSx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aSy" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aSz" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aSA" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aSB" = ( +/obj/machinery/door/airlock/command{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSC" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aSD" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aSE" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aSF" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/surgical_drapes, +/obj/item/scalpel, +/obj/item/circular_saw{ + pixel_y = 16 + }, +/obj/item/hemostat, +/obj/item/retractor, +/obj/item/surgicaldrill, +/obj/item/cautery, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aSG" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"aSH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"aSI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aSJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/captain) +"aSK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aSL" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aSM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aSN" = ( +/obj/structure/table, +/obj/machinery/computer/secure_data/laptop{ + dir = 8; + pixel_x = -2; + pixel_y = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/carpet/red, +/area/security/brig) +"aSO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aSP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aSQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aSR" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/storage/tools) +"aSS" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "Chapel" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aST" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"aSU" = ( +/obj/structure/reagent_dispensers/beerkeg, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = -26 + }, +/obj/machinery/requests_console{ + department = "Bar"; + departmentType = 2; + name = "Bar RC"; + pixel_y = -30 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"aSV" = ( +/obj/item/toy/talking/AI, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/hallway/primary/central) +"aSW" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aSX" = ( +/obj/machinery/washing_machine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aSY" = ( +/obj/machinery/vending/medical, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aSZ" = ( +/obj/structure/chair/stool, +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aTa" = ( +/obj/structure/window/plasma/reinforced{ + dir = 4 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison) +"aTb" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Central Hall - Starboard"; + pixel_x = 22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aTc" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"aTd" = ( +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES" + }, +/turf/closed/wall/r_wall, +/area/space/nearstation) +"aTe" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aTf" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aTg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/brig) +"aTh" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/power/apc{ + name = "AI Upload Foyer APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"aTi" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aTj" = ( +/obj/machinery/pool/filter{ + pixel_y = 16 + }, +/turf/open/pool, +/area/crew_quarters/fitness/cogpool) +"aTk" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aTl" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"aTm" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"aTn" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/department/eva"; + dir = 8; + name = "EVA Maintenance APC"; + pixel_x = -24 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aTo" = ( +/obj/effect/landmark/start/captain, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"aTp" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/landmark/start/security_officer, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aTq" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aTr" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/captain) +"aTs" = ( +/turf/closed/wall, +/area/maintenance/department/eva) +"aTt" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/hop) +"aTu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aTv" = ( +/turf/open/pool, +/area/crew_quarters/fitness/cogpool) +"aTw" = ( +/obj/structure/pool/ladder{ + dir = 2; + pixel_y = 24 + }, +/turf/open/pool, +/area/crew_quarters/fitness/cogpool) +"aTx" = ( +/obj/structure/lattice, +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_y = -32 + }, +/turf/open/space/basic, +/area/space/nearstation) +"aTy" = ( +/obj/structure/lattice/catwalk, +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_y = -32 + }, +/turf/open/space/basic, +/area/space/nearstation) +"aTz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aTA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aTB" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"aTC" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aTD" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aTE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"aTF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/carpet/red, +/area/security/brig) +"aTG" = ( +/turf/closed/wall, +/area/router/public) +"aTH" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"aTI" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Public Router" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/router/public) +"aTJ" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen/fourcolor, +/obj/item/pen/fountain{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/item/stamp/hop, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) +"aTK" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Public Router" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/router/public) +"aTL" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Cryogenics"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/circuit/green, +/area/crew_quarters/cryopod) +"aTM" = ( +/turf/closed/wall/r_wall, +/area/router/public) +"aTN" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = -26 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-14" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aTO" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aTP" = ( +/obj/machinery/status_display/ai, +/turf/closed/wall/r_wall, +/area/security/courtroom) +"aTQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Thermo-Electric Generator" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"aTR" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/stamp, +/obj/item/stamp/denied{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet/red, +/area/security/brig) +"aTS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aTT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aTU" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aTV" = ( +/turf/closed/wall, +/area/gateway) +"aTW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aTX" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"aTY" = ( +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aTZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aUa" = ( +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aUb" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"aUc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aUd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aUe" = ( +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aUf" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"aUg" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aUh" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aUi" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/gateway) +"aUj" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/item/destTagger, +/obj/machinery/requests_console{ + department = "Public Router"; + name = "Public Router RC"; + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/public) +"aUk" = ( +/turf/closed/wall/r_wall, +/area/gateway) +"aUl" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/router/public) +"aUm" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/router/public) +"aUn" = ( +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/computer/cargo/request, +/turf/open/floor/plasteel, +/area/router/public) +"aUo" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/gateway) +"aUp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/closet/crate/science, +/turf/open/floor/plasteel, +/area/gateway) +"aUq" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/lounge/jazz) +"aUr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 10 + }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aUs" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aUt" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"aUu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/rack, +/turf/open/floor/plasteel, +/area/gateway) +"aUv" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/carpet/red, +/area/security/brig) +"aUw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Jazz Lounge" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"aUx" = ( +/obj/machinery/door/window/northright{ + name = "Game Room" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"aUy" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/official/do_not_question{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aUz" = ( +/obj/machinery/computer/telecomms/server{ + dir = 4; + network = "tcommsat" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/bridge) +"aUA" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aUB" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) +"aUC" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aUD" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"aUE" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"aUF" = ( +/obj/machinery/computer/bounty{ + dir = 1 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) +"aUG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aUH" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aUI" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aUJ" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aUK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aUL" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"aUM" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/junction, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aUN" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aUO" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/teleporter"; + dir = 4; + name = "Teleporter Room APC"; + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"aUP" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aUQ" = ( +/obj/structure/table, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aUR" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 8; + icon_state = "intact" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aUS" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"aUT" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aUU" = ( +/obj/machinery/pool/drain, +/turf/open/pool, +/area/crew_quarters/fitness/cogpool) +"aUV" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aUW" = ( +/obj/structure/pool/Lboard, +/turf/open/pool, +/area/crew_quarters/fitness/cogpool) +"aUX" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aUY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aUZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"aVa" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/security/detectives_office) +"aVb" = ( +/obj/structure/pool/Rboard, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aVc" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "applebush" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aVd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aVe" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aVf" = ( +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aVg" = ( +/obj/machinery/computer/cryopod{ + pixel_y = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/circuit/green, +/area/crew_quarters/cryopod) +"aVh" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/gateway) +"aVi" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/router/public) +"aVj" = ( +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"aVk" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/gateway) +"aVl" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"aVm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aVn" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/router/public) +"aVo" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/router/public) +"aVp" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (Common)"; + pixel_x = 28 + }, +/obj/machinery/camera{ + c_tag = "Public Router"; + dir = 8; + pixel_y = -22 + }, +/obj/machinery/button/massdriver{ + id = "public_out"; + pixel_x = 24; + pixel_y = -6 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "pubblock"; + name = "Router Access Control"; + pixel_x = 24; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/router/public) +"aVq" = ( +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/gateway) +"aVr" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/item/storage/box/cups, +/obj/structure/sign/poster/official/here_for_your_safety{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aVs" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/lounge/jazz) +"aVt" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) +"aVu" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"aVv" = ( +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aVw" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet/red, +/area/security/brig) +"aVx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"aVy" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aVz" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/carpet/red, +/area/security/brig) +"aVA" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/circuit/green, +/area/crew_quarters/cryopod) +"aVB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) +"aVC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"aVD" = ( +/obj/machinery/vending/clothing, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"aVE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Dormitory Toilets" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"aVF" = ( +/turf/open/floor/plasteel/white, +/area/science/circuit) +"aVG" = ( +/obj/machinery/ore_silo, +/obj/effect/turf_decal/bot_white, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/nuke_storage"; + dir = 4; + name = "Vault APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aVH" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/civilian"; + dir = 8; + name = "Civilian Wing Hallway APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aVI" = ( +/obj/structure/table, +/obj/item/storage/box/zipties, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/carpet/red, +/area/security/brig) +"aVJ" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"aVK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/space/nearstation) +"aVL" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"aVM" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/eva) +"aVN" = ( +/obj/machinery/vending, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aVO" = ( +/obj/structure/table, +/obj/item/tape, +/obj/item/taperecorder{ + pixel_x = -4 + }, +/obj/item/radio/off, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet/red, +/area/security/brig) +"aVP" = ( +/obj/structure/window/reinforced, +/obj/structure/displaycase/captain, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/captain) +"aVQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/department/security) +"aVR" = ( +/obj/structure/window/reinforced, +/obj/structure/filingcabinet, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/captain) +"aVS" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aVT" = ( +/obj/structure/lattice, +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: WASTE EJECTION"; + pixel_x = -32 + }, +/turf/open/space/basic, +/area/space/nearstation) +"aVU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aVV" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/obj/structure/cable{ + icon_state = "2-8" + }, +/mob/living/simple_animal/bot/secbot/beepsky{ + desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too. "; + health = 45; + maxHealth = 45; + name = "Officer Beepsky" + }, +/turf/open/floor/plating, +/area/maintenance/department/security) +"aVW" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/gateway) +"aVX" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/gloves/color/latex, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aVY" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"aVZ" = ( +/obj/machinery/computer/security/wooden_tv, +/turf/open/floor/plating, +/area/maintenance/department/security) +"aWa" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/department/security) +"aWb" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aWc" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aWd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aWe" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/carpet/red, +/area/security/brig) +"aWf" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aWg" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"aWh" = ( +/obj/effect/landmark/start/lawyer, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"aWi" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal"; + dir = 8; + name = "Cryogenics APC"; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/circuit/green, +/area/crew_quarters/cryopod) +"aWj" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) +"aWk" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"aWl" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"aWm" = ( +/turf/open/floor/plasteel, +/area/gateway) +"aWn" = ( +/obj/structure/closet/secure_closet/detective, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"aWo" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/cryopod) +"aWp" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/gateway) +"aWq" = ( +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/head/hardhat/red{ + pixel_y = 6 + }, +/obj/item/clothing/mask/gas, +/obj/item/extinguisher, +/obj/item/crowbar, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aWr" = ( +/obj/machinery/gateway{ + dir = 9 + }, +/turf/open/floor/engine, +/area/gateway) +"aWs" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aWt" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/central) +"aWu" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/fitness/cogpool"; + dir = 4; + name = "Pool APC"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/central) +"aWv" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aWw" = ( +/obj/structure/table/wood, +/obj/item/pinpointer/nuke, +/obj/item/card/id/captains_spare, +/obj/item/hand_tele, +/obj/item/disk/nuclear, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"aWx" = ( +/obj/structure/table/wood, +/obj/machinery/light, +/obj/item/storage/photo_album/Captain, +/obj/item/camera{ + pixel_y = -6 + }, +/obj/item/stamp/captain, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"aWy" = ( +/obj/machinery/suit_storage_unit/captain, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"aWz" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Power Monitoring"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/central) +"aWA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/central) +"aWB" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"aWC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Defendent's Chair"; + req_one_access_txt = "63" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aWD" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/item/cigbutt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/public) +"aWE" = ( +/obj/structure/sign/warning{ + name = "\improper WARNING: MOVING MACHINERY" + }, +/turf/closed/wall/r_wall, +/area/janitor) +"aWF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/janitor) +"aWG" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/clothing/shoes/magboots, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aWH" = ( +/obj/machinery/disposal/bin{ + name = "Corpse Delivery" + }, +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/delivery/red, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aWI" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aWJ" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"aWK" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aWL" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "public" + }, +/turf/open/floor/plating, +/area/router/public) +"aWM" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aWN" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/machinery/conveyor/auto{ + id = "public" + }, +/turf/open/floor/plating, +/area/router/public) +"aWO" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/ai_monitored/storage/eva) +"aWP" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aWQ" = ( +/obj/structure/closet/crate/rcd, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aWR" = ( +/obj/structure/lattice, +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_x = 32 + }, +/turf/open/space/basic, +/area/space/nearstation) +"aWS" = ( +/obj/structure/table, +/obj/item/storage/box/flashes{ + pixel_x = 8 + }, +/obj/item/storage/box/handcuffs{ + pixel_x = -8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/carpet/red, +/area/security/brig) +"aWT" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/window/reinforced/spawner/west, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/router/public"; + dir = 4; + name = "Public Router APC"; + pixel_x = 24 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/router/public) +"aWU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"aWV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) +"aWW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aWX" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical"; + dir = 8; + name = "Medical Booth APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aWY" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom{ + frequency = 1359; + name = "Station Intercom (Security)"; + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aWZ" = ( +/turf/closed/wall/r_wall, +/area/ai_monitored/nuke_storage) +"aXa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aXb" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) +"aXc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aXd" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) +"aXe" = ( +/obj/machinery/bookbinder, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/library) +"aXf" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/structure/table/wood, +/obj/machinery/light{ + dir = 1; + light_color = "#c1caff" + }, +/turf/open/floor/carpet, +/area/library) +"aXg" = ( +/obj/structure/bookcase/random/reference, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/library) +"aXh" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 6 + }, +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) +"aXi" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aXj" = ( +/obj/structure/transit_tube/station/reverse, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Transit Tube Access"; + pixel_x = 22 + }, +/obj/structure/transit_tube_pod{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aXk" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aXl" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aXm" = ( +/obj/machinery/gateway{ + dir = 1 + }, +/turf/open/floor/engine, +/area/gateway) +"aXn" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aXo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aXp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/reagent_dispensers/foamtank, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"aXq" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aXr" = ( +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aXs" = ( +/obj/machinery/gateway{ + dir = 5 + }, +/obj/machinery/camera{ + c_tag = "Research - Gateway Chamber"; + network = list("ss13","rd") + }, +/turf/open/floor/engine, +/area/gateway) +"aXt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/securearea, +/turf/open/floor/plating, +/area/gateway) +"aXu" = ( +/turf/closed/wall, +/area/security/courtroom/jury) +"aXv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aXw" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-08" + }, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"aXx" = ( +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"aXy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/ai_monitored/storage/eva) +"aXz" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aXA" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/security/courtroom/jury) +"aXB" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aXC" = ( +/obj/machinery/computer/bank_machine, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aXD" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/obj/item/stack/sheet/mineral/bananium{ + amount = 50 + }, +/obj/structure/closet/crate{ + name = "bananium crate" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aXE" = ( +/obj/effect/turf_decal/bot_white, +/obj/item/ship_in_a_bottle, +/obj/structure/closet/crate, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aXF" = ( +/obj/effect/turf_decal/bot_white/left, +/obj/item/stack/tile/brass/fifty, +/obj/structure/closet/crate{ + name = "brass crate" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aXG" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"aXH" = ( +/obj/structure/sign/warning/securearea, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"aXI" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aXJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aXK" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aXL" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/paper/fluff/jobs/security/beepsky_mom, +/turf/open/floor/plating, +/area/maintenance/department/security) +"aXM" = ( +/turf/closed/wall, +/area/maintenance/department/security) +"aXN" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/ai_monitored/storage/eva) +"aXO" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aXP" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Pool Maintenance"; + req_one_access_txt = "12" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/cogpool) +"aXQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/medical{ + name = "Medical Booth" + }) +"aXR" = ( +/turf/closed/wall, +/area/security/courtroom) +"aXS" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aXT" = ( +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + dir = 1 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aXU" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aXV" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/assembly/timer{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/stack/cable_coil/random{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/multitool, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aXW" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"aXX" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aXY" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aXZ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aYa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"aYb" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aYc" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/library) +"aYd" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aYe" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aYf" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/plasteel/white, +/area/gateway) +"aYg" = ( +/obj/effect/turf_decal/bot_white/right, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aYh" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/item/radio/off, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"aYi" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aYj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aYk" = ( +/turf/open/floor/circuit/green, +/area/ai_monitored/nuke_storage) +"aYl" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aYm" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"aYn" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/storage/box/smart_metal_foam, +/obj/item/wrench, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/assembly/prox_sensor, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aYo" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Security" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aYp" = ( +/obj/structure/fans/tiny/invisible, +/turf/open/space/basic, +/area/space) +"aYq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/security) +"aYr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "1" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/security) +"aYs" = ( +/obj/structure/rack, +/obj/item/tank/jetpack/carbondioxide, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aYt" = ( +/turf/open/floor/plating, +/area/maintenance/department/security) +"aYu" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aYv" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/item/analyzer, +/obj/item/storage/toolbox/electrical, +/obj/item/gps, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aYw" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aYx" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aYy" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark/side, +/area/bridge) +"aYz" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/landmark/start/ai/secondary, +/obj/machinery/camera{ + c_tag = "Vault"; + dir = 4; + network = list("vault") + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aYA" = ( +/obj/machinery/nuclearbomb/selfdestruct, +/obj/effect/turf_decal/box/white, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aYB" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aYC" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/detectives_office"; + dir = 1; + name = "Detective's Office APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"aYD" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aYE" = ( +/obj/item/beacon, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aYF" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aYG" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/library) +"aYH" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aYI" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/hallway/primary/central) +"aYJ" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aYK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Civilian Wing Hallway" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"aYL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"aYM" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aYN" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aYO" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"aYP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aYQ" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aYR" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"aYS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/security/brig) +"aYT" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/customs) +"aYU" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aYV" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"aYW" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/northright{ + name = "Customs Desk"; + req_access_txt = "57" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "HoPFore"; + name = "HoP Fore Desk Shutters" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"aYX" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/flashlight/lamp, +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "HoPFore"; + name = "HoP Fore Desk Shutters" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"aYY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Port Central Maintenance"; + req_one_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/security/courtroom) +"aYZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"aZa" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aZb" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/eva) +"aZc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aZd" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "E.V.A. Maintenance"; + req_access_txt = "18" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/storage/eva) +"aZe" = ( +/obj/structure/sign/warning/biohazard{ + pixel_y = 32 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"aZf" = ( +/obj/effect/turf_decal/bot_white/left, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aZg" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"aZh" = ( +/obj/structure/closet/crate, +/obj/machinery/light, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/window/reinforced/spawner/east, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/public) +"aZi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"aZj" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/caution{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/caution{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/caution{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/caution{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/extinguisher{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/extinguisher{ + pixel_x = -4; + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aZk" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/machinery/mass_driver{ + id = "public_out"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/router/public) +"aZl" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/window/reinforced/spawner/west, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/router/public) +"aZm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"aZn" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera/motion{ + c_tag = "EVA"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aZo" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"aZp" = ( +/obj/structure/lattice, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"aZq" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/bridge) +"aZr" = ( +/obj/structure/filingcabinet, +/obj/item/folder/documents, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aZs" = ( +/obj/structure/safe, +/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/lazarus_injector, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/effect/turf_decal/bot_white/left, +/obj/item/stack/sheet/mineral/diamond, +/obj/item/gun/ballistic/revolver/mateba, +/obj/item/clothing/under/soviet, +/obj/item/clothing/suit/armor/vest/russian_coat, +/obj/item/clothing/head/helmet/rus_helmet, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aZt" = ( +/obj/structure/closet/crate/necropolis/tendril, +/obj/effect/turf_decal/bot_white/right, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aZu" = ( +/obj/machinery/blackbox_recorder, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"aZv" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"aZw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/weldingtool, +/obj/item/flashlight, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aZx" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"aZy" = ( +/turf/closed/wall, +/area/lawoffice) +"aZz" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/lawoffice) +"aZA" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/lawoffice) +"aZB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"aZC" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel, +/area/lawoffice) +"aZD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; + dir = 1; + name = "Chapel Maintenance APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"aZE" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hallway/primary/central"; + dir = 8; + name = "Central Primary Hallway APC"; + pixel_x = -26 + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"aZF" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aZG" = ( +/obj/structure/lattice, +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_y = 32 + }, +/turf/open/space/basic, +/area/space/nearstation) +"aZH" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aZI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/plasteel, +/area/lawoffice) +"aZJ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"aZK" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/storage/toolbox/electrical, +/obj/item/weldingtool, +/obj/item/multitool{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/assembly/signaler{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"aZL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/poster/official/cohiba_robusto_ad{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"aZM" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/carpet, +/area/security/courtroom) +"aZN" = ( +/obj/machinery/computer/station_alert{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/lawoffice) +"aZO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/security) +"aZP" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/item/aiModule/reset/purge{ + pixel_y = 6 + }, +/obj/item/aiModule/reset{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/aiModule/core/full/custom{ + pixel_x = -4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"aZQ" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/plasteel{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"aZR" = ( +/turf/open/floor/plasteel/dark/corner, +/area/ai_monitored/storage/eva) +"aZS" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner, +/area/ai_monitored/storage/eva) +"aZT" = ( +/obj/structure/table/wood, +/obj/item/stack/packageWrap, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"aZU" = ( +/obj/structure/chair, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"aZV" = ( +/obj/structure/chair, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"aZW" = ( +/obj/structure/chair, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"aZX" = ( +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"aZY" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"aZZ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner, +/area/ai_monitored/storage/eva) +"baa" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"bab" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space/basic, +/area/space/nearstation) +"bac" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/item/storage/toolbox/emergency, +/obj/item/stack/sheet/rglass, +/obj/item/stack/sheet/rglass, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"bad" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/stripes/white/full, +/turf/open/floor/plasteel, +/area/lawoffice) +"bae" = ( +/turf/open/floor/plasteel, +/area/lawoffice) +"baf" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Plaza - Starboard"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bag" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/storage/belt/utility, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"bah" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/lawoffice) +"bai" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"baj" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"bak" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/lawoffice) +"bal" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/closed/wall/r_wall, +/area/space/nearstation) +"bam" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/turf/open/space/basic, +/area/space/nearstation) +"ban" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"bao" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/white/full, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"bap" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/obj/item/clothing/suit/hazardvest, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"baq" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bar" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bas" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bat" = ( +/obj/structure/chair/stool/bar, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/crew_quarters/bar) +"bau" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/library) +"bav" = ( +/obj/structure/chair/sofa/right, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/item/clipboard, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"baw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/lawoffice) +"bax" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/library) +"bay" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/library) +"baz" = ( +/obj/machinery/photocopier, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"baA" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/item/folder/blue, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"baB" = ( +/obj/structure/rack, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/head/hardhat/red{ + pixel_y = 6 + }, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/air, +/obj/item/extinguisher, +/obj/item/crowbar, +/turf/open/floor/plating, +/area/maintenance/department/security) +"baC" = ( +/obj/machinery/vending/cart, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"baD" = ( +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"baE" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/library) +"baF" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start/head_of_personnel, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"baG" = ( +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"baH" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/air, +/obj/item/crowbar, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/security) +"baI" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"baJ" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"baK" = ( +/obj/structure/table/reinforced, +/obj/machinery/light, +/obj/item/kitchen/fork, +/obj/item/reagent_containers/food/snacks/pastatomato, +/obj/machinery/newscaster/security_unit{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"baL" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"baM" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/air, +/obj/item/crowbar/large, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/security) +"baN" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"baO" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"baP" = ( +/obj/structure/closet/secure_closet/captains, +/obj/item/reagent_containers/food/drinks/flask/gold, +/obj/item/clothing/under/gimmick/rank/captain/suit, +/obj/item/clothing/under/gimmick/rank/captain/suit/skirt, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/item/clothing/head/centhat{ + name = "\improper green captain's hat" + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/captain) +"baQ" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"baR" = ( +/obj/structure/chair/sofa/left, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"baS" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"baT" = ( +/obj/machinery/iv_drip, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"baU" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"baV" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"baW" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"baX" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/displaycase, +/turf/open/floor/plasteel, +/area/library) +"baY" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"baZ" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bba" = ( +/obj/effect/landmark/start/assistant, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/circuit/green, +/area/crew_quarters/cryopod) +"bbb" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"bbc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/royalblue, +/area/bridge) +"bbd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bbe" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bbf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hop) +"bbg" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bbh" = ( +/turf/closed/wall, +/area/hallway/primary/aft) +"bbi" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"bbj" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/teleporter) +"bbk" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Telecomms Admin"; + departmentType = 5; + name = "Telecomms RC"; + pixel_y = 30 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bbl" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bbm" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/plasteel, +/area/lawoffice) +"bbn" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bbo" = ( +/obj/structure/closet/crate, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/plasteel, +/area/lawoffice) +"bbp" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/carpet, +/area/security/courtroom) +"bbq" = ( +/obj/effect/landmark/start/librarian, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/library) +"bbr" = ( +/obj/structure/filingcabinet/employment, +/turf/open/floor/plasteel, +/area/lawoffice) +"bbs" = ( +/obj/structure/table/wood, +/obj/item/camera, +/obj/item/pen/red, +/turf/open/floor/plasteel, +/area/lawoffice) +"bbt" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bbu" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plating, +/area/space/nearstation) +"bbv" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space/nearstation) +"bbw" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bbx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bby" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bbz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bbA" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bbB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bbC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bbD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bbE" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bbF" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bbG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bbH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"bbI" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bbJ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bbK" = ( +/obj/machinery/light, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bbL" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bbM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bbN" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bbO" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bbP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "HoP Office Maintenance"; + req_access_txt = "57" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/security/checkpoint/customs) +"bbQ" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"bbR" = ( +/obj/structure/closet/crate/hydroponics, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/item/reagent_containers/food/snacks/grown/wheat, +/obj/item/reagent_containers/food/snacks/grown/corn, +/obj/item/reagent_containers/food/snacks/grown/cocoapod, +/obj/item/reagent_containers/food/snacks/grown/chili, +/obj/item/reagent_containers/food/snacks/grown/soybeans, +/obj/item/reagent_containers/food/snacks/grown/tomato, +/obj/item/reagent_containers/food/snacks/grown/cherries, +/obj/structure/sign/poster/contraband/have_a_puff{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bbS" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/gateway) +"bbT" = ( +/turf/closed/wall/r_wall, +/area/quartermaster/sorting) +"bbU" = ( +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bbV" = ( +/turf/closed/wall/r_wall, +/area/quartermaster/warehouse) +"bbW" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/noticeboard{ + dir = 4; + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bbX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bbY" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bbZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bca" = ( +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"bcb" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bcc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/space/nearstation) +"bcd" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-14" + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"bce" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "public" + }, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor/preopen{ + id = "cargoblock"; + name = "Public Router" + }, +/turf/open/floor/plating, +/area/router/public) +"bcf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bcg" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor/preopen{ + id = "cargoblock"; + name = "Public Router" + }, +/turf/open/floor/plating, +/area/router/public) +"bch" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bci" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bcj" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + id = "cargo" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bck" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bcl" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bcm" = ( +/obj/machinery/computer/cargo/request, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bcn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bco" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/morgue{ + name = "Confession Booth (Chaplain)"; + req_access_txt = "22" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bcp" = ( +/obj/machinery/libraryscanner, +/obj/machinery/light, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/library) +"bcq" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bcr" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"bcs" = ( +/obj/machinery/pdapainter, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bct" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"bcu" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/camera{ + c_tag = "Aft Maintenance - Air Hookup" + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"bcv" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"bcw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/mixing) +"bcx" = ( +/obj/structure/chair/office/dark, +/obj/effect/landmark/start/head_of_personnel, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bcy" = ( +/turf/closed/wall/r_wall, +/area/science/mixing) +"bcz" = ( +/obj/machinery/computer/card{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bcA" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bcB" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/extinguisher, +/turf/open/floor/plasteel, +/area/gateway) +"bcC" = ( +/obj/machinery/power/apc{ + name = "Research Division Storage APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/gateway) +"bcD" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"bcE" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"bcF" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"bcG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bcH" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark/side, +/area/security/courtroom) +"bcI" = ( +/turf/closed/wall/r_wall, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"bcJ" = ( +/obj/machinery/button/door{ + id = "HoPAft"; + name = "Aft Shutters"; + pixel_x = -24; + pixel_y = -24; + req_access_txt = "57" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bcK" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Cryogenics" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/circuit/green, +/area/crew_quarters/cryopod) +"bcL" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"bcM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"bcN" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=bridge2"; + location = "court" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bcO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/space/nearstation) +"bcP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"bcQ" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bcR" = ( +/turf/closed/wall, +/area/hallway/primary/central) +"bcS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bcT" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bcU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Jury Room Maintainance"; + req_one_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/security/courtroom/jury) +"bcV" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bcW" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/requests_console{ + department = "Bar"; + departmentType = 2; + name = "Bar RC"; + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bcX" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/hallway/primary/central) +"bcY" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bcZ" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bda" = ( +/obj/structure/table, +/obj/item/hand_tele, +/obj/machinery/camera{ + c_tag = "Teleporter Room"; + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"bdb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/central) +"bdc" = ( +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bdd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Pool"; + dir = 1 + }, +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/toy/poolnoodle/red, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"bde" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/mixing) +"bdf" = ( +/turf/open/floor/plasteel, +/area/science/mixing) +"bdg" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bdh" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/toy/poolnoodle/blue, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"bdi" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bdj" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/hallway/primary/central) +"bdk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"bdl" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/closet/athletic_mixed, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/toy/poolnoodle/yellow, +/turf/open/floor/plasteel/white, +/area/crew_quarters/fitness/cogpool) +"bdm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bdn" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"bdo" = ( +/obj/structure/sign/warning/biohazard{ + pixel_x = -32 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 17 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bdp" = ( +/obj/structure/chair/stool, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bdq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bdr" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/hallway/primary/central) +"bds" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/chaplain, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bdt" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel, +/area/science/mixing) +"bdu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bdv" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bdw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/chapel/office) +"bdx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bdy" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/hallway/primary/central) +"bdz" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bdA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bdB" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb, +/obj/item/toy/eightball, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"bdC" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bdD" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bdE" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 8; + icon_state = "intact" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bdF" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bdG" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bdH" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bdI" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bdJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Telecommunications Control Room Maintenance"; + req_access_txt = "61" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/bridge) +"bdK" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bdL" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"bdM" = ( +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bdN" = ( +/obj/machinery/vending/snack/random, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Pool External Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/cogpool) +"bdP" = ( +/turf/closed/wall/mineral/wood, +/area/crew_quarters/fitness/cogpool) +"bdQ" = ( +/obj/machinery/door/airlock/command{ + name = "Bridge"; + req_access_txt = "19" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bdR" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bdS" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side, +/area/bridge) +"bdT" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/emergency, +/obj/item/hand_labeler, +/obj/item/hand_labeler, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bdU" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bdV" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bdW" = ( +/obj/structure/mineral_door/woodrustic{ + name = "Sauna" + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness/cogpool) +"bdX" = ( +/obj/structure/table/wood, +/obj/item/storage/box/donkpockets, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"bdY" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/mineral/wood, +/area/crew_quarters/fitness/cogpool) +"bdZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/quartermaster/sorting) +"bea" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/poster/official/report_crimes{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"beb" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/courtroom/jury) +"bec" = ( +/obj/structure/closet/crate/science, +/obj/item/stack/sheet/metal/ten, +/obj/item/stack/sheet/glass/five, +/obj/item/stack/rods/twentyfive, +/obj/item/target/syndicate, +/obj/item/target/alien, +/obj/item/target, +/obj/item/target/clown, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bed" = ( +/obj/machinery/suit_storage_unit/rd, +/turf/open/floor/plasteel, +/area/science/mixing) +"bee" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bef" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"beg" = ( +/obj/effect/turf_decal/bot_white, +/obj/structure/closet/crate, +/obj/item/clothing/suit/space/hardsuit/ert{ + desc = "A suit used by Nanotrasen Special Operatives."; + name = "NT-SO suit" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"beh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"bei" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bej" = ( +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bek" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"bel" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bem" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/science/mixing) +"ben" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"beo" = ( +/turf/open/floor/plasteel/white, +/area/gateway) +"bep" = ( +/obj/structure/table/wood, +/obj/item/tape, +/obj/item/taperecorder{ + pixel_x = -4 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hor"; + dir = 8; + name = "Research Director's Office APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"beq" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/science/mixing) +"ber" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bes" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/space/nearstation) +"bet" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"beu" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/aiModule/core/full/asimov{ + pixel_x = 2; + pixel_y = 10 + }, +/obj/effect/spawner/lootdrop/aimodule_neutral{ + pixel_x = 1; + pixel_y = 8 + }, +/obj/effect/spawner/lootdrop/aimodule_harmless{ + pixel_y = 6 + }, +/obj/item/aiModule/core/freeformcore{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/aiModule/supplied/freeform{ + pixel_x = -2 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bev" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (Common)"; + pixel_x = 28 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"bew" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"bex" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bey" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall/rust, +/area/space/nearstation) +"bez" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/office) +"beA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall, +/area/chapel/main) +"beB" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"beC" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"beD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/space/nearstation) +"beE" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/fans/tiny, +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/maintenance/disposal) +"beF" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"beG" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "Routing Depot - Fore Exterior"; + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"beH" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"beI" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/open/floor/plating, +/area/science/mixing) +"beJ" = ( +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"beK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"beL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"beM" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"beN" = ( +/obj/structure/table/glass, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"beO" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"beP" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"beQ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"beR" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"beS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"beT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"beU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"beV" = ( +/obj/machinery/button/door{ + id = "executionspaceblast"; + name = "Vent to Space"; + pixel_x = 25; + pixel_y = -5; + req_access_txt = "7" + }, +/obj/machinery/button/ignition{ + id = "executionburn"; + pixel_x = 24; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"beW" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"beX" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (Common)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"beY" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"beZ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bfa" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bfb" = ( +/obj/machinery/computer/card/minor/qm, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/keycard_auth{ + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bfc" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bfd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bfe" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bff" = ( +/turf/closed/wall/r_wall, +/area/quartermaster/qm) +"bfg" = ( +/obj/structure/closet, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"bfh" = ( +/turf/closed/wall/r_wall, +/area/science/server{ + name = "Computer Core" + }) +"bfi" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bfj" = ( +/mob/living/simple_animal/butterfly, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"bfk" = ( +/mob/living/simple_animal/kiwi, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"bfl" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bfm" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/security) +"bfn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bfo" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"bfp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4 + }, +/obj/machinery/sparker/toxmix{ + pixel_x = 25 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bfq" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp_home"; + name = "fore bay 1"; + roundstart_template = /datum/map_template/shuttle/labour/cog; + width = 9 + }, +/turf/open/space/basic, +/area/space) +"bfr" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#c1caff" + }, +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bfs" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "QM #1" + }, +/mob/living/simple_animal/bot/mulebot{ + beacon_freq = 1400; + home_destination = "QM #1"; + suffix = "#1" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bft" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side, +/area/hallway/primary/central) +"bfu" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/gateway) +"bfv" = ( +/turf/open/floor/plating, +/area/crew_quarters/fitness/cogpool) +"bfw" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (Common)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bfx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/gateway) +"bfy" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/crew_quarters/fitness/cogpool) +"bfz" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bfA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bfB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Chapel Morgue"; + req_access_txt = "22;27" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bfC" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/qm) +"bfD" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bfE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 5; + id = "mail" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bfF" = ( +/obj/machinery/space_heater, +/obj/structure/sign/poster/official/no_erp{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness/cogpool) +"bfG" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "EngiCargoConveyer" + }, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bfH" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/aft"; + dir = 8; + name = "Chapel APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel{ + icon_state = "chapel" + }, +/area/chapel/main) +"bfI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/highcap/fifteen_k{ + areastring = "/area/engine/storage_shared"; + dir = 1; + name = "Electrical Substation APC"; + pixel_y = 26 + }, +/turf/open/floor/plating, +/area/engine/storage_shared{ + name = "Electrical Substation" + }) +"bfJ" = ( +/turf/open/floor/wood, +/area/crew_quarters/fitness/cogpool) +"bfK" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/candle_box{ + pixel_x = -11; + pixel_y = 5 + }, +/obj/item/reagent_containers/food/drinks/bottle/holywater, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/office) +"bfL" = ( +/obj/structure/table/wood, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/office) +"bfM" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/structure/bedsheetbin/towel, +/turf/open/floor/wood, +/area/crew_quarters/fitness/cogpool) +"bfN" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bfO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Jazz Lounge" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bfP" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bfQ" = ( +/obj/machinery/light/small, +/obj/item/candle, +/obj/item/trash/candle, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bfR" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bfS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bfT" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/chapel/office) +"bfU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + dir = 4; + id = "EngiCargoConveyer" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bfV" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"bfW" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bfX" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 26 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bfY" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 4; + freq = 1400; + location = "QM #2" + }, +/mob/living/simple_animal/bot/mulebot{ + home_destination = "QM #2"; + suffix = "#2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bfZ" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bga" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bgb" = ( +/obj/structure/disposalpipe/sorting/mail{ + sortType = 30 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bgc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/sign/directions/command{ + dir = 8; + pixel_x = -32; + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 8 + }, +/area/hallway/primary/central) +"bgd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/hallway/primary/central) +"bge" = ( +/turf/closed/wall/r_wall, +/area/storage/primary) +"bgf" = ( +/turf/closed/wall, +/area/quartermaster/warehouse) +"bgg" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bgh" = ( +/obj/machinery/conveyor_switch{ + id = "EngiCargoConveyer" + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/sorting"; + dir = 8; + name = "Delivery Office APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bgi" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) +"bgj" = ( +/obj/structure/table, +/obj/item/weldingtool/mini, +/obj/item/light/tube, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bgk" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 4; + id = "mail" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bgl" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/multitool, +/turf/open/floor/plasteel, +/area/storage/primary) +"bgm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"bgn" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bgo" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/chapel/main) +"bgp" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"bgq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bgr" = ( +/obj/structure/table/wood, +/obj/item/clothing/head/helmet/skull, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"bgs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bgt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bgu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bgv" = ( +/obj/effect/landmark/xeno_spawn, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bgw" = ( +/turf/open/floor/engine, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"bgx" = ( +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bgy" = ( +/obj/structure/closet, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/courtroom/jury"; + dir = 4; + name = "Jury Room APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom/jury) +"bgz" = ( +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bgA" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bgB" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/lightreplacer, +/obj/item/lightreplacer, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/turf/open/floor/plasteel, +/area/storage/primary) +"bgC" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bgD" = ( +/obj/machinery/atmospherics/components/binary/valve, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bgE" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bgF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Port Central Maintenance"; + req_one_access_txt = "12" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bgG" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/hallway/primary/central) +"bgH" = ( +/obj/machinery/pipedispenser, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bgI" = ( +/obj/machinery/pipedispenser/disposal, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bgJ" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/cogpool) +"bgK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bgL" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bgM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"bgN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Port Central Maintenance"; + req_one_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bgO" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/delivery, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/wrench, +/obj/item/pipe_dispenser, +/mob/living/simple_animal/sloth/paperwork, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bgP" = ( +/obj/item/analyzer, +/obj/item/caution, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bgQ" = ( +/turf/closed/wall, +/area/quartermaster/qm) +"bgR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/closed/wall/mineral/wood, +/area/crew_quarters/fitness/cogpool) +"bgS" = ( +/obj/machinery/computer/bounty, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bgT" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bgU" = ( +/obj/machinery/computer/cargo, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bgV" = ( +/turf/closed/wall/r_wall, +/area/quartermaster/storage) +"bgW" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/hor) +"bgX" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) +"bgY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"bgZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bha" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness/cogpool) +"bhb" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bhc" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness/cogpool) +"bhd" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bhe" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bhf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/office) +"bhg" = ( +/obj/structure/chair/stool, +/obj/machinery/camera{ + c_tag = "Pool - Sauna"; + dir = 8; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness/cogpool) +"bhh" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/security/courtroom) +"bhi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/head/cone, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bhj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Kitchen"; + req_access_txt = "28" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bhk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bhl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/mineral/wood, +/area/crew_quarters/fitness/cogpool) +"bhm" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"bhn" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bho" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/turf/open/floor/plasteel, +/area/storage/primary) +"bhp" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bhq" = ( +/obj/structure/chair/sofa/right, +/obj/item/instrument/recorder, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bhr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bhs" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"bht" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"bhu" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/recharge_station, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bhv" = ( +/obj/structure/chair/sofa/left, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bhw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/cc64k_ad{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bhx" = ( +/obj/machinery/vending/coffee, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"bhy" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bhz" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bhA" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bhB" = ( +/obj/structure/closet/secure_closet/quartermaster, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/item/clothing/suit/space/eva, +/obj/item/clothing/head/helmet/space/eva, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bhC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bhD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Chapel Air Hookup"; + req_one_access_txt = "12;22" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bhE" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bhF" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bhG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bhH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bhI" = ( +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"bhJ" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bhK" = ( +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bhL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Waste Disposal"; + req_one_access_txt = "12;50" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bhM" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bhN" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/item/twohanded/required/kirbyplants/dead, +/turf/open/floor/plasteel, +/area/security/main) +"bhO" = ( +/obj/structure/chair/sofa/right, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bhP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bhQ" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bhR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-21"; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"bhS" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Port Docking Bay" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bhT" = ( +/obj/structure/sign/departments/engineering, +/turf/closed/wall, +/area/hallway/primary/aft) +"bhU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/janitor) +"bhV" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/pen/blue{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen/red{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"bhW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"bhX" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bhY" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bhZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bia" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bib" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bic" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (Common)"; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bid" = ( +/obj/structure/chair/sofa/left, +/mob/living/simple_animal/pet/cat/Proc, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bie" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bif" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"big" = ( +/turf/closed/wall, +/area/science/circuit) +"bih" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor{ + dir = 1; + id = "mail" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bii" = ( +/obj/structure/table/glass, +/obj/item/storage/box/matches, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bij" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bik" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bil" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 6; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bim" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bin" = ( +/obj/machinery/computer/mecha{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bio" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bip" = ( +/obj/effect/landmark/start/quartermaster, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"biq" = ( +/obj/machinery/computer/cargo/request{ + dir = 1 + }, +/obj/machinery/keycard_auth{ + pixel_x = 24; + pixel_y = -8 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) +"bir" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bis" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bit" = ( +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"biu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"biv" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"biw" = ( +/obj/machinery/computer/cargo{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/button/door{ + id = "QMLoadDoor"; + layer = 4; + name = "Cargo Loading Doors"; + pixel_x = 24; + pixel_y = 6 + }, +/obj/machinery/button/door{ + id = "QMUnloadDoor"; + layer = 4; + name = "Cargo Unloading Doors"; + pixel_x = 24; + pixel_y = -6 + }, +/obj/machinery/camera{ + c_tag = "Supply - Cargo Bay"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bix" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"biy" = ( +/obj/machinery/vending/clothing, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"biz" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"biA" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"biB" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/telescreen/rd, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"biC" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"biD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"biE" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"biF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medical)"; + pixel_y = -28 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"biG" = ( +/obj/structure/displaycase/labcage, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/camera{ + c_tag = "Research Director's Office - Starboard"; + network = list("ss13","rd") + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"biH" = ( +/obj/machinery/light/small, +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"biI" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-20"; + pixel_y = 3 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"biJ" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"biK" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/science/mixing) +"biL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/closed/wall, +/area/crew_quarters/heads/chief) +"biM" = ( +/obj/machinery/vending/assist, +/obj/effect/turf_decal/bot, +/obj/structure/sign/poster/official/foam_force_ad{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"biN" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "recycler" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"biO" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"biP" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/gateway) +"biQ" = ( +/turf/closed/wall, +/area/crew_quarters/heads/chief) +"biR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "CEPrivacy"; + name = "CE Privacy Shutters" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"biS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"biT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"biU" = ( +/obj/machinery/gateway{ + dir = 10 + }, +/turf/open/floor/engine, +/area/gateway) +"biV" = ( +/turf/closed/wall, +/area/storage/primary) +"biW" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"biX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"biY" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"biZ" = ( +/turf/closed/wall/r_wall, +/area/quartermaster/office) +"bja" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bjb" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/wrench, +/obj/item/t_scanner, +/turf/open/floor/plasteel, +/area/storage/primary) +"bjc" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/stack/sheet/plasteel/twenty, +/turf/open/floor/plasteel, +/area/storage/primary) +"bjd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bje" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bjf" = ( +/obj/machinery/pipedispenser/disposal/transit_tube, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bjg" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bjh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "E.V.A. Maintenance"; + req_one_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bji" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bjj" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bjk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bjl" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall/r_wall, +/area/quartermaster/office) +"bjm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bjn" = ( +/turf/closed/wall/r_wall, +/area/security/checkpoint/supply) +"bjo" = ( +/obj/machinery/rnd/production/techfab/department/cargo, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bjp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bjq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/conveyor{ + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bjr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bjs" = ( +/obj/machinery/computer/robotics{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bjt" = ( +/obj/item/reagent_containers/food/snacks/muffin/berry, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bju" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom{ + frequency = 1359; + name = "Station Intercom (Security)"; + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bjv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/security/courtroom/jury) +"bjw" = ( +/obj/machinery/computer/card{ + dir = 8 + }, +/obj/machinery/keycard_auth{ + pixel_x = 8; + pixel_y = -24 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"bjx" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/bot, +/obj/item/defibrillator/loaded, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bjy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"bjz" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bjA" = ( +/obj/machinery/camera{ + c_tag = "EVA Maintenace - Fore"; + network = list("ss13","rd") + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bjB" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/folder/red, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bjC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Jury Room" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/courtroom/jury) +"bjD" = ( +/turf/closed/wall/r_wall, +/area/security/courtroom/jury) +"bjE" = ( +/obj/structure/table, +/obj/structure/extinguisher_cabinet{ + pixel_y = 29 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = 5; + pixel_y = -1 + }, +/obj/item/phone{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Control Room" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/engine/atmos) +"bjF" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/checkpoint/supply) +"bjG" = ( +/obj/structure/rack, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bjH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bjI" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bjJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bjK" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plasteel, +/area/storage/primary) +"bjL" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/fragile, +/obj/item/clothing/head/helmet/space/fragile, +/obj/item/tank/internals/air, +/obj/item/flashlight, +/obj/item/reagent_containers/spray/cleaner, +/obj/machinery/camera{ + c_tag = "Pool Maintenance"; + dir = 8; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/crew_quarters/fitness/cogpool) +"bjM" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Atmospherics Storage"; + req_one_access_txt = "24;31" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bjN" = ( +/obj/machinery/vending/autodrobe/all_access, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bjO" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/item/instrument/piano_synth, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bjP" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bjQ" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/assistant/override, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bjR" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bjS" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/bot, +/obj/structure/sign/poster/official/cohiba_robusto_ad{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bjT" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bjU" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bjV" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bjW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bjX" = ( +/obj/structure/rack, +/obj/machinery/button/door{ + id = "marketdoor"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bjY" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bjZ" = ( +/obj/structure/window/reinforced, +/obj/machinery/shower{ + name = "emergency shower"; + pixel_y = 12 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/westright{ + name = "Emergency Shower" + }, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plasteel, +/area/storage/primary) +"bka" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"bkb" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor{ + dir = 9; + id = "mail" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bkc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light, +/obj/machinery/conveyor_switch/oneway{ + id = "DeliveryConveyer" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bkd" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 8; + id = "mail" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bke" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=sec1"; + location = "bridge2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bkf" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"bkg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/mineral/stacking_unit_console{ + machinedir = 2 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"bkh" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bki" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bkj" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor_switch/oneway{ + id = "mail" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bkk" = ( +/obj/machinery/autolathe, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bkl" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/fragile, +/obj/item/clothing/head/helmet/space/fragile, +/obj/item/tank/internals/air, +/obj/item/flashlight, +/obj/item/storage/belt/utility, +/obj/item/extinguisher, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkm" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Supply - Delivery Office Fore"; + network = list("ss13","rd") + }, +/obj/structure/closet/emcloset, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bkn" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bko" = ( +/turf/open/floor/plasteel, +/area/science/circuit) +"bkp" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "QMLoad" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bkq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/conveyor/inverted{ + dir = 9; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bkr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/obj/machinery/door/poddoor{ + id = "QMLoadDoor"; + name = "Cargo Loading Door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bks" = ( +/obj/structure/plasticflaps, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bkt" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/obj/machinery/door/poddoor{ + id = "QMLoadDoor"; + name = "Cargo Loading Door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bku" = ( +/obj/structure/closet, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bkv" = ( +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bkw" = ( +/obj/structure/bookcase/random/fiction, +/obj/effect/spawner/lootdrop/gambling, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bkx" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bky" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/research_director, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"bkz" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"bkA" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Bridge - Starboard Quarter"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bkB" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bkC" = ( +/obj/machinery/modular_computer/console/preset/research{ + dir = 8 + }, +/obj/item/reagent_containers/food/drinks/coffee, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bkD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "CEPrivacy"; + name = "CE Privacy Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"bkE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bkF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/department/security) +"bkG" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/closet/crate/engineering, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/item/twohanded/rcl/pre_loaded, +/obj/item/stock_parts/cell/high/plus, +/obj/item/clothing/glasses/meson, +/obj/item/cartridge/atmos, +/obj/item/cartridge/engineering, +/obj/item/cartridge/engineering, +/obj/item/cartridge/engineering, +/obj/machinery/camera{ + c_tag = "Chief Engineer's Office"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"bkH" = ( +/obj/machinery/computer/atmos_control{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/checker, +/area/engine/atmos) +"bkI" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/primary) +"bkJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"bkK" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/departments/security{ + pixel_x = -32 + }, +/obj/item/cigbutt, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bkL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bkM" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bkN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bkO" = ( +/obj/machinery/vending/kink, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bkP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bkQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bkR" = ( +/obj/machinery/camera{ + c_tag = "EVA Maintenance - Aft"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bkS" = ( +/obj/machinery/vending/sustenance, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bkT" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = 26 + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"bkU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bkV" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bkW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Pool Exterior Access"; + req_access_txt = "13" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/crew_quarters/fitness/cogpool) +"bkX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bkY" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/closet/crate/engineering, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bkZ" = ( +/turf/open/floor/engine/n2, +/area/engine/atmos) +"bla" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"blb" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"blc" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bld" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ble" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/airlock/external{ + name = "Cargo Freighter Dock"; + req_access_txt = "31" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel's Office"; + req_access_txt = "57" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hop) +"blg" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Cargo Freighter Dock"; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bli" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blj" = ( +/obj/structure/sign/warning/docking, +/turf/closed/wall/r_wall, +/area/space/nearstation) +"blk" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bll" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blm" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bln" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blo" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blp" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/exit) +"blq" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/vending/wardrobe/engi_wardrobe, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plasteel, +/area/storage/primary) +"blr" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bls" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/sign/poster/official/ion_rifle{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"blt" = ( +/obj/machinery/computer/card/minor/ce{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"blu" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"blv" = ( +/obj/machinery/computer/operating, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"blw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"blx" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/surgical_drapes, +/obj/item/scalpel, +/obj/item/circular_saw{ + pixel_y = 16 + }, +/obj/item/hemostat, +/obj/item/retractor, +/obj/item/surgicaldrill, +/obj/item/cautery, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bly" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"blz" = ( +/obj/machinery/computer/atmos_control{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"blA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"blB" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/fitness/cogpool) +"blE" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blF" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blG" = ( +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/mixing) +"blH" = ( +/obj/structure/chair, +/obj/machinery/button/massdriver{ + id = "toxinsdriver"; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"blI" = ( +/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/mixing) +"blJ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "marketdoor" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blL" = ( +/turf/open/floor/engine/o2, +/area/engine/atmos) +"blM" = ( +/turf/open/floor/engine/air, +/area/engine/atmos) +"blN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"blO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"blP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall/rust, +/area/maintenance/department/chapel) +"blQ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/northleft{ + name = "Delivery Office"; + req_one_access_txt = "31;48" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"blR" = ( +/obj/machinery/computer/bounty{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"blS" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/chair, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"blT" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"blU" = ( +/obj/machinery/gateway, +/turf/open/floor/engine, +/area/gateway) +"blV" = ( +/obj/machinery/computer/cargo{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"blW" = ( +/obj/structure/table, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/crowbar, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"blX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"blY" = ( +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"blZ" = ( +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "QMUnload" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bma" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/landmark/start/assistant/override, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bmb" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) +"bmc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Security's Office"; + req_one_access_txt = "58" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hos) +"bmd" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/research_director, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"bme" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bmf" = ( +/obj/structure/sign/departments/evac, +/turf/closed/wall/r_wall, +/area/hallway/secondary/exit) +"bmg" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmj" = ( +/obj/structure/closet/secure_closet/RD, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bmk" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/dice/d6, +/obj/machinery/camera{ + c_tag = "Jazz Lounge"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bml" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bmm" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"bmn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmo" = ( +/turf/closed/wall/rust, +/area/maintenance/department/chapel) +"bmp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bmq" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=court"; + location = "bridge1" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmr" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bms" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/barthpot, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"bmt" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bmu" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bmv" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bmw" = ( +/obj/machinery/suit_storage_unit/ce, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"bmx" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bmy" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + locked = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmz" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/storage/primary) +"bmA" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 10; + pixel_y = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/hallway/secondary/civilian) +"bmB" = ( +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bmC" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmD" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmE" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bmF" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/closed/wall, +/area/crew_quarters/fitness/cogpool) +"bmG" = ( +/obj/machinery/gateway{ + dir = 6 + }, +/turf/open/floor/engine, +/area/gateway) +"bmH" = ( +/obj/machinery/computer/upload/borg{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bmI" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/chapel/office"; + dir = 4; + name = "Chapel Office APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bmJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/cogpool) +"bmK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/fitness/cogpool) +"bmL" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bmM" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"bmN" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Waste Disposal Maintenance"; + req_one_access_txt = "12;50" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bmO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/lounge/jazz) +"bmP" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/departments/engineering{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bmQ" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Engineering Foyer - Starboard"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bmR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Teleport Access"; + req_one_access_txt = "17;19" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"bmS" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bmT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) +"bmU" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/item/instrument/saxophone, +/obj/item/reagent_containers/food/drinks/bottle/vermouth, +/obj/item/clothing/glasses/sunglasses, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bmV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"bmW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bmX" = ( +/obj/structure/table, +/obj/item/folder/yellow{ + pixel_y = 4 + }, +/obj/item/pen{ + pixel_y = 4 + }, +/obj/item/clothing/gloves/color/latex{ + pixel_y = 4 + }, +/obj/item/clothing/mask/surgical{ + pixel_y = 4 + }, +/obj/item/healthanalyzer, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bmY" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/maintenance/disposal) +"bmZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bna" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnb" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"bnc" = ( +/obj/structure/sign/directions/command{ + dir = 1; + pixel_x = -32; + pixel_y = 32 + }, +/obj/structure/sign/directions/security{ + dir = 1; + pixel_x = -32; + pixel_y = 40 + }, +/obj/structure/sign/directions/science{ + pixel_x = -32; + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnd" = ( +/obj/structure/table/wood, +/obj/item/storage/photo_album, +/obj/item/storage/box/matches, +/obj/item/storage/fancy/cigarettes/cigpack_robust, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"bne" = ( +/obj/machinery/conveyor/auto{ + dir = 4; + id = "disposal" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bnf" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bng" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/conveyor{ + dir = 4; + id = "recycler" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bnh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor{ + id = "DeliveryDoor"; + name = "Delivery Door" + }, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bni" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/clipboard, +/obj/item/stamp, +/obj/item/stamp/denied{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen/red, +/obj/item/pen/blue{ + pixel_x = -5; + pixel_y = -3 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bnj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bnk" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bnl" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bnm" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"bnn" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/door/window/southleft{ + name = "Cargo Desk"; + req_access_txt = "31" + }, +/obj/item/folder, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bno" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"bnp" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bnq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bnr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bns" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/maintenance/department/eva) +"bnt" = ( +/obj/machinery/camera{ + c_tag = "Electrical Substation"; + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/storage_shared{ + name = "Electrical Substation" + }) +"bnu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"bnv" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L1" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"bnx" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L3" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bny" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/item/paper_bin, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/pen, +/obj/item/wirecutters, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bnz" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L5" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnA" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L7" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bnC" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Cargo Freighter Dock"; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bnD" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L9" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/crowbar, +/obj/structure/disposalpipe/junction/flip, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bnF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bnG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/bridge) +"bnH" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/fore) +"bnI" = ( +/obj/structure/bed, +/obj/effect/landmark/start/head_of_personnel, +/obj/item/bedsheet/hop, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"bnJ" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bnK" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"bnL" = ( +/obj/item/beacon, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"bnM" = ( +/obj/effect/turf_decal/delivery, +/obj/item/grown/bananapeel, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bnN" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bnO" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/hallway/secondary/exit) +"bnP" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L11" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnQ" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/closed/wall/r_wall, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"bnR" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L13" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bnS" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bnT" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/crew_quarters/fitness/cogpool) +"bnU" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/fragile, +/obj/item/clothing/head/helmet/space/fragile, +/obj/item/tank/internals/air, +/obj/item/wrench, +/obj/item/flashlight, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bnV" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/nuke_storage) +"bnW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"bnX" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/closet/secure_closet/security/cargo, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bnY" = ( +/obj/structure/flora/ausbushes/sunnybush, +/turf/open/floor/grass, +/area/hallway/secondary/exit) +"bnZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/pen/blue, +/obj/machinery/camera{ + c_tag = "Customs - Fore"; + dir = 4 + }, +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "HoPFore"; + name = "HoP Fore Desk Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"boa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 5 + }, +/turf/closed/wall, +/area/crew_quarters/heads/chief) +"bob" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/crew_quarters/heads/chief) +"boc" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 10 + }, +/turf/closed/wall, +/area/crew_quarters/heads/chief) +"bod" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southleft{ + name = "Primary Tool Storage Desk"; + req_access_txt = "11" + }, +/obj/item/folder/yellow, +/turf/open/floor/plasteel, +/area/storage/primary) +"boe" = ( +/obj/machinery/door/airlock/vault{ + name = "Vault Door"; + req_access_txt = "53" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/nuke_storage) +"bof" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Pool Exterior Access"; + req_access_txt = "13" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating, +/area/crew_quarters/fitness/cogpool) +"bog" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/grass, +/area/hallway/secondary/exit) +"boh" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "disposal" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"boi" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/fitness/cogpool) +"boj" = ( +/obj/structure/rack, +/obj/item/caution, +/obj/item/caution, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bok" = ( +/obj/structure/table/wood, +/obj/item/paicard, +/obj/item/toy/sword, +/obj/item/toy/figure/assistant, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bol" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/teleporter) +"bom" = ( +/obj/structure/flora/ausbushes/leafybush, +/turf/open/floor/grass, +/area/hallway/secondary/exit) +"bon" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"boo" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/hallway/primary/central) +"bop" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/door/window/eastleft{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"boq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bor" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bos" = ( +/obj/structure/table, +/obj/item/stack/sheet/cardboard/fifty, +/obj/item/stack/wrapping_paper, +/obj/item/stack/sheet/metal, +/obj/item/stack/sheet/glass, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bot" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bou" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bov" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bow" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMUnload" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"box" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"boy" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) +"boz" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"boA" = ( +/turf/closed/wall, +/area/security/detectives_office) +"boB" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMUnload" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"boC" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/structure/sign/departments/cargo{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"boD" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMUnload" + }, +/obj/machinery/door/poddoor{ + id = "QMUnloadDoor"; + name = "Cargo Unloading Door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"boE" = ( +/obj/structure/plasticflaps, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMUnload" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"boF" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMUnload" + }, +/obj/machinery/door/poddoor{ + id = "QMUnloadDoor"; + name = "Cargo Unloading Door" + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"boG" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/weldingtool, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/structure/sign/departments/engineering{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"boH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"boI" = ( +/turf/closed/wall/r_wall, +/area/quartermaster/miningoffice) +"boJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/obj/machinery/computer/security/telescreen/toxins{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"boK" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/miningoffice) +"boL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"boM" = ( +/obj/machinery/mineral/ore_redemption{ + input_dir = 4; + output_dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"boN" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"boO" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/item/storage/box/drinkingglasses{ + pixel_y = 4 + }, +/obj/structure/table/wood/fancy, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/crew_quarters/bar) +"boP" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"boQ" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"boR" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"boS" = ( +/obj/structure/sign/mining, +/turf/closed/wall/r_wall, +/area/quartermaster/miningoffice) +"boT" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"boU" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"boV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"boW" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"boX" = ( +/obj/item/beacon, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"boY" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"boZ" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"bpa" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/door/window/westleft{ + name = "Treatment Center"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bpb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bpc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bpd" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bpe" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/door/window/eastright{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bpf" = ( +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bpg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bph" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bpi" = ( +/obj/structure/flora/junglebush/b, +/turf/open/floor/grass, +/area/hallway/secondary/exit) +"bpj" = ( +/obj/structure/flora/junglebush, +/turf/open/floor/grass, +/area/hallway/secondary/exit) +"bpk" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bpl" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/autolathe/secure{ + name = "public autolathe" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bpm" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/head/hardhat/red{ + pixel_y = 6 + }, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/air, +/obj/item/extinguisher, +/obj/item/crowbar, +/turf/open/floor/plating, +/area/maintenance/aft) +"bpn" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bpo" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet/red, +/area/security/brig) +"bpp" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bpq" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/engine/air, +/area/engine/atmos) +"bpr" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bps" = ( +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/lounge/jazz"; + name = "Jazz Lounge APC"; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bpt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"bpu" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bpv" = ( +/turf/closed/wall/r_wall, +/area/engine/break_room) +"bpw" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L6" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bpx" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bpy" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/landmark/observer_start, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bpz" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bpA" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/aft) +"bpB" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bpC" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L10" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bpD" = ( +/turf/open/floor/plating, +/area/maintenance/aft) +"bpE" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/aft) +"bpF" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L12" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bpG" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L14" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bpH" = ( +/obj/machinery/jukebox, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"bpI" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bpJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/lounge/jazz) +"bpK" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) +"bpL" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/closed/wall/r_wall, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bpM" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, +/area/science/mixing) +"bpN" = ( +/obj/structure/grille, +/obj/machinery/power/terminal, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bpO" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bpP" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bpQ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bpR" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/mixing) +"bpS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Security RC"; + pixel_y = -32 + }, +/turf/open/floor/carpet/red, +/area/security/brig) +"bpT" = ( +/obj/structure/window/reinforced/spawner, +/turf/open/floor/grass, +/area/hallway/secondary/exit) +"bpU" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) +"bpV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/atmos{ + name = "Aft Air Hookup"; + req_access_txt = "12;24" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"bpW" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bpX" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/sign/poster/official/obey{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bpY" = ( +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bpZ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"bqa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bqb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/civilian) +"bqc" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/medical/medbay/lobby) +"bqd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqe" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall, +/area/medical/medbay/lobby) +"bqf" = ( +/obj/machinery/conveyor/auto{ + dir = 8; + id = "disposal" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bqg" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/conveyor/auto{ + dir = 8; + id = "disposal" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bqh" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) +"bqi" = ( +/obj/machinery/button/door{ + id = "HoPFore"; + name = "Fore Shutters"; + pixel_x = -24; + pixel_y = 24; + req_access_txt = "57" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bqj" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bql" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/secondary/civilian) +"bqm" = ( +/turf/closed/wall, +/area/medical/medbay/lobby) +"bqn" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqo" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bqp" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"bqq" = ( +/turf/closed/wall, +/area/science/robotics/lab) +"bqr" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bqs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/science/robotics/lab) +"bqt" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/mask/surgical, +/obj/item/healthanalyzer, +/obj/item/clothing/neck/stethoscope, +/obj/item/razor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bqu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Waste Disposal Maintenance"; + req_one_access_txt = "12;50" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bqv" = ( +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"bqw" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "EngiLockdown"; + name = "Engineering Emergency Lockdown" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/camera{ + c_tag = "Engineering - Entrance"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bqx" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bqy" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/camera{ + c_tag = "Supply - Mining Office"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bqz" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bqA" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqB" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Library Access" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/library) +"bqC" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bqD" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bqE" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bqF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "E.V.A. Maintenance"; + req_one_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bqG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bqH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bqI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel, +/area/science/mixing) +"bqJ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/machinery/airlock_sensor/incinerator_toxmix{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/engine, +/area/science/mixing) +"bqK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqL" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"bqM" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/item/storage/pill_bottle/dice, +/obj/item/toy/cards/deck, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"bqN" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bqO" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bqP" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bqQ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/corner, +/area/hallway/secondary/entry) +"bqR" = ( +/obj/machinery/computer/operating{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bqS" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bqT" = ( +/obj/machinery/computer/crew, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bqU" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"bqV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bqW" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bqX" = ( +/turf/closed/wall/mineral/titanium/nosmooth, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bqY" = ( +/obj/structure/sign/directions/medical{ + pixel_x = -32; + pixel_y = -24 + }, +/obj/structure/sign/directions/evac{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/structure/sign/directions/supply{ + pixel_x = -32; + pixel_y = -40 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bqZ" = ( +/obj/machinery/mineral/equipment_vendor, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bra" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"brb" = ( +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/dark, +/area/science/server{ + name = "Computer Core" + }) +"brc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"brd" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bre" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/central) +"brf" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"brg" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"brh" = ( +/obj/structure/sign/departments/custodian{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"bri" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/hallway/secondary/civilian) +"brj" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Central Starboard Maintenance"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/civilian) +"brk" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/vending/cola/random, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"brl" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/paper_bin, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/obj/item/reagent_containers/dropper, +/obj/item/stamp/denied{ + pixel_x = -8; + pixel_y = -2 + }, +/obj/item/stamp{ + pixel_x = -8; + pixel_y = 2 + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"brm" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"brn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bro" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"brp" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/machinery/smartfridge/disks, +/turf/open/floor/plasteel, +/area/hydroponics) +"brq" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"brr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning{ + name = "\improper WARNING: MOVING MACHINERY"; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"brs" = ( +/turf/open/floor/plating/airless, +/area/space/nearstation) +"brt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/chapel/office) +"bru" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"brv" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"brw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/gateway) +"brx" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/storage/tools) +"bry" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"brz" = ( +/obj/machinery/computer/rdconsole/robotics, +/turf/open/floor/circuit, +/area/science/robotics/lab) +"brA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster/official/pda_ad600{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/lounge/jazz) +"brB" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"brC" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/storage/tools) +"brD" = ( +/obj/structure/table, +/obj/machinery/door/window/eastright{ + name = "Auxiliary Tool Storage Desk"; + req_access_txt = "12" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/folder, +/turf/open/floor/plasteel, +/area/storage/tools) +"brE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"brF" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/white/full, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"brG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"brH" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"brI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hall - Aft"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"brJ" = ( +/obj/machinery/vending/assist, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"brK" = ( +/obj/structure/closet/crate/medical, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" + }, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/obj/item/healthanalyzer, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"brL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"brM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Merchant Plaza" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"brN" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"brO" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/effect/landmark/start/medical_doctor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"brP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"brQ" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"brR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Construction Area"; + req_access_txt = "31" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"brS" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"brT" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"brU" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay/lobby) +"brV" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"brW" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Chapel Maintenance"; + req_one_access_txt = "12;22;26;27;50" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"brX" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"brY" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/camera{ + c_tag = "Waste Disposal - Aft" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"brZ" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02" + }, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"bsa" = ( +/obj/structure/table/glass, +/obj/item/scalpel, +/obj/item/storage/box/cups, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"bsb" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/port/central) +"bsc" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/table/glass, +/obj/item/reagent_containers/glass/bottle/ammonia, +/obj/item/toy/figure/botanist{ + pixel_x = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bsd" = ( +/obj/structure/closet/crate/hydroponics, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/item/clothing/accessory/armband/hydro{ + pixel_y = 4 + }, +/obj/item/clothing/accessory/armband/hydro{ + pixel_y = 4 + }, +/obj/item/clothing/accessory/armband/hydro{ + pixel_y = 4 + }, +/obj/item/clothing/suit/hooded/wintercoat/hydro{ + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bse" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bsf" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/bed/dogbed/ian, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/structure/sign/poster/official/love_ian{ + pixel_y = 32 + }, +/mob/living/simple_animal/pet/dog/corgi/Ian, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"bsg" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bsh" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Recycler Exterior Access"; + req_one_access_txt = "13;50" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bsi" = ( +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = 26 + }, +/obj/effect/landmark/xeno_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bsj" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/seed_extractor, +/turf/open/floor/plasteel, +/area/hydroponics) +"bsk" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bsl" = ( +/obj/machinery/status_display, +/turf/closed/wall/r_wall, +/area/ai_monitored/storage/eva) +"bsm" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bsn" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/machinery/plantgenes{ + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bso" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/storage/tools) +"bsp" = ( +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"bsq" = ( +/obj/structure/table, +/obj/machinery/door/window/southleft{ + name = "Auxiliary Tool Storage Desk"; + req_access_txt = "12" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/book/manual/wiki/engineering_hacking, +/turf/open/floor/plasteel, +/area/storage/tools) +"bsr" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = -6; + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/storage/tools) +"bss" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/hand_labeler{ + pixel_y = 8 + }, +/obj/item/storage/firstaid/regular, +/obj/item/book/manual/wiki/medicine{ + pixel_x = -6 + }, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bst" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bsu" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bsv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/warning/vacuum/external, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bsw" = ( +/turf/open/floor/plasteel/stairs/left, +/area/hydroponics) +"bsx" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + name = "Recycler Exterior Access"; + req_one_access_txt = "13;50" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bsy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bsz" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bsA" = ( +/turf/open/floor/plasteel/stairs/right, +/area/hydroponics) +"bsB" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bsC" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Hydroponics - Aft" + }, +/turf/open/floor/plasteel, +/area/hydroponics) +"bsD" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/space/basic, +/area/space/nearstation) +"bsE" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 26 + }, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/grass, +/area/hydroponics) +"bsF" = ( +/obj/machinery/vending/hydronutrients, +/turf/open/floor/grass, +/area/hydroponics) +"bsG" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-03" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bsH" = ( +/obj/structure/table/glass, +/obj/item/storage/box/syringes{ + pixel_y = 4 + }, +/turf/open/floor/grass, +/area/hydroponics) +"bsI" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bsJ" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 12; + pixel_y = 8 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/grass, +/area/hydroponics) +"bsK" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light, +/turf/open/floor/grass, +/area/hydroponics) +"bsL" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/landmark/start/roboticist, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bsM" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bsN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bsO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/hallway/secondary/civilian) +"bsP" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bsQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bsR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bsS" = ( +/obj/machinery/door/window/northleft{ + name = "Chapel Office"; + req_access_txt = "22" + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bsT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/transit_tube/crossing/horizontal, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/turf/open/space/basic, +/area/space/nearstation) +"bsU" = ( +/obj/effect/landmark/start/roboticist, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bsV" = ( +/turf/closed/wall, +/area/maintenance/aft) +"bsW" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/chaplain, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/office) +"bsX" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"bsY" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plating, +/area/maintenance/aft) +"bsZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/aft) +"bta" = ( +/turf/closed/wall/r_wall, +/area/storage/tech) +"btb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/computer/secure_data, +/obj/machinery/requests_console{ + department = "Detective"; + departmentType = 5; + name = "Detective's Office RC"; + pixel_y = 30 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"btc" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; + dir = 1; + name = "Custodial Closet APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/janitor) +"btd" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bte" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/r_wall, +/area/quartermaster/miningoffice) +"btf" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"btg" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bth" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/medical/medbay/lobby) +"bti" = ( +/obj/machinery/door/window/eastleft{ + name = "Waiting Room" + }, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"btj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"btk" = ( +/obj/structure/sign/poster/official/nanomichi_ad{ + pixel_x = 32 + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"btl" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"btm" = ( +/obj/machinery/disposal/bin{ + name = "Chapel Mailbox" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/delivery/white, +/obj/machinery/requests_console{ + department = "Chapel"; + departmentType = 2; + name = "Chapel RC"; + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"btn" = ( +/obj/machinery/computer/mech_bay_power_console, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bto" = ( +/turf/open/floor/mech_bay_recharge_floor, +/area/science/robotics/lab) +"btp" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 8 + }, +/turf/open/floor/plating, +/area/science/robotics/lab) +"btq" = ( +/obj/machinery/vending/cigarette, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"btr" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bts" = ( +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"btt" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Civilian Wing Hallway - Aft"; + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/civilian) +"btu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/hallway/secondary/civilian) +"btv" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/belt/utility, +/obj/item/stack/cable_coil/random, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"btw" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/department/eva) +"btx" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/aft) +"bty" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"btz" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"btA" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"btB" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"btC" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"btD" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"btE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Tech Storage"; + req_access_txt = "23" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/storage/tech) +"btF" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"btG" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"btH" = ( +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"btI" = ( +/obj/structure/closet/secure_closet/brig{ + name = "Detainee Locker" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"btJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/hallway/secondary/civilian) +"btK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Aft Maintenance"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"btL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"btM" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen/fountain, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/office) +"btN" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/rack, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/item/stack/cable_coil/random, +/obj/item/weldingtool, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"btO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"btP" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"btQ" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/AI, +/turf/open/floor/plating, +/area/storage/tech) +"btR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"btS" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"btT" = ( +/turf/closed/wall/r_wall, +/area/router) +"btU" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"btV" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/storage/tech) +"btW" = ( +/obj/structure/table, +/obj/machinery/light, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"btX" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"btY" = ( +/obj/machinery/door/window/eastright{ + name = "Waiting Room" + }, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"btZ" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/router) +"bua" = ( +/obj/machinery/camera{ + c_tag = "Robotics Backroom"; + dir = 8; + network = list("ss13","medbay"); + pixel_y = -22 + }, +/obj/structure/sign/poster/contraband/borg_fancy_2{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bub" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"buc" = ( +/obj/structure/bed, +/obj/item/clothing/glasses/sunglasses/blindfold, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bud" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/conveyor{ + id = "router_off" + }, +/turf/open/floor/plating, +/area/router) +"bue" = ( +/turf/closed/wall/r_wall, +/area/router/eva) +"buf" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/plasticflaps, +/obj/machinery/door/window/northleft{ + name = "Showers"; + req_one_access_txt = "29;47" + }, +/turf/open/floor/plasteel, +/area/science/lab) +"bug" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall, +/area/chapel/office) +"buh" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"bui" = ( +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"buj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"buk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Routing Depot"; + req_one_access_txt = "10;31" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bul" = ( +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bum" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/aft) +"bun" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"buo" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bup" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"buq" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/router) +"bur" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bus" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/mass_driver{ + dir = 1; + id = "public_in"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/router) +"but" = ( +/turf/closed/wall/mineral/titanium/nosmooth, +/area/hallway/primary/central) +"buu" = ( +/obj/structure/table, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"buv" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"buw" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bux" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"buy" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"buz" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/cargo_technician, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"buA" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/medical/medbay/lobby) +"buB" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Ferry Docking Bay" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"buC" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_circuit_printer, +/obj/item/integrated_electronics/wirer, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"buD" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"buE" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/machinery/conveyor/auto{ + id = "router" + }, +/turf/open/floor/plating, +/area/router) +"buF" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"buG" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) +"buH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"buI" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"buJ" = ( +/obj/item/beacon, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"buK" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"buL" = ( +/obj/structure/closet/crate/coffin, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"buM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"buN" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall/rust, +/area/chapel/main) +"buO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall, +/area/security/detectives_office) +"buP" = ( +/obj/item/trash/plate, +/obj/item/lighter/greyscale, +/obj/item/clothing/mask/cigarette/cigar/cohiba, +/obj/structure/table/wood/fancy, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"buQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Chapel Morgue"; + req_access_txt = "27" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"buR" = ( +/obj/item/storage/secure/safe{ + pixel_x = 4; + pixel_y = 32 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"buS" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/cmo) +"buT" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/obj/structure/sign/poster/official/soft_cap_pop_art{ + pixel_x = -32 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"buU" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/chips{ + pixel_x = 3; + pixel_y = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"buV" = ( +/obj/structure/rack, +/obj/item/circuitboard/machine/telecomms/processor, +/obj/item/circuitboard/machine/telecomms/bus, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"buW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/janitor) +"buX" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/bartender, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"buY" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"buZ" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/soulstone/anybody/chaplain, +/obj/item/organ/heart, +/obj/item/book/granter/spell/smoke/lesser, +/obj/item/nullrod, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/office) +"bva" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/closed/wall, +/area/janitor) +"bvb" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bvc" = ( +/obj/machinery/computer/cargo/request, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/router/eva) +"bvd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bve" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Construction Area"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/construction) +"bvf" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-10" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/office) +"bvg" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/item/destTagger, +/obj/effect/turf_decal/bot, +/obj/machinery/requests_console{ + department = "EVA Router"; + name = "EVA Router RC"; + pixel_y = 28 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = 26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/router/eva) +"bvh" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"bvi" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"bvj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bvk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bvl" = ( +/obj/item/trash/plate, +/obj/item/kitchen/fork, +/obj/structure/table/wood/fancy, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bvm" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bvn" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bvo" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bvp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"bvq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Kitchen"; + req_access_txt = "28" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bvr" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"bvs" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/department/chapel) +"bvt" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bvu" = ( +/turf/closed/wall/r_wall, +/area/chapel/office) +"bvv" = ( +/turf/closed/wall/r_wall/rust, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"bvw" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/closed/wall/r_wall, +/area/crew_quarters/kitchen/backroom) +"bvx" = ( +/obj/structure/grille, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bvy" = ( +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bvz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall, +/area/router/eva) +"bvA" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/effect/landmark/start/cook, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"bvB" = ( +/turf/closed/wall/r_wall/rust, +/area/router) +"bvC" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/mob/living/simple_animal/hostile/retaliate/goat{ + name = "Pete" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"bvD" = ( +/obj/machinery/camera{ + c_tag = "Bar - Starboard"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bvE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/chapel/main) +"bvF" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"bvG" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bvH" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/crew_quarters/bar) +"bvI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/chapel) +"bvJ" = ( +/obj/structure/chair/comfy/brown, +/obj/effect/landmark/start/head_of_personnel, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) +"bvK" = ( +/obj/structure/table/optable, +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bvL" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"bvM" = ( +/obj/machinery/door/airlock/external/glass{ + name = "External Construction Access"; + req_one_access_txt = "10;31" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bvN" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/department/chapel) +"bvO" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bvP" = ( +/obj/machinery/space_heater, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bvQ" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bvR" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bvS" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bvT" = ( +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bvU" = ( +/obj/item/caution, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/biohazard{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bvV" = ( +/obj/structure/table, +/obj/machinery/light/small, +/obj/item/storage/pill_bottle/epinephrine, +/obj/item/wrench{ + pixel_x = -8 + }, +/obj/item/extinguisher{ + pixel_x = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bvW" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bvX" = ( +/obj/machinery/door/airlock/external{ + name = "External Construction Access"; + req_one_access_txt = "10;31" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bvY" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"bvZ" = ( +/obj/item/folder, +/obj/structure/table/wood/fancy, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bwa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bwb" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Chapel Air Hookup"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bwc" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bwd" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bwe" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bwf" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bwg" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bwh" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/requests_console{ + department = "Routing Depot"; + name = "Routing Depot RC"; + pixel_y = 28 + }, +/obj/machinery/button/massdriver{ + id = "eva_in"; + name = "mass driver button (EVA)"; + pixel_x = -24 + }, +/obj/machinery/button/massdriver{ + id = "public_in"; + name = "mass driver button (Public)"; + pixel_x = -24; + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/router) +"bwi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bwj" = ( +/obj/machinery/space_heater, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bwk" = ( +/obj/machinery/chem_master, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/disposal) +"bwl" = ( +/obj/structure/closet/secure_closet/security, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/sign/poster/official/safety_report{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"bwm" = ( +/obj/structure/sign/departments/science, +/turf/closed/wall/r_wall, +/area/gateway) +"bwn" = ( +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bwo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/mob/living/simple_animal/cockroach, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bwp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bwq" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/conveyor{ + id = "recycler" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bwr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bws" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/autolathe, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bwt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bwu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/trash/can, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bwv" = ( +/obj/machinery/disposal/bin{ + name = "Mass Driver" + }, +/obj/structure/sign/warning/deathsposal{ + pixel_x = 32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bww" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/structure/transit_tube/horizontal, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bwx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/janitor) +"bwy" = ( +/obj/machinery/vending/wardrobe/jani_wardrobe, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/janitor) +"bwz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/router) +"bwA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bwB" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/bot_assembly/medbot, +/obj/item/clothing/head/hardhat{ + pixel_x = -2; + pixel_y = 6; + pressure_resistance = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/router) +"bwC" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/off{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/storage/box/mousetraps, +/obj/item/light/tube, +/obj/item/radio/off{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/machinery/camera{ + c_tag = "Routing Depot" + }, +/turf/open/floor/plasteel, +/area/router) +"bwD" = ( +/obj/structure/table/reinforced, +/obj/item/analyzer, +/obj/item/wrench, +/obj/item/screwdriver, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bwE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bwF" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bwG" = ( +/obj/item/cigbutt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bwH" = ( +/obj/effect/turf_decal/stripes/line, +/obj/item/storage/box/mre/menu2/safe, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bwI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bwJ" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"bwK" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bwL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/router) +"bwM" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bwN" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Toxins Lab - Port"; + network = list("ss13","rd") + }, +/obj/machinery/meter, +/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"bwO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bwP" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bwQ" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "router_off" + }, +/turf/open/floor/plating, +/area/router) +"bwR" = ( +/turf/open/floor/plasteel, +/area/engine/break_room) +"bwS" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/machinery/disposal/deliveryChute{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bwT" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bwU" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bwV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bwW" = ( +/turf/closed/wall, +/area/maintenance/disposal) +"bwX" = ( +/obj/machinery/conveyor{ + id = "recycler" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bwY" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bwZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/table, +/obj/item/clothing/under/rank/mailman, +/obj/item/clothing/head/mailman, +/obj/item/wirecutters, +/obj/item/stack/packageWrap, +/turf/open/floor/plasteel, +/area/router) +"bxa" = ( +/obj/structure/frame/computer, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/router) +"bxb" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Waste Disposal - Port"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bxc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bxd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bxe" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 6; + pixel_y = 13 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bxf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "EVA Router"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/eva) +"bxg" = ( +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/stack/tile/plasteel{ + pixel_x = 8; + pixel_y = 14 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bxh" = ( +/obj/machinery/disposal/bin{ + name = "Corpse Disposal" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/delivery/red, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bxi" = ( +/obj/structure/closet/l3closet/janitor, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/item/clothing/gloves/color/purple, +/obj/item/clothing/gloves/color/purple, +/obj/item/clothing/under/janimaid, +/obj/item/clothing/under/janimaid, +/obj/structure/sign/poster/official/bless_this_spess{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bxj" = ( +/turf/closed/wall/r_wall, +/area/maintenance/aft) +"bxk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bxl" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"bxm" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"bxn" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxo" = ( +/obj/machinery/door/airlock/external{ + name = "Telecommunications External Access"; + req_access_txt = "61" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bxp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bxq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bxr" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/item/storage/box/lights/mixed, +/obj/item/storage/box/lights/mixed, +/obj/item/radio/off{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/restraints/legcuffs/beartrap, +/obj/item/restraints/legcuffs/beartrap, +/turf/open/floor/plasteel, +/area/janitor) +"bxs" = ( +/obj/item/storage/toolbox/mechanical/old, +/obj/item/reagent_containers/food/snacks/chips{ + pixel_x = 3; + pixel_y = 1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bxt" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Telecommunications External Access"; + req_access_txt = "61" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bxu" = ( +/obj/structure/rack, +/obj/item/circuitboard/machine/telecomms/broadcaster, +/obj/item/circuitboard/machine/telecomms/receiver, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxv" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxw" = ( +/turf/closed/wall/r_wall, +/area/maintenance/starboard/aft) +"bxx" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxy" = ( +/obj/item/trash/candle, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/disposal) +"bxz" = ( +/obj/item/stack/cable_coil/red, +/obj/item/multitool, +/obj/item/wrench, +/obj/item/stack/sheet/metal/five{ + pixel_x = 6; + pixel_y = -6 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bxA" = ( +/obj/machinery/announcement_system, +/turf/open/floor/plasteel/dark, +/area/tcommsat/computer) +"bxB" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/computer/message_monitor{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxC" = ( +/obj/structure/closet/emcloset/anchored, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/tcommsat/computer) +"bxD" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications Chamber"; + req_access_txt = "61" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxE" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 29 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bxG" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bxH" = ( +/turf/closed/wall, +/area/storage/tech) +"bxI" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxJ" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxK" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/radio/off, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxL" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bxM" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/hallway/primary/aft) +"bxN" = ( +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/spawner/lootdrop/techstorage/command, +/turf/open/floor/plating, +/area/storage/tech) +"bxO" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bxP" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Central Starboard Exterior Access"; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bxQ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxR" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/conveyor_switch{ + id = "MiningConveyer" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bxS" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bxT" = ( +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"bxU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bxV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bxW" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxX" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxY" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bxZ" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"bya" = ( +/obj/machinery/computer/telecomms/monitor{ + dir = 1; + network = "tcommsat" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"byb" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/tcommsat/server) +"byc" = ( +/obj/machinery/igniter/incinerator_toxmix, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"byd" = ( +/obj/machinery/computer/crew, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bye" = ( +/obj/structure/safe/floor, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/item/radio/headset/headset_cent, +/obj/item/radio/headset/headset_cent, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"byf" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Telecommunications Mainframe"; + req_access_txt = "61" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/tcommsat/server) +"byg" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"byh" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"byi" = ( +/turf/closed/wall/r_wall, +/area/tcommsat/server) +"byj" = ( +/turf/open/floor/plasteel, +/area/tcommsat/server) +"byk" = ( +/obj/machinery/telecomms/message_server, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byl" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Telecommunications Mainframe"; + req_access_txt = "61" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/tcommsat/server) +"bym" = ( +/obj/machinery/announcement_system, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byn" = ( +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"byo" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/pen, +/obj/item/pen{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/machinery/camera{ + c_tag = "Chapel Game Room"; + dir = 1 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"byp" = ( +/obj/machinery/telecomms/bus/preset_three, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byq" = ( +/obj/machinery/telecomms/receiver/preset_left, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byr" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/flashlight/lamp/green, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"bys" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/eva) +"byt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Starboard Exterior Access" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"byu" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Central Starboard Exterior Access"; + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"byv" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"byw" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"byx" = ( +/obj/machinery/telecomms/processor/preset_three, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byy" = ( +/obj/machinery/telecomms/bus/preset_one, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byz" = ( +/obj/machinery/telecomms/receiver/preset_right, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byA" = ( +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byB" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"byC" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"byD" = ( +/obj/effect/landmark/start/roboticist, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"byE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/button/massdriver{ + id = "eva_out"; + pixel_x = 24; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/router/eva) +"byF" = ( +/obj/structure/window/reinforced/spawner, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "EVA" + }, +/turf/open/floor/plating, +/area/router/eva) +"byG" = ( +/obj/machinery/telecomms/server/presets/service, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byH" = ( +/obj/machinery/telecomms/server/presets/common, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byI" = ( +/obj/machinery/telecomms/hub/preset, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byJ" = ( +/obj/machinery/telecomms/server/presets/security, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byK" = ( +/obj/machinery/telecomms/server/presets/command, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byL" = ( +/obj/machinery/telecomms/server/presets/science, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"byM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Chapel Maintenance"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"byN" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/medical/morgue) +"byO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/tile/plasteel{ + pixel_x = 3; + pixel_y = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"byP" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"byQ" = ( +/turf/closed/wall, +/area/medical/morgue) +"byR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"byS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"byT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"byU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"byV" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"byW" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortType = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"byX" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"byY" = ( +/obj/vehicle/ridden/janicart, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/item/key/janitor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/janitor) +"byZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/window/reinforced/spawner, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/mass_driver{ + dir = 4; + id = "eva_out"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/router/eva) +"bza" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bzb" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Ferry Docking Bay" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bzc" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/security, +/turf/open/floor/plating, +/area/storage/tech) +"bzd" = ( +/turf/open/floor/plating, +/area/storage/tech) +"bze" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/mob/living/simple_animal/cockroach, +/turf/open/floor/plating, +/area/maintenance/aft) +"bzf" = ( +/obj/structure/janitorialcart, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 26 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/janitor) +"bzg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/janitor) +"bzh" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bzi" = ( +/obj/item/cardboard_cutout, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bzj" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/assembly/flash, +/obj/item/assembly/flash, +/obj/item/clothing/glasses/meson, +/turf/open/floor/plating, +/area/storage/tech) +"bzk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bzl" = ( +/obj/structure/closet/secure_closet, +/obj/effect/spawner/lootdrop/organ_spawner, +/obj/effect/spawner/lootdrop/organ_spawner, +/obj/effect/spawner/lootdrop/organ_spawner, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bzm" = ( +/obj/machinery/conveyor{ + dir = 5; + id = "recycler" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bzn" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "recycler" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bzo" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/fragile, +/obj/item/clothing/head/helmet/space/fragile, +/obj/item/tank/internals/air, +/obj/item/flashlight, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bzp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bzq" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/warning/pods{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bzr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/obj/machinery/meter, +/turf/closed/wall, +/area/hallway/primary/aft) +"bzs" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bzt" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bzu" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "MiningConveyer" + }, +/turf/open/floor/plating/airless, +/area/quartermaster/miningoffice) +"bzv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "MiningConveyer" + }, +/obj/structure/plasticflaps, +/turf/open/floor/plating/airless, +/area/quartermaster/miningoffice) +"bzw" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "MiningConveyer" + }, +/obj/machinery/door/poddoor{ + id = "MiningConveyerBlastDoor"; + name = "Asteroid Mining Load Door" + }, +/turf/open/floor/plating/airless, +/area/quartermaster/miningoffice) +"bzx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Interrogation Room"; + req_access_txt = "63" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"bzy" = ( +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bzz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/gateway) +"bzA" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/closed/wall, +/area/science/research{ + name = "Research Sector" + }) +"bzB" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bzC" = ( +/obj/structure/closet/toolcloset, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bzD" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor/preopen{ + id = "evablock"; + name = "EVA Router" + }, +/turf/open/floor/plating, +/area/router/eva) +"bzE" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/conveyor{ + dir = 4; + id = "router_off" + }, +/turf/open/floor/plating, +/area/router) +"bzF" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/conveyor{ + dir = 4; + id = "router_off" + }, +/turf/open/floor/plating, +/area/router) +"bzG" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bzH" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus{ + pixel_y = 8 + }, +/obj/item/stock_parts/cell/high/plus{ + pixel_y = 8 + }, +/obj/item/assembly/flash{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/flash{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/flash{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/flash{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/flash{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/flash{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bzI" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bzJ" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall, +/area/science/robotics/lab) +"bzK" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/red/full, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bzL" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + id = "recycler" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bzM" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bzN" = ( +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bzO" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "recycler"; + name = "Recycler Conveyor Control" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bzP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/router) +"bzQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bzR" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bzS" = ( +/obj/structure/table, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/healthanalyzer, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bzT" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/port/central"; + dir = 4; + name = "Central Port Maintenance APC"; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/maintenance/port/central) +"bzU" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 6 + }, +/obj/machinery/meter, +/turf/closed/wall, +/area/hallway/primary/aft) +"bzV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bzW" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plating, +/area/storage/tech) +"bzX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room"; + req_access_txt = "7;8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"bzY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bzZ" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/quartermaster/miningoffice) +"bAa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bAb" = ( +/turf/open/floor/plating/airless, +/area/science/xenobiology) +"bAc" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/gateway) +"bAd" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bAe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/router) +"bAf" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/science/xenobiology) +"bAg" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"bAh" = ( +/obj/item/reagent_containers/food/condiment/pack/mustard{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/condiment/pack/ketchup{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = 1; + pixel_y = 3 + }, +/obj/structure/table/wood/fancy, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bAi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router) +"bAj" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/janitor) +"bAk" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Recycler"; + req_one_access_txt = "12;50" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bAl" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"bAm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/cigbutt, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/router) +"bAn" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/gateway) +"bAo" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bAp" = ( +/obj/structure/bed, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/item/bedsheet/purple, +/obj/effect/landmark/start/janitor, +/turf/open/floor/plasteel, +/area/janitor) +"bAq" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bAr" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/router) +"bAs" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bAt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Fore Maintenance - Starboard"; + pixel_x = 22 + }, +/obj/structure/sign/warning{ + name = "\improper CONSTRUCTION AREA"; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bAu" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bAv" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/structure/bed, +/obj/item/bedsheet/qm, +/obj/effect/landmark/start/quartermaster, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bAw" = ( +/obj/item/paper/fluff/bee_objectives, +/obj/item/toy/plush/beeplushie, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"bAx" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "recycler" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bAy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bAz" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bAA" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Supply - Warehouse Exterior"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/space/basic, +/area/space/nearstation) +"bAB" = ( +/obj/item/beacon, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bAC" = ( +/obj/machinery/recharge_station, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bAD" = ( +/obj/machinery/recharge_station, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bAE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/landmark/start/ai/secondary, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bAF" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/science/mixing) +"bAG" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"bAH" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bAI" = ( +/obj/machinery/photocopier, +/obj/machinery/requests_console{ + department = "Law Office"; + name = "Law Office RC"; + pixel_y = 32 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"bAJ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/clothing/neck/stethoscope, +/obj/item/clothing/glasses/hud/health, +/obj/item/stamp/cmo, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/cmo"; + dir = 1; + name = "Chief Medical Officer's Office APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"bAK" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bAL" = ( +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: WASTE EJECTION"; + pixel_x = -32 + }, +/turf/open/space/basic, +/area/space) +"bAM" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bAN" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bAO" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bAP" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bAQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bAR" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Thermo-Electric Generator Room"; + req_access_txt = "10" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"bAS" = ( +/turf/closed/wall/r_wall/rust, +/area/maintenance/disposal) +"bAT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bAU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bAV" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bAW" = ( +/obj/structure/sign/poster/official/get_your_legs, +/turf/closed/wall, +/area/hallway/secondary/exit) +"bAX" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/photocopier, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bAY" = ( +/obj/machinery/status_display, +/turf/closed/wall, +/area/hallway/secondary/exit) +"bAZ" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet, +/area/chapel/main) +"bBa" = ( +/obj/structure/sign/poster/official/help_others, +/turf/closed/wall, +/area/hallway/secondary/exit) +"bBb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/grille/broken, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/chapel) +"bBc" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 8 + }, +/area/hallway/secondary/exit) +"bBd" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/popcorn, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"bBe" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/structure/sign/warning/pods{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bBf" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bBg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bBh" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "recycler" + }, +/obj/structure/sign/warning/vacuum{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bBi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bBj" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/crew_quarters/heads/captain"; + dir = 4; + name = "Captain's Quarters APC"; + pixel_x = 26 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"bBk" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bBl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bBm" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/exit) +"bBn" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bBo" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/door/airlock/engineering/glass{ + name = "Thermo-Electric Generator"; + req_one_access_txt = "10;24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"bBp" = ( +/obj/machinery/conveyor/inverted{ + dir = 9; + id = "recycler" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bBq" = ( +/obj/machinery/recycler, +/obj/machinery/conveyor{ + dir = 4; + id = "recycler" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bBr" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 4; + id = "recycler" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bBs" = ( +/obj/machinery/aug_manipulator, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"bBt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) +"bBu" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bBv" = ( +/turf/closed/wall, +/area/router) +"bBw" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/exit) +"bBx" = ( +/obj/structure/table, +/obj/item/storage/toolbox/electrical, +/obj/item/clothing/gloves/color/yellow, +/obj/item/multitool, +/obj/item/t_scanner, +/turf/open/floor/plating, +/area/storage/tech) +"bBy" = ( +/obj/machinery/recharge_station, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bBz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + dir = 4; + id = "EngiCargoConveyer" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bBA" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/ore_box, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bBB" = ( +/obj/machinery/conveyor/auto{ + id = "router" + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 1; + sortType = 4 + }, +/turf/open/floor/plating, +/area/router) +"bBC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/router) +"bBD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor{ + dir = 4; + id = "recycler" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bBE" = ( +/obj/structure/grille, +/obj/machinery/power/terminal, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bBF" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/router) +"bBG" = ( +/obj/machinery/conveyor/inverted{ + dir = 10; + id = "recycler" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bBH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/router) +"bBI" = ( +/obj/machinery/computer/shuttle/mining, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bBJ" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"bBK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door{ + id = "recycleraccess"; + name = "Recycler Access Control"; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bBL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bBM" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bBN" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/mixing) +"bBO" = ( +/turf/closed/wall/r_wall, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bBP" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/medical/chemistry) +"bBQ" = ( +/turf/closed/wall, +/area/medical/chemistry) +"bBR" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Computer Core APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bBS" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bBT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bBU" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/sign/departments/cargo{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bBV" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/router) +"bBW" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bBX" = ( +/obj/machinery/door/airlock/external{ + name = "Routing Depot"; + req_one_access_txt = "10;31" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bBY" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + name = "EVA Router"; + req_access_txt = "19" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/router/eva) +"bBZ" = ( +/turf/closed/wall, +/area/hallway/secondary/exit) +"bCa" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bCb" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"bCc" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/router/eva) +"bCd" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/gateway) +"bCe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Personnel's Desk"; + departmentType = 5; + name = "Head of Personnel RC"; + pixel_y = -30 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"bCf" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/medical/chemistry) +"bCg" = ( +/turf/closed/wall/r_wall, +/area/medical/chemistry) +"bCh" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/medbay/central) +"bCi" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bCj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"bCk" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/closed/wall, +/area/maintenance/disposal) +"bCl" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bCm" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bCn" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bCo" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bCp" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bCq" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "recycler" + }, +/obj/machinery/door/poddoor{ + id = "recycleraccess"; + name = "Recycler Access" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bCr" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bCs" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bCt" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/storage/box/engineer{ + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"bCu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/eva) +"bCv" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"bCw" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/conveyor/auto{ + dir = 8; + id = "eva" + }, +/turf/open/floor/plating, +/area/router/eva) +"bCx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bCy" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/window/reinforced/spawner/north, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/conveyor/auto{ + dir = 8; + id = "eva" + }, +/turf/open/floor/plating, +/area/router/eva) +"bCz" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/under/overalls, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plasteel, +/area/storage/primary) +"bCA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bCB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bCC" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bCD" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 29 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bCE" = ( +/obj/machinery/conveyor/auto{ + dir = 8; + id = "eva" + }, +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor/preopen{ + id = "evablock"; + name = "EVA Router" + }, +/turf/open/floor/plating, +/area/router/eva) +"bCF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"bCG" = ( +/obj/item/cigbutt, +/obj/item/radio/intercom{ + frequency = 1359; + name = "Station Intercom (Security)"; + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bCH" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bCI" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bCJ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"bCK" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = -26 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bCL" = ( +/turf/closed/wall/rust, +/area/security/detectives_office) +"bCM" = ( +/turf/closed/wall/r_wall/rust, +/area/security/detectives_office) +"bCN" = ( +/obj/structure/filingcabinet, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bCO" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"bCP" = ( +/obj/structure/table/wood, +/obj/item/storage/briefcase, +/obj/item/taperecorder, +/obj/item/radio{ + pixel_x = -6 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bCQ" = ( +/obj/structure/table/wood, +/obj/machinery/computer/med_data/laptop{ + dir = 8; + pixel_y = 2 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bCR" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/mass_driver{ + dir = 8; + id = "airbridge_in"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/router) +"bCS" = ( +/obj/structure/closet, +/obj/machinery/camera{ + c_tag = "Central Plaza - Legal Desk"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/lawoffice) +"bCT" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/sorting/mail/flip, +/obj/machinery/conveyor{ + dir = 8; + id = "router_off" + }, +/turf/open/floor/plating, +/area/router) +"bCU" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/maintenance/disposal) +"bCV" = ( +/turf/open/floor/plating/airless, +/area/maintenance/disposal) +"bCW" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/machinery/door/airlock/engineering/glass{ + name = "Thermo-Electric Generator"; + req_one_access_txt = "10;24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"bCX" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/snack/random, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bCY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/robotics/lab) +"bCZ" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "router_off" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/router) +"bDa" = ( +/obj/structure/bodycontainer/morgue, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bDb" = ( +/mob/living/simple_animal/mouse/white{ + desc = "Wubba lubba dub dub."; + name = "Rick" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bDc" = ( +/obj/machinery/vending/security, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bDd" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bDe" = ( +/obj/machinery/disposal/bin{ + name = "Corpse Delivery" + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/delivery/red, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"bDf" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/service, +/turf/open/floor/plating, +/area/storage/tech) +"bDg" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/medical, +/turf/open/floor/plating, +/area/storage/tech) +"bDh" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/rnd, +/turf/open/floor/plating, +/area/storage/tech) +"bDi" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock{ + name = "Service Hallway"; + req_one_access_txt = "25;26;28;35" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"bDj" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/decal/cleanable/dirt, +/obj/item/pipe_meter, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"bDk" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 15 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"bDl" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bDm" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bDn" = ( +/obj/machinery/icecream_vat, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"bDo" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bDp" = ( +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"bDq" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/kitchen/backroom) +"bDr" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/item/pipe_meter, +/turf/closed/wall/r_wall, +/area/crew_quarters/kitchen/backroom) +"bDs" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/kitchen/backroom) +"bDt" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/crew_quarters/kitchen/backroom) +"bDu" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/item/book/manual/wiki/barman_recipes, +/obj/item/reagent_containers/rag, +/obj/structure/table/wood/fancy, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bDv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"bDw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AIShutter"; + name = "AI Core Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"bDx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"bDy" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bDz" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Service Hallway - Aft"; + pixel_x = 22 + }, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"bDA" = ( +/turf/closed/wall/r_wall, +/area/hallway/secondary/service) +"bDB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"bDC" = ( +/turf/open/floor/plating, +/area/hallway/secondary/service) +"bDD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + dir = 8; + id = "router_off" + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/router) +"bDE" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/food/snacks/store/cheesewheel, +/obj/item/reagent_containers/food/snacks/grown/pineapple, +/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris, +/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris, +/obj/item/reagent_containers/food/snacks/grown/tomato, +/obj/item/reagent_containers/food/snacks/grown/tomato, +/obj/item/reagent_containers/food/snacks/grown/bluecherries, +/obj/item/reagent_containers/food/snacks/grown/citrus/lime, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"bDF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"bDG" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"bDH" = ( +/obj/machinery/atmospherics/components/unary/tank/air, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"bDI" = ( +/obj/structure/closet/crate/freezer, +/obj/effect/spawner/lootdrop/three_course_meal, +/obj/item/reagent_containers/food/snacks/chocolatebar, +/obj/item/reagent_containers/food/snacks/chocolatebar, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"bDJ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"bDK" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/hallway/secondary/service) +"bDL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bDM" = ( +/obj/structure/table/reinforced, +/obj/item/transfer_valve{ + pixel_x = 6 + }, +/obj/item/transfer_valve{ + pixel_x = 6 + }, +/obj/item/transfer_valve, +/obj/item/transfer_valve, +/obj/item/transfer_valve{ + pixel_x = -6 + }, +/obj/item/transfer_valve{ + pixel_x = -6 + }, +/obj/machinery/camera{ + c_tag = "Toxins Lab - Starboard"; + dir = 8; + pixel_y = -22 + }, +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (Common)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bDN" = ( +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bDO" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bDP" = ( +/obj/machinery/computer/message_monitor{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/bridge) +"bDQ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bDR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"bDS" = ( +/turf/open/floor/plasteel/stairs, +/area/crew_quarters/bar) +"bDT" = ( +/obj/machinery/chem_heater, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"bDU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AIShutter"; + name = "AI Core Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"bDV" = ( +/turf/open/floor/plasteel/stairs/left, +/area/crew_quarters/bar) +"bDW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"bDX" = ( +/turf/open/floor/plasteel/stairs/right, +/area/crew_quarters/bar) +"bDY" = ( +/obj/structure/sign/barsign, +/turf/closed/wall, +/area/crew_quarters/bar) +"bDZ" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 26 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bEa" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/carpet/green, +/area/crew_quarters/bar) +"bEb" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/bar) +"bEc" = ( +/obj/structure/table, +/obj/item/radio/off{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/radio/off{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/radio/off{ + pixel_x = 4; + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/circuit, +/area/bridge) +"bEd" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bEe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/conveyor{ + dir = 8; + id = "router_off" + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4 + }, +/turf/open/floor/plating, +/area/router) +"bEf" = ( +/obj/structure/reagent_dispensers, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"bEg" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bEh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "router_off" + }, +/turf/open/floor/plating, +/area/router) +"bEi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bEj" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/structure/closet/crate, +/obj/machinery/camera{ + c_tag = "Waste Disposal - Starboard" + }, +/obj/item/stack/tile/noslip/thirty, +/obj/structure/sign/poster/official/ue_no{ + pixel_y = 32 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/disposal) +"bEk" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bEl" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bEm" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel's Office"; + req_access_txt = "57" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"bEn" = ( +/obj/machinery/computer/card{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"bEo" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bEp" = ( +/turf/closed/wall/r_wall, +/area/maintenance/solars/starboard/fore) +"bEq" = ( +/obj/machinery/computer/security{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint) +"bEr" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/locker"; + dir = 8; + name = "Locker Room APC"; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"bEs" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/ai_monitored/storage/eva"; + dir = 4; + name = "EVA APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/checker, +/area/ai_monitored/storage/eva) +"bEt" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bEu" = ( +/obj/structure/sign/warning{ + name = "\improper CONSTRUCTION AREA"; + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"bEv" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"bEw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Starboard Bow Solar Maintenance"; + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bEx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor{ + dir = 8; + id = "router_off" + }, +/turf/open/floor/plating, +/area/router) +"bEy" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/stock_parts/cell/high/plus, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bEz" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"bEA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Starboard Bow Solar Maintenance"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) +"bEB" = ( +/obj/structure/rack, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/item/radio/off{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/flashlight, +/obj/item/crowbar/red, +/obj/item/crowbar/red{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/radio/off{ + pixel_x = -8 + }, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/machinery/camera{ + c_tag = "Starboard Bow Maintenance - Port"; + pixel_x = 22 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"bEC" = ( +/obj/structure/table/glass, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bED" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"bEE" = ( +/obj/structure/table, +/obj/item/clothing/under/shorts/red, +/obj/item/clothing/under/shorts/red, +/obj/item/clothing/gloves/boxing{ + pixel_y = 8 + }, +/obj/item/clothing/gloves/boxing{ + pixel_y = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"bEF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bEG" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"bEH" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/kitchen/backroom) +"bEI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bEJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bEK" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/fore) +"bEL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"bEM" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"bEN" = ( +/obj/machinery/computer/communications{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/camera{ + c_tag = "Bridge - Captain's Quarters"; + dir = 8; + pixel_y = -22 + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Captain's Desk"; + departmentType = 5; + name = "Captain RC"; + pixel_x = 30 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"bEO" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"bEP" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/sign/poster/official/high_class_martini{ + pixel_x = -32 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"bEQ" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal"; + dir = 8; + name = "Waste Disposal APC"; + pixel_x = -24 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bER" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/newscaster{ + pixel_y = -28 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/bar) +"bES" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"bET" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"bEU" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bEV" = ( +/obj/item/radio/intercom{ + frequency = 1359; + name = "Station Intercom (Security)"; + pixel_x = 26 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"bEW" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bEX" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"bEY" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bEZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AIShutter"; + name = "AI Core Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"bFa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/router) +"bFb" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/router) +"bFc" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bFd" = ( +/obj/structure/closet/crate/trashcart, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bFe" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/reagent_containers/glass/bucket, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bFf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "AIShutter"; + name = "AI Core Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai) +"bFg" = ( +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bFh" = ( +/obj/effect/turf_decal/tile/brown, +/obj/machinery/light, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bFi" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bFj" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"bFk" = ( +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"bFl" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/xenobiology) +"bFm" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/stripes/line, +/obj/item/paper_bin, +/obj/item/pen/fourcolor, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bFn" = ( +/turf/open/floor/plating/asteroid, +/area/chapel/main) +"bFo" = ( +/obj/machinery/smartfridge/extract/preloaded, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bFp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bFq" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/stripes/line, +/obj/item/slime_scanner, +/obj/item/slime_scanner, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bFr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"bFs" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#c1caff" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bFt" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bFu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/medical/chemistry) +"bFv" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"bFw" = ( +/obj/machinery/monkey_recycler, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "area/science/xenobiology"; + name = "Xenobiology Lab APC"; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bFx" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/stripes/line, +/obj/item/reagent_containers/glass/beaker/large, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"bFy" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/aft"; + dir = 8; + name = "Head of Personnel APC"; + pixel_x = -24 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) +"bFz" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/gateway) +"bFA" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bFB" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/full, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bFC" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/item/storage/fancy/donut_box, +/obj/item/storage/box/beakers, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bFD" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bFE" = ( +/obj/machinery/smoke_machine, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"bFF" = ( +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bFG" = ( +/obj/structure/sign/departments/chemistry, +/turf/closed/wall, +/area/medical/chemistry) +"bFH" = ( +/obj/machinery/power/apc{ + name = "Customs APC"; + pixel_y = -24 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bFI" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bFJ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bFK" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bFL" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bFM" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bFN" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"bFO" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bFP" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bFQ" = ( +/obj/structure/table, +/obj/item/clothing/under/shorts/blue, +/obj/item/clothing/under/shorts/blue, +/obj/item/clothing/gloves/boxing/blue{ + pixel_y = 8 + }, +/obj/item/clothing/gloves/boxing/blue{ + pixel_y = 8 + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"bFR" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-08" + }, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"bFS" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"bFT" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bFU" = ( +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bFV" = ( +/obj/structure/window/reinforced, +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bFW" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"bFX" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bFY" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/noticeboard{ + pixel_y = 28 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bFZ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bGa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bGb" = ( +/obj/machinery/conveyor/auto{ + id = "router" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bGc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bGd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bGe" = ( +/mob/living/simple_animal/crab/Coffee, +/turf/open/floor/plating/asteroid, +/area/chapel/main) +"bGf" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/security/main) +"bGg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/circuit, +/area/ai_monitored/turret_protected/ai) +"bGh" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bGi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bGj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bGk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/router) +"bGl" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/poster/contraband/punch_shit{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bGm" = ( +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bGn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"bGo" = ( +/obj/structure/rack, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/head/hardhat/red{ + pixel_y = 6 + }, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/air, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"bGp" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"bGq" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) +"bGr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bGs" = ( +/obj/machinery/vending/assist, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"bGt" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bGu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Fore Maintenance"; + req_one_access_txt = "12;46" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/hallway/primary/port/fore) +"bGv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Arcade" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"bGw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Fitness Room" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"bGx" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/crew_quarters/fitness) +"bGy" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = 26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/massdriver{ + id = "eng_in"; + name = "mass driver button (Engineering)"; + pixel_x = 24; + pixel_y = -8 + }, +/obj/machinery/button/massdriver{ + id = "router_out"; + name = "mass driver button (Other)"; + pixel_x = 24; + pixel_y = 12 + }, +/turf/open/floor/plasteel, +/area/router) +"bGz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"bGA" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bGB" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bGC" = ( +/obj/structure/closet/emcloset, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/camera{ + c_tag = "Starboard Quarter Maintenance - Starboard"; + network = list("ss13","rd") + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bGD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bGE" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bGF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Starboard Quarter Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"bGG" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"bGH" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bGI" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"bGJ" = ( +/obj/structure/rack, +/obj/item/storage/box/bodybags, +/obj/item/clothing/gloves/color/grey, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bGK" = ( +/obj/machinery/conveyor{ + id = "starboard_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"bGL" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bGM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-20"; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bGN" = ( +/obj/structure/closet/wardrobe/white, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bGO" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/machinery/door/window/eastright{ + name = "Bathroom Stall" + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"bGP" = ( +/obj/machinery/mass_driver{ + dir = 1; + id = "secserv"; + name = "Router Driver" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"bGQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/violet/hidden, +/turf/open/space/basic, +/area/space/nearstation) +"bGR" = ( +/obj/structure/closet/wardrobe/grey, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/clothing/under/staffassistant, +/obj/item/clothing/under/staffassistant, +/obj/item/clothing/under/staffassistant, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bGS" = ( +/obj/structure/toilet{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/machinery/door/window/eastright{ + name = "Bathroom Stall" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"bGT" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet) +"bGU" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"bGV" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"bGW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/maintenance/port/fore) +"bGX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bGY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"bGZ" = ( +/obj/structure/closet/crate/internals, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/router/eva) +"bHa" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/router/eva"; + dir = 4; + name = "EVA Router APC"; + pixel_x = 24 + }, +/obj/machinery/button/door{ + id = "evablock"; + name = "Router Access Control"; + pixel_x = 24; + pixel_y = 10; + req_access_txt = "19" + }, +/turf/open/floor/plasteel, +/area/router/eva) +"bHb" = ( +/obj/structure/closet/wardrobe/black, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bHc" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/obj/structure/window/reinforced/spawner/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bHd" = ( +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bHe" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/violet/hidden, +/turf/open/space/basic, +/area/space/nearstation) +"bHf" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bHg" = ( +/obj/machinery/atmospherics/pipe/simple/violet/visible, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bHh" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"bHi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"bHj" = ( +/obj/structure/table, +/obj/structure/bedsheetbin/towel, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bHk" = ( +/turf/closed/wall, +/area/crew_quarters/locker) +"bHl" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"bHm" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/port/fore) +"bHn" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bHo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bHp" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bHq" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bHr" = ( +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bHs" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bHt" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bHu" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bHv" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/clothing/under/staffassistant, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bHw" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/clothing/under/staffassistant, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bHx" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bHy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-14" + }, +/turf/open/floor/plasteel, +/area/crew_quarters/locker) +"bHz" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"bHA" = ( +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bHB" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/locker) +"bHC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bHD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bHE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bHF" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/timer{ + pixel_x = -5 + }, +/obj/item/assembly/timer{ + pixel_y = -7 + }, +/obj/item/assembly/timer{ + pixel_y = 6 + }, +/obj/item/assembly/timer{ + pixel_x = 8 + }, +/obj/machinery/airalarm/unlocked{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bHG" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Starboard"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bHH" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/space_cube{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/gateway) +"bHI" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bHJ" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bHK" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall, +/area/medical/morgue) +"bHL" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bHM" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/storage/tech) +"bHN" = ( +/turf/closed/wall, +/area/maintenance/solars/starboard/aft) +"bHO" = ( +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"bHP" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"bHQ" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bHR" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bHS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"bHT" = ( +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bHU" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bHV" = ( +/obj/machinery/processor/slime, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bHW" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bHX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Port Bow Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bHY" = ( +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bHZ" = ( +/turf/closed/indestructible{ + desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease"; + icon_state = "riveted"; + name = "hyper-reinforced wall" + }, +/area/science/test_area) +"bIa" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIb" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/plating, +/area/medical/chemistry) +"bId" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/mob/living/simple_animal/bot/firebot, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bIe" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bIf" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/landmark/start/chemist, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bIg" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/item/reagent_containers/food/snacks/chips, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bIh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bIi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bIj" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bIk" = ( +/obj/machinery/smartfridge/chemistry/preloaded, +/turf/closed/wall, +/area/medical/chemistry) +"bIl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bIm" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bIn" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bIo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/directions/evac{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bIp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bIq" = ( +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bIr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bIs" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bIt" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bIu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Morgue"; + req_access_txt = "5;6" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bIv" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bIw" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bIx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bIy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "External Solar Access"; + req_access_txt = "10;13" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"bIz" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"bIA" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"bIB" = ( +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"bIC" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/aft"; + dir = 8; + name = "Aft Maintenance APC"; + pixel_x = -24 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bID" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"bIE" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"bIF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bIG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIH" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bII" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIJ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bIK" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/item/extinguisher{ + pixel_x = -7; + pixel_y = 3 + }, +/obj/item/extinguisher, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bIL" = ( +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bIM" = ( +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bIN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bIO" = ( +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bIP" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bIQ" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bIR" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bIS" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bIT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/obj/machinery/atmospherics/pipe/simple/violet/hidden{ + icon_state = "pipe11-2"; + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bIU" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bIV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bIW" = ( +/obj/structure/table/wood, +/obj/machinery/light, +/obj/item/reagent_containers/food/drinks/bottle/absinthe, +/obj/item/stack/spacecash/c20, +/obj/item/coin/gold, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/heads/hop) +"bIX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bIY" = ( +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bIZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bJa" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bJb" = ( +/obj/machinery/bloodbankgen, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bJc" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bJd" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bJe" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bJf" = ( +/obj/structure/closet/secure_closet/personal/patient, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bJg" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/storage/box/rxglasses{ + pixel_x = 2 + }, +/obj/item/pen, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bJh" = ( +/obj/structure/sign/warning/biohazard, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/medical/morgue) +"bJi" = ( +/obj/structure/bodycontainer/morgue, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bJj" = ( +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 6 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bJk" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bJl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bJm" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/lawoffice"; + dir = 1; + name = "Information Office APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/lawoffice) +"bJn" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/mask/muzzle, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bJo" = ( +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) +"bJp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bJq" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) +"bJr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 1 + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"bJs" = ( +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bJt" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bJu" = ( +/obj/effect/turf_decal/loading_area, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/science/lab"; + dir = 8; + name = "Research and Development APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bJv" = ( +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bJw" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bJx" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bJy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bJz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bJA" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/research{ + name = "Circuitry Lab"; + req_access_txt = "47" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bJB" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bJC" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bJD" = ( +/obj/machinery/chem_heater, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"bJE" = ( +/obj/machinery/chem_dispenser, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/reagent_containers/glass/beaker/large, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"bJF" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bJG" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bJH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/chemistry) +"bJI" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bJJ" = ( +/obj/machinery/computer/med_data, +/obj/structure/window/reinforced/spawner/east, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"bJK" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/medical/medbay/lobby) +"bJL" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"bJM" = ( +/obj/machinery/camera/preset/toxins{ + dir = 4; + network = list("rd","toxins","ss13") + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"bJN" = ( +/obj/machinery/clonepod, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"bJO" = ( +/obj/structure/table, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/item/storage/firstaid/radbgone, +/obj/item/reagent_containers/glass/beaker/synthflesh, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"bJP" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bJQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"bJR" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bJS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bJT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bJU" = ( +/obj/effect/turf_decal/tile/brown, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bJV" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1; + name = "euthanization chamber freezer" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bJW" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bJX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bJY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"bJZ" = ( +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Main Access"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bKa" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bKb" = ( +/obj/machinery/chem_heater, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bKc" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -6 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 4 + }, +/obj/item/reagent_containers/dropper, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bKd" = ( +/obj/structure/closet/bombcloset, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bKe" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bKf" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bKg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bKh" = ( +/obj/machinery/door/window/westleft{ + name = "Operating Theatre"; + req_access_txt = "45" + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"bKi" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/stripes/red/full, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bKj" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bKk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Morgue Maintenance"; + req_access_txt = "6" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bKl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating, +/area/router) +"bKm" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/item/storage/box/bodybags, +/obj/structure/table, +/obj/structure/table, +/obj/item/bodybag, +/obj/item/pen/blue, +/obj/item/pen/red{ + pixel_y = 6 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bKn" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/red/full, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bKo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external, +/turf/open/floor/plating, +/area/quartermaster/miningoffice) +"bKp" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bKq" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bKr" = ( +/obj/item/stack/packageWrap, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/router) +"bKs" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bKt" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bKu" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bKv" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bKw" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/sign/poster/official/nanotrasen_logo{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/library) +"bKx" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bKy" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bKz" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/genetics) +"bKA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/medical/genetics) +"bKB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bKC" = ( +/obj/structure/sign/warning/biohazard, +/turf/closed/wall, +/area/medical/genetics) +"bKD" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Mining Dock Ferry"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bKE" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bKF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bKG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"bKH" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/storage) +"bKI" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/engine, +/area/science/mixing) +"bKJ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bKK" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bKL" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/router) +"bKM" = ( +/turf/open/floor/engine, +/area/science/xenobiology) +"bKN" = ( +/obj/machinery/vending/wardrobe/chem_wardrobe, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bKO" = ( +/obj/structure/closet/crate/medical, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/reagent_containers/glass/bottle/ammonia, +/obj/item/reagent_containers/glass/bottle/atropine, +/obj/item/reagent_containers/glass/bottle/bromine, +/obj/item/reagent_containers/glass/bottle/charcoal, +/obj/item/reagent_containers/glass/bottle/diethylamine, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/obj/item/reagent_containers/glass/bottle/ethanol, +/obj/item/reagent_containers/glass/bottle/formaldehyde, +/obj/item/reagent_containers/glass/bottle/iron, +/obj/item/reagent_containers/glass/bottle/morphine, +/obj/item/reagent_containers/glass/bottle/salglu_solution, +/obj/item/reagent_containers/glass/bottle/toxin, +/obj/item/reagent_containers/glass/bottle/carbon, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bKP" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/window/northright{ + name = "Emergency Shower" + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"bKQ" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/shower{ + dir = 8; + name = "emergency shower"; + pixel_y = -4 + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"bKR" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Library"; + network = list("ss13","rd") + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/library) +"bKS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Genetics Lab"; + req_access_txt = "9" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bKT" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bKU" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/vending/wardrobe/gene_wardrobe, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bKV" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/item/clipboard{ + pixel_y = 3 + }, +/obj/item/paper_bin, +/obj/item/hand_labeler, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bKW" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/folder/white, +/obj/item/storage/pill_bottle/mannitol{ + pixel_x = 4 + }, +/obj/item/storage/pill_bottle/mutadone, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bKX" = ( +/obj/structure/table_frame, +/obj/item/t_scanner{ + pixel_x = -4 + }, +/obj/machinery/camera{ + c_tag = "Supply - Warehouse Fore"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bKY" = ( +/turf/closed/wall, +/area/medical/genetics) +"bKZ" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"bLa" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bLb" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/item/stack/ore/glass, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/silver, +/obj/item/stack/ore/silver, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bLc" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bLd" = ( +/mob/living/simple_animal/slime, +/turf/open/floor/engine, +/area/science/xenobiology) +"bLe" = ( +/obj/machinery/door/window/westright{ + name = "Containment Pen"; + req_one_access_txt = "55" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bLf" = ( +/obj/machinery/door/window/eastleft{ + name = "Containment Pen"; + req_one_access_txt = "55" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bLg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bLh" = ( +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bLi" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bLj" = ( +/obj/machinery/door/window/westright{ + name = "Containment Pen"; + req_one_access_txt = "55" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bLk" = ( +/obj/machinery/door/window/eastleft{ + name = "Containment Pen"; + req_one_access_txt = "55" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bLl" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bLm" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + locked = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bLn" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/item/caution, +/obj/item/shovel, +/obj/item/stack/tile/plasteel{ + pixel_x = 10; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bLo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/router) +"bLp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"bLq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Genetics Lab"; + req_access_txt = "9" + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bLr" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bLs" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/geneticist, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bLt" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bLu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bLv" = ( +/obj/machinery/light, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bLw" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 6 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bLx" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/scientist, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bLy" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bLz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bLA" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/structure/table, +/obj/item/stack/sheet/metal, +/obj/item/stack/sheet/glass, +/obj/item/flashlight, +/obj/item/assembly/health, +/obj/item/assembly/voice, +/obj/item/assembly/timer, +/obj/item/assembly/infra, +/obj/item/assembly/igniter, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bLB" = ( +/obj/vehicle/ridden/wheelchair, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bLC" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai) +"bLD" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/aft) +"bLE" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/button/ignition/incinerator/toxmix{ + pixel_x = -24; + pixel_y = 8 + }, +/obj/machinery/button/door/incinerator_vent_toxmix{ + pixel_x = -24; + pixel_y = -2 + }, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"bLF" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bLG" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Research Aft"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bLH" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bLI" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"bLJ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bLK" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bLL" = ( +/obj/vehicle/ridden/wheelchair, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bLM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/genetics) +"bLN" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bLO" = ( +/obj/item/pipe{ + pixel_x = -3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/mob/living/simple_animal/bot/cleanbot{ + auto_patrol = 1; + icon_state = "cleanbot1"; + name = "Mopficcer Sweepsky" + }, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bLP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bLQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bLR" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bLS" = ( +/obj/machinery/atmospherics/pipe/simple/violet/visible, +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bLT" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bLU" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bLV" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bLW" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay/central) +"bLX" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-02" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bLY" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bLZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bMa" = ( +/obj/vehicle/ridden/wheelchair, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bMb" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bMc" = ( +/obj/machinery/computer/scan_consolenew{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bMd" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/white/full, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bMe" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bMf" = ( +/obj/machinery/computer/scan_consolenew{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bMg" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"bMh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bMi" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bMj" = ( +/turf/closed/wall, +/area/medical/medbay/central) +"bMk" = ( +/turf/closed/wall, +/area/medical/virology) +"bMl" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/medical/virology) +"bMm" = ( +/obj/structure/table/wood, +/obj/machinery/light, +/obj/item/clothing/under/assistantformal{ + pixel_y = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"bMn" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + name = "Monkey Pen"; + req_one_access_txt = "9;39" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMo" = ( +/obj/structure/closet/l3closet/virology, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMp" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bMq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Starboard Quarter Maintenance - Port"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bMr" = ( +/obj/machinery/vending/wardrobe/viro_wardrobe, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMs" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMt" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bMu" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMv" = ( +/turf/open/floor/grass, +/area/medical/virology) +"bMw" = ( +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/virology) +"bMx" = ( +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/sign/warning/biohazard{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bMy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/sign/warning/biohazard{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bMz" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/router"; + dir = 4; + name = "Router APC"; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 19 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/router) +"bMA" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/router) +"bMC" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMD" = ( +/obj/structure/flora/tree/palm{ + pixel_x = 0 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/grass, +/area/medical/virology) +"bME" = ( +/obj/structure/flora/tree/palm{ + pixel_x = 0 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/grass, +/area/medical/virology) +"bMF" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/window/southright{ + name = "Cloning Access"; + req_one_access_txt = "9;45" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bMG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bMH" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/item/crowbar, +/obj/machinery/requests_console{ + department = "Mining"; + name = "Mining RC"; + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bMI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille/broken, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 15 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/router) +"bMJ" = ( +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMK" = ( +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 5 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bML" = ( +/obj/structure/flora/tree/palm{ + pixel_x = 0 + }, +/turf/open/floor/grass, +/area/medical/virology) +"bMM" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bMN" = ( +/obj/structure/closet/l3closet/virology, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMO" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMP" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bMR" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall/rust, +/area/router) +"bMT" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start/virologist, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMU" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/box/donkpockets, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bMV" = ( +/obj/machinery/light, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/virology) +"bMW" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "router" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/router) +"bMX" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/violet/visible, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bMY" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bMZ" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bNa" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bNb" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bNc" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start/virologist, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNd" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"bNe" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/machinery/door/window/northleft{ + name = "AI Upload Chamber"; + req_one_access_txt = "65" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bNf" = ( +/obj/machinery/conveyor/auto{ + dir = 4; + id = "router" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/router) +"bNg" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology/glass{ + name = "Virology Interior Airlock"; + req_access_txt = "39" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNi" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/grass, +/area/medical/virology) +"bNj" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNk" = ( +/obj/machinery/conveyor/auto{ + dir = 4; + id = "router" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bNl" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "router" + }, +/turf/open/floor/plating, +/area/router) +"bNm" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/item/paper_bin, +/obj/item/pen/red, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNn" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/mass_driver{ + dir = 4; + id = "router_out"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/router) +"bNo" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "starboard_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"bNp" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"bNq" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bNr" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/bedsheetbin, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bNs" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNt" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bNu" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/grass, +/area/medical/virology) +"bNv" = ( +/obj/structure/sink{ + dir = 1; + pixel_y = 25 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bNw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNx" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNy" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNz" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNA" = ( +/obj/machinery/smartfridge/chemistry/virology/preloaded, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNB" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/item/clothing/gloves/color/latex, +/obj/item/healthanalyzer, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNC" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/machinery/light, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bND" = ( +/obj/machinery/computer/pandemic, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNE" = ( +/obj/machinery/computer/station_alert{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, +/area/engine/atmos) +"bNF" = ( +/turf/open/floor/plasteel/stairs, +/area/medical/medbay/central) +"bNG" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"bNH" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) +"bNI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/departments/evac, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bNJ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/hallway/secondary/exit) +"bNK" = ( +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/aft) +"bNL" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solar/starboard/aft) +"bNM" = ( +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel, +/area/maintenance/port/fore) +"bNN" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/router/eva) +"bNO" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"bNP" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"bNQ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) +"bNR" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"bNS" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) +"bNT" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/port/fore) +"bNU" = ( +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/obj/structure/cable, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solar/starboard/aft) +"bNV" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bNW" = ( +/turf/open/floor/plasteel/stairs/left, +/area/hallway/secondary/exit) +"bNX" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/stairs/right, +/area/hallway/secondary/exit) +"bNY" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/stairs/left, +/area/hallway/secondary/exit) +"bNZ" = ( +/turf/open/floor/plasteel/stairs/right, +/area/hallway/secondary/exit) +"bOa" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bOb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bOc" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/port) +"bOd" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) +"bOe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external/glass{ + name = "Departures Shuttle Dock" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bOf" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/solar/port) +"bOg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bOh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bOi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bOj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bOk" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) +"bOl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bOm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bOn" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Shuttle Maintenance Access" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bOo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/docking, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"bOp" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Departures Shuttle Dock" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bOq" = ( +/obj/machinery/power/tracker, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/solar/starboard/aft) +"bOr" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"bOs" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/bz, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bOt" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/gateway) +"bOu" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/prox_sensor{ + pixel_x = 8 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 8 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 8 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = 8 + }, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science RC"; + pixel_x = 30; + receive_ore_updates = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bOv" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"bOw" = ( +/obj/structure/lattice, +/obj/item/reagent_containers/food/drinks/bottle/grappa, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bOx" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/science/research{ + name = "Research Sector" + }) +"bOy" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bOz" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bOA" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"bOB" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/router/eva) +"bOC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/router/eva) +"bOD" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/obj/machinery/sparker/toxmix{ + pixel_x = 25 + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bOE" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/hand_labeler, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bOF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bOG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bOH" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bOI" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen{ + dir = 1; + name = "Test Chamber Monitor"; + network = list("xeno"); + pixel_y = 2 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bOJ" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bOK" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/northright{ + name = "Secure Xenobiological Containment"; + req_one_access_txt = "55" + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bOL" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/clothing/mask/gas, +/obj/item/clothing/glasses/science, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bOM" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bON" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bOO" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"bOP" = ( +/obj/machinery/shieldwallgen/xenobiologyaccess, +/turf/open/floor/plating, +/area/science/xenobiology) +"bOQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/turf/open/floor/plating, +/area/science/xenobiology) +"bOR" = ( +/obj/machinery/door/window/southright{ + name = "Secure Xenobiological Containment"; + req_one_access_txt = "55" + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bOS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/science/xenobiology) +"bOT" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bOU" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bOV" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"bOW" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/engine, +/area/science/xenobiology) +"bOX" = ( +/obj/structure/table/reinforced, +/obj/item/electropack, +/obj/item/assembly/signaler, +/turf/open/floor/engine, +/area/science/xenobiology) +"bOY" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/machinery/camera{ + c_tag = "Customs - Aft"; + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "HoPAft"; + name = "HoP Aft Desk Shutters" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"bOZ" = ( +/obj/structure/bed, +/obj/item/bedsheet/purple, +/turf/open/floor/engine, +/area/science/xenobiology) +"bPa" = ( +/obj/item/beacon, +/turf/open/floor/engine, +/area/science/xenobiology) +"bPb" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/turf/open/floor/engine, +/area/science/xenobiology) +"bPc" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/engine, +/area/science/xenobiology) +"bPd" = ( +/obj/structure/table/reinforced, +/obj/item/book/random/triple, +/turf/open/floor/engine, +/area/science/xenobiology) +"bPe" = ( +/obj/structure/table/reinforced, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/engine, +/area/science/xenobiology) +"bPf" = ( +/obj/machinery/light, +/turf/open/floor/engine, +/area/science/xenobiology) +"bPg" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bPh" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/engine, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"bPi" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"bPj" = ( +/obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner, +/obj/machinery/light, +/turf/open/floor/engine, +/area/science/xenobiology) +"bPk" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/under/staffassistant, +/obj/item/clothing/under/staffassistant, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/suit/apron/surgical, +/turf/open/floor/engine, +/area/science/xenobiology) +"bPl" = ( +/obj/structure/chair/sofa/right, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/item/book/manual/wiki/research_and_development, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bPm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bPn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bPo" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bPp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bPq" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/mineral/stacking_machine{ + input_dir = 2 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bPr" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bPs" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bPt" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/bridge) +"bPu" = ( +/obj/effect/landmark/start/cook, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"bPv" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/yellow, +/obj/item/multitool, +/obj/item/multitool{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/t_scanner{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/t_scanner{ + pixel_x = -4 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bPw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bPx" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bPy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bPz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bPA" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bPB" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPC" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Waste In" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPD" = ( +/obj/structure/table/glass, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Escape Hall - Fore"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bPE" = ( +/obj/structure/table/glass, +/obj/item/clipboard, +/obj/item/storage/crayons, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bPF" = ( +/obj/structure/table/glass, +/obj/item/storage/fancy/cigarettes, +/obj/item/lighter{ + pixel_x = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bPG" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bPH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bPI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bPJ" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPK" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bPL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bPM" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bPN" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bPO" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/exit) +"bPP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/medical/medbay/central) +"bPQ" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bPR" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bPS" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bPT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white/corner{ + dir = 4 + }, +/area/hallway/secondary/exit) +"bPU" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/highsecurity{ + name = "AI Upload Access"; + req_access_txt = "16" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/turret_protected/ai) +"bPV" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai) +"bPW" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/vehicle/ridden/atv, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bPX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Foyer"; + req_one_access_txt = "10;24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bPY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bPZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail{ + sortType = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bQa" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bQb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/camera/motion{ + c_tag = "AI Foyer"; + network = list("minisat"); + pixel_x = 22 + }, +/obj/machinery/turretid{ + control_area = "area/ai_monitored/turret_protected/ai"; + dir = 1; + name = "AI Chamber turret control"; + pixel_x = 5; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bQc" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bQd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bQe" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) +"bQf" = ( +/obj/structure/rack, +/obj/item/tank/jetpack/carbondioxide, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bQg" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=sci"; + location = "market" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + dir = 4; + id = "EngiCargoConveyer" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bQi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bQj" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bQk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bQl" = ( +/obj/structure/bed/roller, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bQm" = ( +/obj/structure/bed/roller, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bQn" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bQo" = ( +/obj/structure/disposalpipe/junction/yjunction, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"bQp" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bQq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bQr" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bQs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) +"bQt" = ( +/obj/machinery/conveyor/auto{ + dir = 5; + id = "router" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bQu" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bQv" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bQw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQy" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bQz" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bQA" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -28 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel, +/area/lawoffice) +"bQB" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/weldingtool, +/obj/item/wrench/medical, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bQC" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bQD" = ( +/obj/machinery/power/apc{ + name = "Tech Storage APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"bQE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bQF" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bQG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bQH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bQI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQJ" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/power/apc{ + name = "Medbay Treatment Center APC"; + pixel_y = -24 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bQK" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start/atmospheric_technician, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bQL" = ( +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bQM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bQN" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/space/basic, +/area/space/nearstation) +"bQO" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/space/basic, +/area/space/nearstation) +"bQP" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bQQ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/machinery/light, +/obj/effect/turf_decal/stripes/red/full, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/sign/poster/official/cleanliness{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bQR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/directions/evac{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bQS" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/space/basic, +/area/space/nearstation) +"bQT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/radio/intercom{ + frequency = 1447; + name = "Station Intercom (AI Private)"; + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bQU" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"bQV" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/space/basic, +/area/space/nearstation) +"bQW" = ( +/obj/machinery/conveyor/auto{ + dir = 4; + id = "router" + }, +/turf/open/floor/plating, +/area/router) +"bQX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bQY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bQZ" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/landmark/start/scientist, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bRa" = ( +/obj/item/cigbutt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"bRb" = ( +/obj/machinery/door/window/southleft{ + name = "Captain's Equipment"; + req_access_txt = "20" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/captain) +"bRc" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"bRd" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/engine/storage"; + dir = 4; + name = "Canister Storage APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"bRe" = ( +/obj/machinery/computer/security/wooden_tv, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/lawoffice) +"bRf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bRg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bRh" = ( +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bRi" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bRj" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bRk" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bRl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "router" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/router) +"bRm" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bRn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Foyer"; + req_one_access_txt = "10;24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bRo" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bRp" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/turf/open/space/basic, +/area/space/nearstation) +"bRq" = ( +/obj/machinery/portable_atmospherics/scrubber/huge/movable, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bRr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bRs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bRt" = ( +/obj/structure/closet/wardrobe/miner, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/miningoffice"; + dir = 8; + name = "Mining Office APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bRu" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bRv" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/space/basic, +/area/space/nearstation) +"bRw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bRx" = ( +/obj/structure/table, +/obj/item/circuitboard/machine/cyborgrecharger, +/obj/item/disk/design_disk, +/obj/machinery/camera/motion{ + c_tag = "Computer Core"; + dir = 1; + network = list("minisat") + }, +/turf/open/floor/circuit/green/telecomms, +/area/science/server{ + name = "Computer Core" + }) +"bRy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bRz" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bRA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Access"; + req_one_access_txt = "10;24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bRB" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 29 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bRC" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bRD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bRE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "router" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/router) +"bRF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"bRG" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"bRH" = ( +/obj/structure/chair/sofa/right, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 29 + }, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"bRI" = ( +/turf/closed/wall/r_wall, +/area/medical/medbay/central) +"bRJ" = ( +/obj/structure/chair/sofa/left, +/obj/effect/landmark/start/assistant, +/obj/machinery/status_display{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Waiting Room"; + network = list("ss13","rd") + }, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"bRK" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"bRL" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bRM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/stairs/left, +/area/science/research{ + name = "Research Sector" + }) +"bRN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/stairs/medium, +/area/science/research{ + name = "Research Sector" + }) +"bRO" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bRP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "E.V.A. Storage"; + req_access_txt = "18" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bRQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bRR" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bRS" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bRT" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bRU" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bRV" = ( +/obj/structure/sign/departments/chemistry, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall, +/area/medical/chemistry) +"bRW" = ( +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bRX" = ( +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bRY" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/storage/belt/medical, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bRZ" = ( +/obj/structure/closet/l3closet, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bSa" = ( +/obj/structure/closet/secure_closet/medical3, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/item/storage/belt/medolier, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bSb" = ( +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"bSc" = ( +/obj/machinery/vending/wardrobe/medi_wardrobe, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bSd" = ( +/obj/structure/closet/secure_closet/chemical, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bSe" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Robotics"; + departmentType = 2; + name = "Robotics RC"; + pixel_x = -30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"bSf" = ( +/obj/structure/table, +/obj/item/analyzer, +/obj/item/healthanalyzer, +/obj/item/plant_analyzer, +/obj/item/aicard, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 29 + }, +/turf/open/floor/plating, +/area/storage/tech) +"bSg" = ( +/obj/machinery/rnd/production/techfab/department/medical, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bSh" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/medbay/central) +"bSi" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"bSj" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/effect/landmark/blobstart, +/obj/effect/landmark/xeno_spawn, +/obj/machinery/camera{ + c_tag = "Xenobiology - Kill Chamber"; + dir = 4 + }, +/turf/open/floor/circuit/telecomms, +/area/science/xenobiology) +"bSk" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/public/glass{ + name = "AI Access" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bSl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bSm" = ( +/obj/machinery/modular_computer/console/preset/engineering, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bSn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/electricshock, +/turf/open/floor/plating, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bSo" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bSp" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bSq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bSr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bSs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bSt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bSu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"bSv" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bSw" = ( +/obj/machinery/power/port_gen/pacman, +/obj/machinery/light, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/turf/open/floor/plating, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bSx" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bSy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bSz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "router" + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 11 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/router) +"bSA" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/stairs/right, +/area/hallway/primary/central) +"bSB" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bSC" = ( +/turf/closed/wall, +/area/science/lab) +"bSD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "router" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/router) +"bSE" = ( +/turf/closed/wall/r_wall, +/area/science/lab) +"bSF" = ( +/obj/machinery/conveyor/auto{ + dir = 4; + id = "router" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/router) +"bSG" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/lab) +"bSH" = ( +/obj/structure/sign/departments/science, +/turf/closed/wall/r_wall, +/area/science/lab) +"bSI" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating, +/area/router) +"bSJ" = ( +/obj/structure/closet/crate/science, +/obj/item/target, +/obj/item/target, +/obj/item/target/alien, +/obj/item/target/alien, +/obj/item/target/syndicate, +/obj/item/target/syndicate, +/obj/item/gun/energy/laser/practice, +/obj/item/gun/energy/laser/practice, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/science/circuit"; + dir = 1; + name = "Circuitry Lab APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bSK" = ( +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bSL" = ( +/turf/open/floor/plasteel/white, +/area/science/lab) +"bSM" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bSN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/item/folder/white, +/obj/item/disk/design_disk, +/obj/item/disk/design_disk, +/obj/item/disk/tech_disk, +/obj/item/disk/tech_disk, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bSO" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/public/glass{ + name = "AI Access" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bSP" = ( +/obj/machinery/computer/rdconsole/core, +/turf/open/floor/plasteel, +/area/science/lab) +"bSQ" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bSR" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bSS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bST" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bSU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bSV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"bSW" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bSX" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/white/full, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medical)"; + pixel_x = 28; + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bSY" = ( +/obj/structure/table, +/obj/item/stock_parts/micro_laser{ + pixel_x = 4 + }, +/obj/item/stock_parts/micro_laser{ + pixel_x = 4 + }, +/obj/item/stock_parts/scanning_module{ + pixel_x = -6 + }, +/obj/item/stock_parts/scanning_module{ + pixel_x = -6 + }, +/obj/item/stock_parts/capacitor, +/obj/item/stock_parts/capacitor, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bSZ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bTa" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bTb" = ( +/turf/open/floor/plasteel, +/area/science/lab) +"bTc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/science/lab) +"bTd" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bTe" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/scientist, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bTf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bTg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bTh" = ( +/obj/machinery/rnd/production/protolathe/department/science, +/turf/open/floor/plasteel, +/area/science/lab) +"bTi" = ( +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/obj/item/reagent_containers/glass/beaker/sulphuric, +/turf/open/floor/plasteel, +/area/science/lab) +"bTj" = ( +/obj/structure/table, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -6 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 4 + }, +/obj/item/reagent_containers/dropper, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bTk" = ( +/obj/item/rack_parts, +/obj/structure/table_frame, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/warehouse"; + dir = 1; + name = "Warehouse APC"; + pixel_y = 24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bTl" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/clothing/glasses/welding, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bTm" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bTn" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bTo" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_electronics/debugger, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bTp" = ( +/obj/machinery/vending/wardrobe/law_wardrobe, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel, +/area/lawoffice) +"bTq" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/circuit) +"bTr" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"bTs" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/circuit) +"bTt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"bTu" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bTv" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bTw" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bTx" = ( +/obj/item/stack/tile/plasteel{ + pixel_x = 8; + pixel_y = 14 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bTy" = ( +/obj/item/twohanded/required/kirbyplants, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bTz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bTA" = ( +/obj/structure/filingcabinet/medical, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bTB" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/medical/medbay/lobby) +"bTC" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bTD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bTE" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bTF" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bTG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/science/circuit) +"bTH" = ( +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"bTI" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"bTJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"bTK" = ( +/turf/open/floor/engine/co2, +/area/engine/atmos) +"bTL" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"bTM" = ( +/obj/structure/table, +/obj/machinery/light, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/storage/toolbox/mechanical, +/obj/machinery/camera{ + c_tag = "Research - Development Lab"; + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science RC"; + pixel_y = -30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bTN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/science/circuit) +"bTO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bTP" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bTQ" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bTR" = ( +/turf/closed/wall/r_wall, +/area/science/circuit) +"bTS" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/item/stock_parts/cell/high/plus, +/obj/item/radio/off{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bTT" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"bTU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "recycler" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bTV" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 4; + id = "EngiCargoConveyer" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bTW" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"bTX" = ( +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bTY" = ( +/turf/open/floor/mineral/titanium/blue, +/area/hallway/primary/central) +"bTZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/lattice, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"bUa" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Atmospherics - Entrance" + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + dir = 4; + id = "EngiCargoConveyer" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bUc" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bUd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bUe" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating/airless, +/area/router/aux) +"bUf" = ( +/obj/structure/plasticflaps, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + dir = 4; + id = "EngiCargoConveyer" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bUg" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "router" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"bUh" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bUi" = ( +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + locked = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bUj" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bUk" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/window/reinforced/spawner/west, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bUl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bUm" = ( +/obj/structure/closet/crate/internals, +/obj/item/tank/internals/emergency_oxygen/double, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bUn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bUo" = ( +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bUp" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor/auto{ + id = "router" + }, +/turf/open/floor/plating, +/area/router) +"bUq" = ( +/turf/closed/wall/r_wall, +/area/hallway/primary/aft) +"bUr" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/hallway/primary/aft) +"bUs" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bUt" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/science/server{ + name = "Computer Core" + }) +"bUu" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bUv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/hallway/primary/aft) +"bUw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bUx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"bUy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bUz" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bUA" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"bUB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/engine/engine_smes"; + dir = 1; + name = "Power Monitoring APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bUC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bUD" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bUE" = ( +/turf/open/floor/plasteel/stairs/right, +/area/hallway/primary/aft) +"bUF" = ( +/obj/machinery/doppler_array/research/science{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bUG" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bUH" = ( +/obj/machinery/shieldgen, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bUI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bUJ" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/science/lab) +"bUK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Quartermaster's Office"; + req_access_txt = "31;41" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"bUL" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/router) +"bUM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/quartermaster/qm) +"bUN" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/door/airlock/engineering{ + name = "Primary Tool Storage"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bUO" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/storage/primary"; + dir = 1; + name = "Primary Tool Storage APC"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bUP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/quartermaster/sorting) +"bUQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "DeliveryDoor"; + name = "Cargo Delivery Door Control"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bUR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/mob/living/simple_animal/bot/firebot, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bUS" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/photocopier, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Cargo Bay"; + departmentType = 2; + name = "Cargo RC"; + pixel_y = 30 + }, +/obj/machinery/camera{ + c_tag = "Supply - Delivery Office Aft"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bUT" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/filingcabinet/filingcabinet, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bUU" = ( +/obj/item/beacon, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bUV" = ( +/obj/effect/turf_decal/stripes/white/full, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUW" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard/aft"; + dir = 1; + name = "Starboard Quarter Maintenance APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bUX" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bUY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/item/grown/bananapeel, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/router) +"bUZ" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/wirecutters, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bVa" = ( +/obj/machinery/light/small, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/router) +"bVb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Access"; + req_one_access_txt = "10;24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"bVc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bVd" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bVe" = ( +/obj/machinery/photocopier, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bVf" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Power Monitoring"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"bVg" = ( +/obj/machinery/power/emitter, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bVh" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bVi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bVj" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bVk" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bVl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bVm" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bVn" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"bVo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bVp" = ( +/obj/machinery/computer/card/minor/rd{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bVq" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bVr" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bVs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/cargo_technician, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bVt" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bVu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_x = 26 + }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + locked = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/router) +"bVv" = ( +/obj/structure/sign/departments/xenobio{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"bVw" = ( +/obj/machinery/conveyor/auto{ + dir = 1; + id = "cargo" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bVx" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "cargo" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bVy" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "cargo" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"bVz" = ( +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/head/hardhat/red{ + pixel_y = 6 + }, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/air, +/obj/item/extinguisher{ + pixel_x = -4 + }, +/obj/item/crowbar/red{ + pixel_x = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bVA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/router) +"bVB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bVC" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "AI SMES Access"; + req_one_access_txt = "10;24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bVD" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bVE" = ( +/obj/effect/landmark/start/atmospheric_technician, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVF" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bVG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bVH" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/janitor) +"bVI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bVJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bVK" = ( +/obj/item/restraints/legcuffs/beartrap, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"bVL" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/noticeboard/rd{ + pixel_y = 28 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bVM" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bVN" = ( +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"bVO" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bVP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bVQ" = ( +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bVR" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/sign/warning/securearea{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bVS" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bVT" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bVU" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/lawoffice) +"bVV" = ( +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"bVW" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"bVX" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bVY" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southright{ + name = "Primary Tool Storage Desk"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"bVZ" = ( +/obj/machinery/power/apc{ + name = "Cargo Bay APC"; + pixel_y = -24 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"bWa" = ( +/turf/closed/wall/r_wall, +/area/science/research{ + name = "Research Sector" + }) +"bWb" = ( +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWc" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWd" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/sign/poster/official/wtf_is_co2{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/science/explab) +"bWe" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Bridge" + }, +/turf/open/floor/plasteel, +/area/bridge) +"bWf" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWg" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Law Office"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"bWh" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"bWi" = ( +/obj/structure/table/wood, +/obj/item/cartridge/lawyer{ + pixel_x = 2; + pixel_y = 8 + }, +/obj/item/stamp/law, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"bWj" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"bWk" = ( +/obj/structure/table/wood, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"bWl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Toxins Storage"; + req_access_txt = "7;8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/science/mixing) +"bWm" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/engineering{ + name = "AI SMES Access"; + req_one_access_txt = "10;24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bWn" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bWo" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWp" = ( +/obj/machinery/atmospherics/miner/n2o, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"bWq" = ( +/obj/structure/lattice, +/obj/machinery/camera{ + c_tag = "Routing Depot - Aft Exterior"; + pixel_x = 22 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bWr" = ( +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/camera{ + c_tag = "Research Entrance"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWs" = ( +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWt" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bWu" = ( +/obj/machinery/vending/assist, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bWv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bWw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/lawoffice) +"bWx" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWy" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWz" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWA" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWB" = ( +/obj/structure/rack, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/extinguisher, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWC" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWD" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=2"; + freq = 1400; + location = "Medbay" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bWE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWF" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWG" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"bWH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/stairs/medium, +/area/hallway/primary/central) +"bWI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bWJ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"bWK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"bWL" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWM" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/obj/machinery/camera{ + c_tag = "Central Hall - AI Access"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bWN" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/science/server{ + name = "Computer Core" + }) +"bWO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bWP" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/command{ + name = "Computer Core"; + req_access_txt = "30" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bWQ" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"bWR" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/science/research{ + name = "Research Sector" + }) +"bWS" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"bWT" = ( +/obj/structure/chair/sofa/left, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWU" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWV" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWW" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWX" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bWY" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall/r_wall, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"bWZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall, +/area/hallway/primary/aft) +"bXa" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/item/multitool{ + pixel_y = 4 + }, +/obj/item/book/manual/wiki/robotics_cyborgs, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bXb" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bXc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"bXd" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"bXe" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/atmospherics/miner/toxins, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"bXf" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/button/door{ + id = "EngiLockdown"; + name = "Engineering Emergency Lockdown"; + pixel_x = 24; + pixel_y = -6; + req_access_txt = "11" + }, +/obj/machinery/button/door{ + name = "Privacy Shutters"; + pixel_x = 24; + pixel_y = 6 + }, +/obj/item/twohanded/required/kirbyplants/photosynthetic, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"bXg" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"bXh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bXi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bXj" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bXk" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bXl" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bXm" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bXn" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"bXo" = ( +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bXp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating, +/area/router) +"bXq" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bXr" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Research Fore"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bXs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"bXt" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bXu" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bXv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bXw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bXx" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bXy" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/light, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-16" + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bXz" = ( +/obj/machinery/power/apc{ + name = "Medbay Lobby APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bXA" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bXB" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bXC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bXD" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"bXE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bXF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/security/checkpoint/supply) +"bXG" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bXH" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hydroponics) +"bXI" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/computer/security{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/checkpoint/supply"; + dir = 4; + name = "Cargo Security Checkpoint APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"bXJ" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bXK" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/light, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/white/full, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bXL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"bXM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor{ + dir = 8; + id = "router_off" + }, +/turf/open/floor/plating, +/area/router) +"bXN" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bXO" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Fore"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bXP" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/space/nearstation) +"bXQ" = ( +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bXR" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/atmospherics/miner/carbon_dioxide, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"bXS" = ( +/obj/structure/closet/bombcloset, +/obj/machinery/camera{ + c_tag = "Toxins Lab - Access"; + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bXT" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bXU" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/research{ + name = "Research Sector" + }) +"bXV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/space/nearstation) +"bXW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bXX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bXY" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bXZ" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/item/paper_bin, +/obj/item/radio/headset/headset_sci, +/obj/item/radio/headset/headset_sci, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bYa" = ( +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bYb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bYc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/science/research{ + name = "Research Sector" + }) +"bYd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/hallway/primary/central) +"bYe" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bYf" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + dir = 8; + id = "router" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/router) +"bYg" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bYh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bYi" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/recharger, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bYj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bYk" = ( +/obj/machinery/vending/wardrobe/science_wardrobe, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bYl" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bYm" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYn" = ( +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bYo" = ( +/obj/structure/closet/emcloset, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/department/science{ + name = "Research Maintenance" + }) +"bYp" = ( +/obj/structure/rack, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/mask/gas, +/obj/item/wrench, +/obj/item/light/tube, +/turf/open/floor/plating, +/area/maintenance/department/science{ + name = "Research Maintenance" + }) +"bYq" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/science{ + name = "Research Maintenance" + }) +"bYr" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/photocopier, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bYs" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/research/glass{ + name = "Toxins Lab Access"; + req_access_txt = "7;8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"bYt" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bYu" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bYv" = ( +/turf/closed/wall, +/area/science/research{ + name = "Research Sector" + }) +"bYw" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bYx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/science{ + name = "Research Maintenance" + }) +"bYy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/science{ + name = "Research Maintenance" + }) +"bYz" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bYA" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bYB" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/clothing/gloves/color/latex, +/obj/item/book/manual/wiki/chemistry, +/obj/item/reagent_containers/dropper, +/obj/item/radio/headset/headset_medsci, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bYC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"bYD" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bYE" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bYF" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/maintenance/department/science{ + name = "Research Maintenance" + }) +"bYG" = ( +/obj/machinery/door/poddoor{ + id = "toxmixex" + }, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"bYH" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/department/science{ + name = "Research Maintenance" + }) +"bYI" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/storage/box/beakers, +/obj/item/assembly/timer{ + pixel_y = 6 + }, +/obj/item/assembly/timer{ + pixel_y = 6 + }, +/obj/item/assembly/timer{ + pixel_y = 6 + }, +/obj/item/assembly/timer{ + pixel_y = 6 + }, +/obj/item/assembly/igniter{ + pixel_y = -4 + }, +/obj/item/assembly/igniter{ + pixel_y = -4 + }, +/obj/item/assembly/igniter{ + pixel_y = -4 + }, +/obj/item/assembly/igniter{ + pixel_y = -4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bYJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bYK" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bYL" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bYM" = ( +/obj/machinery/vending/wardrobe/cargo_wardrobe, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"bYN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/quartermaster/storage) +"bYO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bYQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) +"bYR" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) +"bYS" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/server{ + name = "Computer Core" + }) +"bYT" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bYU" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bYV" = ( +/obj/machinery/rnd/destructive_analyzer, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/science/lab) +"bYW" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/light, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bYX" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bYY" = ( +/turf/open/floor/circuit/green/telecomms, +/area/science/server{ + name = "Computer Core" + }) +"bYZ" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/circuit/green/telecomms, +/area/science/server{ + name = "Computer Core" + }) +"bZa" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/item/storage/box/disks, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"bZb" = ( +/obj/structure/table, +/obj/machinery/button/door{ + id = "RDServer"; + layer = 3.6; + name = "RD Server Lockup Control"; + pixel_x = -24 + }, +/obj/item/circuitboard/machine/rdserver, +/obj/item/disk/tech_disk, +/turf/open/floor/circuit/green/telecomms, +/area/science/server{ + name = "Computer Core" + }) +"bZc" = ( +/obj/machinery/computer/robotics{ + dir = 1 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/segment, +/turf/open/floor/circuit/green/telecomms, +/area/science/server{ + name = "Computer Core" + }) +"bZd" = ( +/obj/effect/landmark/blobstart, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bZe" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/science/server{ + name = "Computer Core" + }) +"bZf" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bZg" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bZh" = ( +/turf/closed/wall, +/area/crew_quarters/toilet/restrooms) +"bZi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"bZj" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4; + node1_concentration = 0.8; + node2_concentration = 0.2; + on = 1; + target_pressure = 4500 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bZk" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/restrooms) +"bZl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=upload"; + location = "med" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"bZn" = ( +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/door/window/eastright, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/restrooms) +"bZo" = ( +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/restrooms) +"bZp" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/visible{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"bZq" = ( +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/structure/toilet{ + dir = 4 + }, +/obj/machinery/door/window/eastright, +/obj/effect/landmark/start/assistant, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/restrooms) +"bZr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/hallway/primary/central) +"bZs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Bathroom Maintenance"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/crew_quarters/toilet/restrooms) +"bZt" = ( +/turf/closed/wall, +/area/maintenance/starboard/aft) +"bZu" = ( +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/head/hardhat/red{ + pixel_y = 6 + }, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/air, +/obj/item/extinguisher, +/obj/item/crowbar, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bZv" = ( +/obj/structure/rack, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/clothing/head/hardhat/red{ + pixel_y = 6 + }, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/air, +/obj/item/extinguisher, +/obj/item/crowbar, +/obj/machinery/camera{ + c_tag = "Fire Suppression Storage"; + pixel_x = 22 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bZw" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"bZx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Fire Suppression Storage"; + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bZy" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"bZz" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research/glass{ + name = "Xenobiology Kill Room"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"bZA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/library) +"bZB" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bZC" = ( +/obj/machinery/computer/libraryconsole, +/obj/structure/table/wood, +/turf/open/floor/carpet, +/area/library) +"bZD" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"bZE" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bZF" = ( +/turf/open/floor/plasteel, +/area/library) +"bZG" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/sign/warning/fire{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"bZH" = ( +/turf/closed/wall, +/area/library) +"bZI" = ( +/obj/machinery/air_sensor/atmos/mix_tank, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"bZJ" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/photocopier, +/turf/open/floor/carpet, +/area/library) +"bZK" = ( +/obj/structure/bookcase/random/nonfiction, +/turf/open/floor/plasteel, +/area/library) +"bZL" = ( +/obj/machinery/air_sensor/atmos/nitrous_tank, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"bZM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"bZN" = ( +/obj/structure/closet/crate/freezer, +/obj/item/rack_parts, +/obj/item/rack_parts, +/obj/item/wrench, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"bZO" = ( +/obj/machinery/air_sensor/atmos/toxin_tank, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"bZP" = ( +/obj/machinery/air_sensor/atmos/carbon_tank, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"bZQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"bZR" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"bZS" = ( +/turf/closed/wall/r_wall, +/area/library) +"bZT" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/item/storage/box/pillbottles, +/obj/item/hand_labeler, +/obj/item/clothing/glasses/science, +/obj/structure/sign/poster/official/safety_eye_protection{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"bZU" = ( +/obj/structure/table/wood, +/obj/machinery/door/window/northright{ + name = "Library Desk Window"; + req_access_txt = "37" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/library) +"bZV" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced/spawner/north, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/library) +"bZW" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/science/mixing) +"bZX" = ( +/obj/structure/table/wood, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/computer/libraryconsole/bookmanagement, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/library) +"bZY" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"bZZ" = ( +/obj/machinery/vending/wardrobe/curator_wardrobe, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/library) +"caa" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"cab" = ( +/obj/structure/bookcase/random/adult{ + name = "Forbidden Knowledge" + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/library) +"cac" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"cad" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"cae" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light, +/obj/item/storage/firstaid/toxin, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"caf" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cag" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_electronics/analyzer, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cah" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cai" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"caj" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cak" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"cal" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/engine/atmos) +"cam" = ( +/obj/machinery/door/poddoor/incinerator_atmos_main, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"can" = ( +/obj/machinery/power/turbine{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cao" = ( +/obj/machinery/power/compressor{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cap" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/air_sensor/atmos/incinerator_tank{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/machinery/igniter/incinerator_atmos, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"caq" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"car" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cas" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"cat" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"cau" = ( +/obj/machinery/door/poddoor/incinerator_atmos_aux, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cav" = ( +/turf/closed/wall/r_wall, +/area/science/explab) +"caw" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/explab) +"cax" = ( +/turf/closed/wall, +/area/science/explab) +"cay" = ( +/obj/machinery/air_sensor/atmos/nitrogen_tank, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"caz" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/science/explab) +"caA" = ( +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/science/explab) +"caB" = ( +/obj/structure/closet/bombcloset, +/turf/open/floor/plasteel, +/area/science/explab) +"caC" = ( +/obj/structure/table, +/obj/item/wrench, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/extinguisher{ + pixel_x = -7; + pixel_y = 3 + }, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/plasteel, +/area/science/explab) +"caD" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/disposal) +"caE" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/explab) +"caF" = ( +/obj/machinery/air_sensor/atmos/oxygen_tank, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"caG" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/science/explab) +"caH" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/landmark/start/chemist, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/chair/office/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"caI" = ( +/obj/structure/table/reinforced, +/obj/item/integrated_electronics/analyzer, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science RC"; + pixel_x = 30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"caJ" = ( +/obj/machinery/air_sensor/atmos/air_tank, +/turf/open/floor/engine/air, +/area/engine/atmos) +"caK" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/atmospherics/miner/nitrogen, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"caL" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/miner/oxygen, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"caM" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"caN" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"caO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"caP" = ( +/obj/structure/chair/office/light, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/explab) +"caQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Medbay Lobby" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white/side, +/area/medical/medbay/lobby) +"caR" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-06" + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"caS" = ( +/obj/machinery/light/small, +/turf/open/floor/engine/air, +/area/engine/atmos) +"caT" = ( +/obj/effect/spawner/structure/window/plasma/reinforced, +/turf/open/floor/plating, +/area/science/explab) +"caU" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/closed/wall/r_wall, +/area/science/explab) +"caV" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Pen 1"; + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"caW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"caX" = ( +/turf/open/floor/engine, +/area/science/explab) +"caY" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/explab) +"caZ" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Pen 2"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"cba" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/science/explab) +"cbb" = ( +/turf/closed/wall/r_wall, +/area/science/storage) +"cbc" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/stack/sheet/metal/ten, +/obj/item/clothing/glasses/science, +/obj/item/clothing/glasses/science, +/obj/item/screwdriver, +/obj/item/screwdriver, +/obj/item/multitool, +/obj/item/multitool, +/obj/machinery/camera{ + c_tag = "Research - Circuitry Lab"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cbd" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/item/clothing/ears/earmuffs, +/obj/item/radio, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cbe" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/mask/gas, +/turf/open/floor/engine, +/area/science/explab) +"cbf" = ( +/obj/machinery/rnd/experimentor, +/turf/open/floor/engine, +/area/science/explab) +"cbg" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plating, +/area/science/storage) +"cbh" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/turf/open/floor/plating, +/area/science/storage) +"cbi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cbj" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/closed/wall/r_wall, +/area/science/server{ + name = "Computer Core" + }) +"cbk" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/qm"; + dir = 8; + name = "Quartermaster's Office APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"cbl" = ( +/obj/structure/table/reinforced, +/obj/item/healthanalyzer, +/turf/open/floor/engine, +/area/science/explab) +"cbm" = ( +/obj/item/beacon, +/turf/open/floor/engine, +/area/science/explab) +"cbn" = ( +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plating, +/area/science/storage) +"cbo" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cbp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cbq" = ( +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/pen, +/turf/open/floor/engine, +/area/science/explab) +"cbr" = ( +/obj/structure/table/optable, +/turf/open/floor/engine, +/area/science/explab) +"cbs" = ( +/obj/machinery/computer/operating, +/turf/open/floor/engine, +/area/science/explab) +"cbt" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/engine, +/area/science/explab) +"cbu" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/science/storage) +"cbv" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/turf_decal/stripes/line, +/obj/structure/sign/warning/biohazard{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/science/explab) +"cbw" = ( +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cbx" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/syringes, +/obj/item/pen/blue, +/turf/open/floor/engine, +/area/science/explab) +"cby" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cbz" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/latex, +/obj/item/reagent_containers/dropper, +/obj/item/pen/red, +/turf/open/floor/engine, +/area/science/explab) +"cbA" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cbB" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cbC" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating, +/area/science/storage) +"cbD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cbE" = ( +/turf/closed/wall/r_wall, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cbF" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cbG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cbH" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cbI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/visible{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cbJ" = ( +/obj/structure/table/reinforced, +/obj/item/analyzer, +/obj/item/t_scanner, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/engine/supermatter"; + dir = 4; + name = "Thermo-Electric Generator APC"; + pixel_x = 24 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"cbK" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cbL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbM" = ( +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/obj/item/storage/box/lights/mixed, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/structure/cable{ + icon_state = "1-10" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cbN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbO" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cbP" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "toxmixex"; + name = "vent control"; + pixel_x = -24; + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"cbQ" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/item/reagent_containers/food/snacks/meat/slab/spider, +/obj/item/reagent_containers/food/snacks/meat/slab/xeno, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"cbR" = ( +/obj/structure/cable{ + icon_state = "1-10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"cbS" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "starboard_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cbT" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = -2; + pixel_y = -27 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbU" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Air to Distro" + }, +/obj/machinery/power/apc/highcap/ten_k{ + areastring = "/area/engine/atmos"; + name = "Atmospherics APC"; + pixel_y = -28 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cbV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/science/server{ + name = "Computer Core" + }) +"cbW" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cbX" = ( +/obj/structure/table, +/obj/item/aicard, +/obj/item/disk/tech_disk, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/circuit, +/area/bridge) +"cbY" = ( +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/science/server{ + name = "Computer Core" + }) +"cbZ" = ( +/obj/machinery/computer/slot_machine, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/carpet/green, +/area/crew_quarters/bar) +"cca" = ( +/obj/machinery/computer/slot_machine, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/carpet/green, +/area/crew_quarters/bar) +"ccb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/stairs/medium, +/area/crew_quarters/bar) +"ccc" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/router/aux) +"ccd" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cce" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/science/circuit) +"ccf" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "starboard_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"ccg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cch" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "router" + }, +/turf/open/floor/plating, +/area/router) +"cci" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/machinery/mass_driver{ + id = "workshop_in"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/router) +"ccj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + name = "Routing Depot"; + req_one_access_txt = "10;31" + }, +/turf/open/floor/plating, +/area/router) +"cck" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/window/reinforced/spawner/west, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "disposal" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ccl" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/stairs, +/area/maintenance/department/chapel) +"ccm" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/mecha_part_fabricator, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass{ + amount = 20; + layer = 3.2 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"ccn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "router" + }, +/turf/open/floor/plating, +/area/router) +"cco" = ( +/obj/machinery/conveyor/auto{ + id = "router" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"ccp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ccq" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/sign/poster/official/nanomichi_ad{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"ccr" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"ccs" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor{ + dir = 1; + id = "starboard_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cct" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/science/research{ + name = "Research Sector" + }) +"ccu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ccv" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/door/airlock/mining{ + name = "Mining Office"; + req_one_access_txt = "10;24;48" + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"ccw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ccx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"ccy" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "router" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/router) +"ccz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"ccA" = ( +/obj/machinery/disposal/deliveryChute, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"ccB" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/folder/white, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/window/westleft{ + name = "Chemistry Desk"; + req_access_txt = "33" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"ccC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ccD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"ccE" = ( +/obj/machinery/mass_driver{ + id = "eng_in"; + name = "Router Driver" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/router) +"ccF" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/item/flashlight, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ccG" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/camera{ + c_tag = "Atmospherics East"; + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ccH" = ( +/obj/machinery/mass_driver{ + dir = 8; + id = "disposal_in"; + name = "Router Driver" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"ccI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "disposal" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ccJ" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "starboard_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"ccK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"ccL" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/engine, +/area/science/explab) +"ccM" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ccN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ccO" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"ccP" = ( +/obj/structure/disposalpipe/junction/yjunction{ + dir = 8 + }, +/obj/structure/grille, +/turf/open/floor/plating/airless, +/area/router/aux) +"ccQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ccR" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ccS" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"ccT" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"ccU" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"ccV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Starboard Quarter Maintenance"; + req_one_access_txt = "12;48" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"ccW" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"ccX" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ccY" = ( +/obj/structure/cable, +/obj/effect/landmark/start/librarian, +/obj/machinery/power/apc{ + areastring = "/area/library"; + dir = 4; + name = "Library APC"; + pixel_x = 24 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/library) +"ccZ" = ( +/obj/structure/closet/cardboard, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cda" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark/corner, +/area/ai_monitored/storage/eva) +"cdb" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/turf/open/floor/plating/airless, +/area/router/aux) +"cdc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/hallway/secondary/entry) +"cdd" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"cde" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/mineral/titanium/blue, +/area/hallway/primary/central) +"cdf" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cdg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdh" = ( +/obj/machinery/photocopier, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cdi" = ( +/obj/machinery/disposal/deliveryChute, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cdj" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/machinery/microwave, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdk" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdl" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdm" = ( +/obj/structure/closet/secure_closet/CMO, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"cdn" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cdo" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cdp" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/visible, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cdq" = ( +/obj/machinery/mass_driver{ + id = "sq_in"; + name = "Router Driver" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cdr" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cds" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdt" = ( +/turf/closed/wall/r_wall, +/area/router/eng) +"cdu" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdv" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -29 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdw" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdx" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"cdy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall, +/area/engine/break_room) +"cdz" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdA" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdB" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/sign/warning/enginesafety, +/turf/closed/wall, +/area/engine/break_room) +"cdC" = ( +/turf/closed/wall, +/area/engine/break_room) +"cdD" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/stripes/line, +/obj/item/storage/box/monkeycubes, +/obj/item/storage/box/monkeycubes, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science RC"; + pixel_y = 30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cdE" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/item/tape, +/obj/item/taperecorder{ + pixel_x = -4 + }, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"cdF" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"cdG" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor/preopen{ + id = "engblock"; + name = "Engineering Router" + }, +/turf/open/floor/plating, +/area/router/eng) +"cdH" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall, +/area/engine/break_room) +"cdI" = ( +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"cdJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdK" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdN" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/door/airlock/command{ + name = "Chief Engineer's Office"; + req_access_txt = "56" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cdO" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "EngiLockdown"; + name = "Engineering Emergency Lockdown" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdP" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Aft Hall - Primary Tool Storage"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cdQ" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "EngiLockdown"; + name = "Engineering Emergency Lockdown" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cdR" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/hacking_guide{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cdS" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/engine/break_room) +"cdT" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/airlock/external/glass{ + name = "Asteroid Mining Access"; + req_access_txt = "10;24" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cdU" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + id = "eng" + }, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor/preopen{ + id = "engblock"; + name = "Engineering Router" + }, +/turf/open/floor/plating, +/area/router/eng) +"cdV" = ( +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"cdW" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/sleep_console{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cdX" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/sleeper{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cdY" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/sleep_console{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cdZ" = ( +/turf/closed/wall/r_wall, +/area/medical/medbay/lobby) +"cea" = ( +/obj/machinery/computer/cloning, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/obj/item/paper/guides/jobs/medical/cloning{ + pixel_x = -4 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"ceb" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/stack/sheet/plasteel{ + amount = 15 + }, +/obj/item/storage/belt/utility, +/obj/item/crowbar/large, +/obj/item/multitool, +/obj/item/assembly/prox_sensor{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/mecha_part_fabricator, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass{ + amount = 20; + layer = 3.2 + }, +/obj/item/stack/sheet/plasteel{ + amount = 15 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"cec" = ( +/obj/structure/table/glass, +/obj/item/paicard, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"ced" = ( +/obj/machinery/computer/med_data{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cee" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cef" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"ceg" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"ceh" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/storage/tech) +"cei" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cej" = ( +/obj/machinery/vending/medical, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cek" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"cel" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cem" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/door/window/eastright{ + name = "Medbay Desk"; + req_access_txt = "5" + }, +/obj/item/folder/white, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cen" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/circuit, +/area/bridge) +"ceo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/bridge) +"cep" = ( +/obj/machinery/camera/motion{ + c_tag = "Telecomms Satellite Exterior - Starboard Bow"; + dir = 1; + network = list("tcomms"); + pixel_x = 22 + }, +/turf/open/space/basic, +/area/space) +"ceq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall/rust, +/area/engine/teg_hot) +"cer" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/mass_driver{ + dir = 1; + id = "eng_out"; + name = "Router Driver" + }, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plating, +/area/router/eng) +"ces" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/machinery/conveyor/auto{ + id = "eng" + }, +/obj/structure/window/reinforced/spawner/east, +/turf/open/floor/plating, +/area/router/eng) +"cet" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"ceu" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"cev" = ( +/obj/machinery/vending/games, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"cew" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "service" + }, +/obj/structure/window/reinforced/spawner/west, +/turf/open/floor/plating, +/area/router/eng) +"cex" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"cey" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Arcade" + }, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"cez" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/storage/firstaid/fire{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/firstaid/fire{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/firstaid/fire{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/firstaid/brute, +/obj/item/storage/firstaid/brute, +/obj/item/storage/firstaid/brute, +/obj/item/clothing/glasses/hud/health, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"ceA" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/firstaid/toxin{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/o2, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"ceB" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"ceC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"ceD" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 13; + id = "ferry_home"; + name = "port bay 2"; + width = 5 + }, +/turf/open/space/basic, +/area/space) +"ceE" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external{ + name = "Ferry Docking Bay" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ceF" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/external{ + name = "Ferry Docking Bay" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ceG" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "trash"; + name = "Disposal Driver" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ceH" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id = "trash"; + name = "Disposal Bay Door" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ceI" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"ceJ" = ( +/obj/machinery/power/solar_control{ + dir = 4; + name = "Starboard Quarter Solar Control" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"ceK" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/router/eng) +"ceL" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/table, +/obj/item/destTagger, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/eng) +"ceM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/button/massdriver{ + id = "eng_out"; + pixel_x = -24; + pixel_y = 24 + }, +/obj/machinery/button/door{ + id = "engblock"; + name = "Router Access Control"; + pixel_x = -24; + pixel_y = 32; + req_access_txt = "31" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/eng) +"ceN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/router/eng) +"ceO" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 29 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/eng) +"ceP" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/router/eng) +"ceQ" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "2-5" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"ceR" = ( +/obj/machinery/door/poddoor{ + id = "TEGMixVent"; + name = "Mixing Chamber Vent" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine/vacuum, +/area/engine/teg_hot) +"ceS" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"ceT" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/computer/cargo/request{ + dir = 4 + }, +/obj/machinery/light/small, +/obj/machinery/requests_console{ + department = "Engineering Router"; + name = "Engineering Router RC"; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/router/eng) +"ceU" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 + }, +/obj/structure/fireaxecabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ceV" = ( +/turf/open/floor/plasteel, +/area/router/eng) +"ceW" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/router/eng) +"ceX" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/power/apc{ + name = "Engineering Router APC"; + pixel_y = -24 + }, +/obj/machinery/light/small, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/router/eng) +"ceY" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"ceZ" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/airlock/external/glass{ + name = "Asteroid Mining Access"; + req_access_txt = "10;24" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cfa" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/engine/vacuum, +/area/engine/teg_hot) +"cfb" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/photocopier, +/turf/open/floor/carpet/blue, +/area/medical/medbay/central) +"cfc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"cfd" = ( +/obj/structure/closet/crate/wooden, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cfe" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Port Bow Hall - Starboard"; + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cff" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/engine/vacuum, +/area/engine/teg_hot) +"cfg" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/effect/landmark/start/research_director, +/obj/machinery/camera{ + c_tag = "Research Director's Office - Port"; + network = list("ss13","rd") + }, +/obj/machinery/keycard_auth{ + pixel_x = -8; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"cfh" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cfi" = ( +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cfj" = ( +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cfk" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cfl" = ( +/turf/closed/wall, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cfm" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cfn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cfo" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/engine/vacuum, +/area/engine/teg_hot) +"cfp" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/engine/teg_hot) +"cfq" = ( +/obj/structure/lattice/catwalk, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cfr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/door/airlock/external/glass{ + name = "Mixing Chamber Access"; + req_one_access_txt = "10;24" + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plating, +/area/engine/teg_hot) +"cfs" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cft" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/camera{ + c_tag = "Engineering - Mixing Chamber"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/teg_hot) +"cfu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"cfv" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"cfw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Engineering Construction Area"; + dir = 4 + }, +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"cfx" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfy" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/storage_shared{ + name = "Electrical Substation" + }) +"cfz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cfA" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/engine/vacuum, +/area/engine/teg_hot) +"cfB" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/floor/engine/vacuum, +/area/engine/teg_hot) +"cfC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/engine/vacuum, +/area/engine/teg_hot) +"cfD" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/space/basic, +/area/space/nearstation) +"cfE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"cfF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/teg_hot) +"cfG" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Tech Storage"; + req_access_txt = "19;23" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"cfH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/engine/vacuum, +/area/engine/teg_hot) +"cfI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/sparker{ + id = "TEGMixIgniter"; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/remains/human, +/turf/open/floor/engine/vacuum, +/area/engine/teg_hot) +"cfJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"cfK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/teg_hot) +"cfL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Access"; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"cfM" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfN" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cfO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cfP" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Library Access" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/library) +"cfR" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/cigarette, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cfS" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"cfT" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/visible, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfU" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/clothing/gloves/color/latex, +/obj/item/book/manual/wiki/cit/chem_recipies, +/obj/item/book/manual/wiki/cit/chemistry{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/item/reagent_containers/dropper, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cfV" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cfW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/window/plasma/reinforced/spawner/north, +/obj/structure/window/plasma/reinforced/spawner, +/obj/structure/lattice, +/turf/open/space/basic, +/area/engine/teg_hot) +"cfX" = ( +/obj/item/pipe, +/obj/structure/cable{ + icon_state = "2-5" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"cfY" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/stack/sheet/metal, +/obj/item/stack/sheet/metal, +/obj/item/stack/sheet/metal, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"cfZ" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/stairs/right, +/area/science/research{ + name = "Research Sector" + }) +"cga" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cgb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external/glass{ + name = "Mixing Chamber Access"; + req_one_access_txt = "10;24" + }, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plating, +/area/engine/teg_hot) +"cgc" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cgd" = ( +/obj/structure/fans/tiny, +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "disposal" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cge" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgf" = ( +/obj/structure/table, +/obj/structure/table, +/obj/machinery/reagentgrinder, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cgg" = ( +/obj/effect/landmark/start/atmospheric_technician, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgh" = ( +/obj/machinery/pipedispenser, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cgi" = ( +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"cgj" = ( +/obj/machinery/conveyor/auto{ + id = "cargo" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"cgk" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/conveyor/auto{ + id = "cargo" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"cgl" = ( +/obj/machinery/button/door{ + id = "TEGMixVent"; + name = "Mixing Chamber Vent"; + pixel_y = 24; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"cgm" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cgn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cgo" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"cgp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/obj/machinery/button/ignition{ + id = "TEGMixIgniter"; + name = "Mix Igniter"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"cgq" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cgr" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/science/research"; + dir = 1; + name = "Research Sector APC"; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/department/science{ + name = "Research Maintenance" + }) +"cgs" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cgt" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cgu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"cgv" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cgw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"cgx" = ( +/obj/machinery/atmospherics/pipe/manifold4w/cyan/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgy" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/rust, +/area/maintenance/solars/starboard/aft) +"cgz" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cgA" = ( +/obj/machinery/pipedispenser/disposal, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cgB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cgC" = ( +/obj/structure/grille, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/hallway/primary/central) +"cgD" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/teg_hot) +"cgE" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cgF" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/north, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/science/server{ + name = "Computer Core" + }) +"cgG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/north, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/science/server{ + name = "Computer Core" + }) +"cgH" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/closed/wall/r_wall, +/area/science/server{ + name = "Computer Core" + }) +"cgI" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/closed/wall/r_wall, +/area/science/server{ + name = "Computer Core" + }) +"cgJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/science/server{ + name = "Computer Core" + }) +"cgK" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/closed/wall/r_wall, +/area/science/server{ + name = "Computer Core" + }) +"cgL" = ( +/obj/machinery/computer/rdservercontrol{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/dark, +/area/science/server{ + name = "Computer Core" + }) +"cgM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cgN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/science/server{ + name = "Computer Core" + }) +"cgO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/science/server{ + name = "Computer Core" + }) +"cgP" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/closed/wall/r_wall, +/area/science/server{ + name = "Computer Core" + }) +"cgQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/science/server{ + name = "Computer Core" + }) +"cgR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"cgS" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4; + node1_concentration = 0.8; + node2_concentration = 0.2; + on = 1; + target_pressure = 4500 + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"cgT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cgU" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"cgV" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cgW" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 3; + height = 5; + id = "mining_home"; + name = "mining shuttle bay"; + roundstart_template = /datum/map_template/shuttle/mining/delta; + width = 7 + }, +/turf/open/space/basic, +/area/space) +"cgX" = ( +/obj/machinery/conveyor/auto{ + dir = 4; + id = "disposal" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cgY" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cgZ" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cha" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortType = 1 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"chb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"chc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"chd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"che" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"chf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"chg" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"chh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plating, +/area/tcommsat/computer) +"chi" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"chj" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/meter, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"chk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"chl" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"chm" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/closed/wall/r_wall/rust, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"chn" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/disposal/incinerator"; + dir = 8; + name = "Incinerator APC"; + pixel_x = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cho" = ( +/turf/closed/wall/r_wall/rust, +/area/maintenance/department/eva) +"chp" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chq" = ( +/obj/machinery/pipedispenser/disposal/transit_tube, +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"chr" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"chs" = ( +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"cht" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"chu" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"chv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"chw" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"chx" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chy" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"chz" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"chA" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"chB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"chC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"chD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"chE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/teg_cold) +"chF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/structure/table, +/obj/item/analyzer, +/obj/item/pipe_dispenser, +/obj/item/wrench, +/turf/open/floor/plasteel/dark, +/area/engine/teg_cold) +"chG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/engine/teg_cold) +"chH" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/closed/wall/r_wall/rust, +/area/maintenance/fore) +"chI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/machinery/meter, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/engine/teg_cold) +"chJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/security) +"chK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/teg_cold) +"chL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chM" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"chN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"chO" = ( +/obj/structure/table, +/obj/machinery/requests_console{ + department = "Atmospherics"; + departmentType = 4; + name = "Atmos RC"; + pixel_x = 30 + }, +/obj/item/clothing/head/welding{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/clothing/head/welding{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/clothing/glasses/welding, +/obj/item/multitool, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"chP" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/lawoffice) +"chQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"chR" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/science/mixing"; + dir = 1; + name = "Toxins Lab APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/science/storage) +"chS" = ( +/obj/machinery/suit_storage_unit/atmos, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"chT" = ( +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, +/turf/open/floor/plating, +/area/science/storage) +"chU" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/library) +"chV" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/science/storage) +"chW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"chX" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"chY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/storage/hypospraykit/fire, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/item/wrench, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"chZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cia" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cib" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cic" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cid" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/table, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/item/analyzer, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cie" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/teg_cold) +"cif" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cig" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cih" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cii" = ( +/obj/machinery/disposal/deliveryChute, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cij" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/disposaloutlet, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cik" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/mass_driver{ + dir = 8; + id = "router_in"; + name = "Router Driver" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cil" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cim" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 11 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cin" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "disposal" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cio" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/closed/wall, +/area/science/research{ + name = "Research Sector" + }) +"cip" = ( +/obj/machinery/mass_driver{ + id = "cargo_in"; + name = "Router Driver" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ciq" = ( +/obj/machinery/conveyor/auto{ + dir = 4; + id = "disposal" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cir" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_cold) +"cis" = ( +/obj/structure/sign/warning/vacuum{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cit" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ciu" = ( +/obj/structure/barricade/wooden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/poster/ripped{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"civ" = ( +/obj/structure/girder/displaced, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ciw" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"cix" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ciy" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ciz" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/item/reagent_containers/food/drinks/trophy, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"ciA" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/port) +"ciB" = ( +/obj/structure/frame/computer, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating/airless, +/area/maintenance/port/fore) +"ciC" = ( +/obj/structure/closet/secure_closet/hos, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/item/storage/box/deputy, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"ciD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_cold) +"ciE" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/recharger, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Security RC"; + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"ciF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ciG" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "disposal_off" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ciH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 6 + }, +/obj/machinery/meter, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_cold) +"ciI" = ( +/turf/closed/wall/r_wall/rust, +/area/quartermaster/warehouse) +"ciJ" = ( +/turf/closed/wall/rust, +/area/quartermaster/warehouse) +"ciK" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"ciL" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"ciM" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor/auto{ + dir = 4; + id = "disposal" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ciN" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/donkpockets{ + pixel_y = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "kitchenlock"; + name = "Kitchen Lockup" + }, +/obj/machinery/door/window/northleft{ + name = "Kitchen Slider"; + req_access_txt = "28" + }, +/obj/machinery/door/window/southleft{ + name = "Bar Slider"; + req_access_txt = "25" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/kitchen) +"ciO" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "disposal_out"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ciP" = ( +/obj/effect/turf_decal/delivery, +/obj/item/weldingtool, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"ciQ" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hallway/primary/aft"; + dir = 1; + name = "Aft Primary Hallway APC"; + pixel_x = 1; + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"ciR" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/door/airlock/security{ + name = "Cargo Security Checkpoint"; + req_access_txt = "63" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"ciS" = ( +/obj/machinery/conveyor/auto{ + dir = 9; + id = "disposal" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ciT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/closet/radiation, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28; + pixel_y = -4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"ciU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/closet/radiation, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"ciV" = ( +/obj/machinery/conveyor/auto{ + dir = 8; + id = "disposal" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ciW" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 14 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"ciX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor/auto{ + dir = 8; + id = "disposal" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"ciY" = ( +/obj/structure/table, +/obj/item/storage/toolbox/emergency, +/obj/item/wrench, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/engine/teg_hot"; + dir = 8; + name = "Hot Loop APC"; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"ciZ" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cja" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cjb" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cjc" = ( +/obj/structure/fans/tiny, +/obj/structure/plasticflaps, +/obj/machinery/door/poddoor{ + name = "Disposal Router" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cjd" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cje" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cjf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Cargo Detainment Cell"; + req_access_txt = "63" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"cjg" = ( +/obj/machinery/conveyor/auto{ + dir = 1; + id = "disposal" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cjh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cji" = ( +/obj/structure/fans/tiny, +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + dir = 1; + id = "disposal" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cjj" = ( +/turf/closed/wall, +/area/crew_quarters/theatre/mime) +"cjk" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/theatre/mime) +"cjl" = ( +/obj/structure/closet/crate/wooden/toy, +/obj/item/toy/figure/mime, +/turf/open/floor/plasteel/checker, +/area/crew_quarters/theatre/mime) +"cjm" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/secondary/service) +"cjn" = ( +/obj/structure/reagent_dispensers/cooking_oil, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/kitchen/backroom) +"cjo" = ( +/obj/structure/table, +/obj/item/flashlight/seclite, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"cjp" = ( +/turf/closed/wall/r_wall, +/area/crew_quarters/theatre/mime) +"cjq" = ( +/turf/closed/wall/rust, +/area/maintenance/port/central) +"cjr" = ( +/obj/structure/table, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/item/hand_labeler, +/obj/item/reagent_containers/glass/bottle/formaldehyde, +/obj/item/paper/guides/jobs/medical/morgue, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"cjs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cjt" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/quartermaster/office"; + dir = 1; + name = "Cargo Office APC"; + pixel_y = 24 + }, +/obj/structure/sign/poster/contraband/scum{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cju" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/table, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/item/clothing/ears/earmuffs, +/obj/item/extinguisher{ + pixel_x = -12; + pixel_y = -2 + }, +/obj/machinery/camera{ + c_tag = "Engineering - Hot Loop"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cjv" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/library) +"cjw" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/library) +"cjx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/library) +"cjy" = ( +/obj/machinery/recharge_station, +/turf/open/floor/plating, +/area/maintenance/port/central) +"cjz" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants/photosynthetic, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cjA" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/item/twohanded/required/kirbyplants/random, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cjB" = ( +/obj/item/stack/cable_coil/cut/red, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"cjC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/clothing/mask/cigarette, +/obj/structure/sign/poster/official/twelve_gauge{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cjD" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall, +/area/maintenance/department/eva) +"cjE" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_y = 32 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cjF" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_y = 32 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cjG" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cjH" = ( +/obj/structure/lattice, +/obj/structure/sign/warning/electricshock{ + pixel_x = -32 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cjI" = ( +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES" + }, +/turf/closed/wall/r_wall, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"cjJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "E.V.A. Storage"; + req_access_txt = "18" + }, +/turf/open/floor/plasteel, +/area/ai_monitored/storage/eva) +"cjK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/teg_cold) +"cjL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/engine/teg_cold) +"cjM" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/item/storage/toolbox/mechanical, +/obj/item/radio/off, +/obj/item/multitool{ + pixel_x = -6 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"cjN" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Security - Visitation Area"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cjO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt{ + desc = "A thin layer of dust coating the floor."; + name = "dust" + }, +/turf/open/floor/plating, +/area/maintenance/port/fore) +"cjP" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cjQ" = ( +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"cjR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Security's Office"; + req_one_access_txt = "58" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/hos) +"cjS" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"cjT" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/landmark/start/security_officer, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"cjU" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/visible{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/engine/teg_cold) +"cjV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Engineering Sector" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cjW" = ( +/obj/structure/bed, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/item/bedsheet/hos, +/obj/effect/landmark/start/head_of_security, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"cjX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 9 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/engine/teg_cold) +"cjY" = ( +/obj/machinery/computer/station_alert{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/keycard_auth{ + pixel_x = 8; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cjZ" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cka" = ( +/obj/item/beacon, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"ckb" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"ckc" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/aft/secondary"; + dir = 8; + name = "Aft Air Hookup APC"; + pixel_x = -24 + }, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"ckd" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cke" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/library) +"ckf" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"ckg" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ckh" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay/central) +"cki" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"ckj" = ( +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay/central) +"ckk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/camera{ + c_tag = "Research Maintenance"; + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/department/science"; + dir = 8; + name = "Research Wing Maintenance APC"; + pixel_x = -24 + }, +/turf/open/floor/plating, +/area/maintenance/department/science{ + name = "Research Maintenance" + }) +"ckl" = ( +/turf/open/space/basic, +/area/space/station_ruins) +"ckm" = ( +/turf/closed/wall/r_wall, +/area/engine/teg_cold) +"ckn" = ( +/obj/machinery/door/airlock/external/glass{ + name = "External Solar Access"; + req_access_txt = "10;13" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cko" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/engine/engineering"; + dir = 4; + name = "Engine Room APC"; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"ckp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light, +/obj/structure/table, +/obj/item/book/manual/wiki/robotics_cyborgs, +/obj/item/mmi, +/obj/item/mmi, +/obj/item/mmi, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"ckq" = ( +/obj/structure/closet/crate/hydroponics, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"ckr" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cks" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"ckt" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cku" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"ckv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Warehouse"; + req_one_access_txt = "10;31" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"ckw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"ckx" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"cky" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"ckz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/table, +/obj/item/pipe_dispenser, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"ckA" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"ckB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/closet/crate/engineering, +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/item/twohanded/rcl/pre_loaded, +/obj/item/twohanded/rcl/pre_loaded, +/obj/item/stack/cable_coil/red, +/obj/item/stack/cable_coil/red, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/obj/machinery/camera{ + c_tag = "Engineering - Cold Loop"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"ckC" = ( +/obj/machinery/atmospherics/components/binary/valve, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"ckD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/crowbar/large, +/obj/item/multitool, +/obj/item/assembly/prox_sensor{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -6; + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"ckE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"ckF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/engine/teg_cold"; + dir = 4; + name = "Cold Loop APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"ckG" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"ckH" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"ckI" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"ckJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/teg_hot) +"ckK" = ( +/obj/structure/closet/secure_closet/miner, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/item/clothing/under/rank/miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"ckL" = ( +/obj/structure/closet/secure_closet/miner, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/item/clothing/under/rank/miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"ckM" = ( +/obj/structure/closet/secure_closet/miner, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/item/clothing/under/rank/miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"ckN" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"ckO" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ckP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"ckQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"ckR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/lab) +"ckS" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ckT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"ckU" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"ckV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"ckW" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"ckX" = ( +/obj/machinery/atmospherics/components/binary/valve, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ckY" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ckZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cla" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"clb" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"clc" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/turf/open/floor/plating, +/area/science/storage) +"cld" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cle" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/science/misc_lab"; + dir = 1; + name = "Research Observatory APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"clf" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Pen 3"; + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"clg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"clh" = ( +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cli" = ( +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"clj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"clk" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/science/xenobiology) +"cll" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/science/xenobiology) +"clm" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cln" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"clo" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"clp" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/science/xenobiology) +"clq" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"clr" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/science/xenobiology) +"cls" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"clt" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/sign/warning/electricshock, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"clu" = ( +/obj/machinery/door/window/northleft{ + name = "Library Desk Door"; + req_access_txt = "37" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/library) +"clv" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/storage/box/syringes, +/obj/item/reagent_containers/dropper, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"clw" = ( +/obj/effect/landmark/start/librarian, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/library) +"clx" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"cly" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"clz" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"clA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"clB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/closed/wall/r_wall, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"clC" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"clD" = ( +/obj/machinery/telecomms/server/presets/medical, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"clE" = ( +/obj/machinery/ntnet_relay, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"clF" = ( +/obj/machinery/telecomms/server/presets/supply, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"clG" = ( +/obj/machinery/telecomms/server/presets/engineering, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"clH" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/engine/storage_shared{ + name = "Electrical Substation" + }) +"clI" = ( +/obj/machinery/telecomms/bus/preset_four, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"clJ" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"clK" = ( +/obj/machinery/telecomms/processor/preset_four, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"clL" = ( +/obj/machinery/telecomms/bus/preset_two, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"clM" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"clN" = ( +/obj/machinery/telecomms/processor/preset_two, +/turf/open/floor/circuit/telecomms/mainframe, +/area/tcommsat/server) +"clO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Electrical Substation"; + req_access_txt = "10" + }, +/turf/open/floor/plating, +/area/engine/storage_shared{ + name = "Electrical Substation" + }) +"clP" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/amplifier, +/obj/item/stock_parts/subspace/analyzer, +/obj/item/stock_parts/subspace/analyzer, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"clQ" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/crystal, +/obj/item/stock_parts/subspace/crystal, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"clR" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/transmitter, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"clS" = ( +/obj/structure/table, +/obj/item/stock_parts/subspace/treatment, +/obj/item/stock_parts/subspace/treatment, +/obj/item/stock_parts/manipulator, +/obj/item/stock_parts/manipulator, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"clT" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/stock_parts/micro_laser, +/obj/item/stock_parts/micro_laser, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"clU" = ( +/obj/structure/table, +/obj/item/stock_parts/scanning_module, +/obj/item/stock_parts/scanning_module, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"clV" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Supply - Security Post"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"clW" = ( +/turf/closed/wall/rust, +/area/storage/tech) +"clX" = ( +/turf/closed/wall/rust, +/area/maintenance/starboard/aft) +"clY" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/closet/firecloset, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"clZ" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Escape Hall - Port"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cma" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Escape Hall - Starboard"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cmb" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Supply - Mining Dock"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cmc" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Starboard Quarter Solar Maintenance"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cmd" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cme" = ( +/obj/structure/bed, +/obj/item/clothing/glasses/sunglasses/blindfold, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"cmf" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cmg" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cmh" = ( +/obj/structure/sign/warning/radiation, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"cmi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cmj" = ( +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cmk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cml" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"cmm" = ( +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cmn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cmo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"cmp" = ( +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cmq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cmr" = ( +/obj/machinery/gravity_generator/main/station, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cms" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cmt" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"cmu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cmv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cmw" = ( +/obj/machinery/camera{ + c_tag = "Engineering - Gravity Generator"; + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"cmx" = ( +/obj/machinery/light, +/turf/open/floor/engine, +/area/engine/gravity_generator) +"cmy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Starboard Quarter Maintenance"; + req_one_access_txt = "12;48" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"cmz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Starboard Quarter Maintenance"; + req_one_access_txt = "12;48" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"cmA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Bar Backroom"; + req_access_txt = "25" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"cmB" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/science/robotics/lab"; + dir = 4; + name = "Robotics Lab APC"; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cmC" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"cmD" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/deliveryChute, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cmE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cmF" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/mineral/titanium/blue, +/area/hallway/primary/central) +"cmG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cmH" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor/preopen{ + id = "cargoblock"; + name = "Cargo Router" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"cmI" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cmJ" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/door/airlock/external/glass{ + name = "Mining Dock"; + req_one_access_txt = "10;24;48" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cmK" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plating, +/area/science/storage) +"cmL" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/aft) +"cmM" = ( +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = -32 + }, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cmN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/radio/intercom{ + frequency = 1359; + name = "Station Intercom (Security)"; + pixel_y = -28 + }, +/turf/open/floor/plasteel, +/area/lawoffice) +"cmO" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Engineering" + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cmP" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/library) +"cmQ" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Pen 4"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"cmR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cmS" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"cmT" = ( +/obj/machinery/door/poddoor{ + id = "toxinsdriver"; + name = "toxins launcher bay door" + }, +/turf/open/floor/plating, +/area/science/mixing) +"cmU" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/sleeper{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Lobby"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cmV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cmW" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Cargo"; + name = "Cargo RC"; + pixel_x = -30 + }, +/obj/machinery/camera{ + c_tag = "Supply - Quartermaster's Office"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"cmX" = ( +/obj/machinery/light/small, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"cmY" = ( +/obj/machinery/door/airlock/engineering{ + name = "Hot Loop"; + req_one_access_txt = "10;24" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cmZ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/west, +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cna" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cnb" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/stripes/line, +/obj/item/storage/box/beakers{ + pixel_x = -4 + }, +/obj/item/storage/box/syringes{ + pixel_x = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cnc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cnd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cne" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cnf" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cng" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"cnh" = ( +/obj/machinery/door/airlock/engineering{ + name = "Cold Loop"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cni" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cnj" = ( +/obj/machinery/camera{ + c_tag = "Research - Observatory"; + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cnk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cnl" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1; + pixel_x = 5 + }, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cnm" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"cnn" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"cno" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cnp" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/bridge) +"cnq" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/mob/living/simple_animal/cockroach, +/turf/open/floor/plating, +/area/maintenance/port/central) +"cnr" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cns" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cnt" = ( +/obj/structure/fans/tiny, +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + dir = 8; + id = "disposal" + }, +/obj/machinery/door/poddoor{ + name = "Disposal Router" + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cnu" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/gateway) +"cnv" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/structure/frame/computer, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cnw" = ( +/obj/effect/turf_decal/bot, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cnx" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cny" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cnz" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/science/storage) +"cnA" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cnB" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"cnC" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/engine, +/area/science/explab) +"cnD" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/science/xenobiology) +"cnE" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 9; + height = 22; + id = "emergency_home"; + name = "CogStation Escape Dock"; + width = 29 + }, +/turf/open/space/basic, +/area/space) +"cnF" = ( +/obj/structure/disposalpipe/segment, +/obj/item/reagent_containers/food/drinks/bottle/kahlua/empty, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/port/fore) +"cnG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/solar/port) +"cnH" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/port) +"cnI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/port) +"cnJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space/basic, +/area/solar/port) +"cnK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cnL" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) +"cnM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) +"cnN" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) +"cnO" = ( +/turf/open/floor/plating, +/area/science/storage) +"cnP" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) +"cnQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) +"cnR" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/solar/starboard/aft) +"cnS" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/highcap/fifteen_k{ + areastring = /area/maintenance/solars/starboard/aft; + dir = 1; + name = "Starboard Quarter Solars APC"; + pixel_y = 26 + }, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/aft) +"cnT" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"cnU" = ( +/obj/machinery/door/poddoor/incinerator_toxmix, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"cnV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/science/storage) +"cnW" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/library) +"cnX" = ( +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"cnY" = ( +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"cnZ" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/holopad, +/obj/machinery/requests_console{ + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"coa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cob" = ( +/obj/structure/closet/l3closet/virology, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/sign/warning/biohazard{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"coc" = ( +/obj/machinery/camera{ + c_tag = "Medbay - Reception"; + dir = 4 + }, +/turf/open/floor/plasteel/stairs, +/area/medical/medbay/central) +"cod" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/machinery/light, +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/wood, +/area/medical/medbay/lobby) +"coe" = ( +/obj/structure/bodycontainer/morgue, +/obj/machinery/camera{ + c_tag = "Medbay Morgue"; + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"cof" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cog" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/engine/storage_shared{ + name = "Electrical Substation" + }) +"coh" = ( +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/engine/storage_shared{ + name = "Electrical Substation" + }) +"coi" = ( +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"coj" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cok" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"col" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"com" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Robotics Storage"; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"con" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/start/station_engineer, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/storage/primary) +"coo" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/storage/primary) +"cop" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "CEPrivacy"; + name = "CE Privacy Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/chief) +"coq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Departures" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cor" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Departures" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cos" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Workshop"; + req_access_txt = "11" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cot" = ( +/obj/machinery/computer/apc_control{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cou" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/effect/landmark/start/chief_engineer, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cov" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/plating, +/area/science/robotics/lab) +"cow" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Asteroid Mining Access"; + req_one_access_txt = "10;48" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cox" = ( +/obj/machinery/vending/wardrobe/robo_wardrobe, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"coy" = ( +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = -32 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"coz" = ( +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"coA" = ( +/obj/structure/closet/emcloset, +/obj/machinery/camera{ + c_tag = "Aft Maintenance - Starboard Quarter"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"coB" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Aft Hallway - MedSci Port"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"coC" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/camera{ + c_tag = "Aft Maintenance - Starboard Bow"; + pixel_x = 22 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"coD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"coE" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Aft Hall - MedSci Starboard"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"coF" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/landmark/start/assistant, +/obj/machinery/camera{ + c_tag = "Aft Hall - Workshop"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"coG" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Research - Experimentation Lab"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/engine, +/area/science/explab) +"coH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/medical/chemistry) +"coI" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/gateway) +"coJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Virology Access"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/medical/virology) +"coK" = ( +/obj/machinery/camera{ + c_tag = "Medbay - Monkey Pen"; + dir = 4 + }, +/mob/living/carbon/monkey, +/turf/open/floor/grass, +/area/medical/virology) +"coL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=cargo"; + location = "eng2" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"coM" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"coN" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"coO" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Central Hall"; + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/hallway/primary/central) +"coP" = ( +/obj/structure/table/glass, +/obj/item/paper_bin, +/obj/machinery/camera{ + c_tag = "Central Plaza - Port"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"coQ" = ( +/obj/machinery/camera{ + c_tag = "Central Docking Bay" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"coR" = ( +/obj/machinery/camera{ + c_tag = "Ferry Docking Bay"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"coS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Ferry Docking Bay - Starboard"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"coT" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"coU" = ( +/obj/machinery/computer/secure_data{ + dir = 1 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Security - Front Desk"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"coV" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/camera{ + c_tag = "Medbay Entrance"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"coW" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/techstorage/engineering, +/obj/machinery/camera{ + c_tag = "Technical Storage"; + dir = 4 + }, +/turf/open/floor/plating, +/area/storage/tech) +"coX" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay - Operating Theatre"; + dir = 8; + network = list("ss13","medbay"); + pixel_y = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"coY" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/obj/machinery/camera{ + c_tag = "Medbay - Cryogenics"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"coZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cpa" = ( +/obj/structure/closet/crate/radiation, +/obj/item/storage/firstaid/radbgone, +/obj/item/clothing/suit/radiation, +/obj/item/clothing/head/radiation, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cpb" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/sign/warning/biohazard{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/medical/virology) +"cpc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cpd" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/crew_quarters/fitness) +"cpe" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/full, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/engine, +/area/science/explab) +"cpf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cpg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cph" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"cpi" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/visible{ + dir = 5 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"cpj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"cpk" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cpl" = ( +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cpm" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/turf/open/floor/plasteel, +/area/lawoffice) +"cpn" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cpo" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cpp" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor/auto{ + id = "cargo" + }, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor/preopen{ + id = "cargoblock"; + name = "Cargo Router" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"cpq" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet/blue, +/area/crew_quarters/abandoned_gambling_den{ + name = "Arcade" + }) +"cpr" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/public/glass, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cps" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"cpt" = ( +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/machinery/newscaster{ + pixel_x = -30 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"cpu" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/library) +"cpv" = ( +/obj/structure/table, +/obj/machinery/newscaster{ + pixel_x = 30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cpw" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/grenade/chem_grenade, +/obj/item/screwdriver, +/obj/item/stack/cable_coil/random, +/obj/item/stack/cable_coil/random, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Research - Chemistry Lab"; + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Chemistry"; + departmentType = 1; + name = "Chemistry RC"; + pixel_x = -30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cpx" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/mineral/titanium/blue, +/area/hallway/primary/central) +"cpy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cpz" = ( +/turf/closed/wall/r_wall, +/area/medical/virology) +"cpA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cpB" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space/basic, +/area/space) +"cpC" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space/basic, +/area/space/station_ruins) +"cpD" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/science/storage) +"cpE" = ( +/obj/structure/fans/tiny, +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cpF" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cpG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/eva) +"cpH" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/directions/engineering{ + dir = 4; + pixel_y = -24 + }, +/obj/structure/sign/directions/supply{ + dir = 4; + pixel_y = -32 + }, +/obj/structure/sign/directions/evac{ + dir = 4; + pixel_y = -40 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cpI" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"cpJ" = ( +/turf/closed/wall/r_wall/rust, +/area/quartermaster/office) +"cpK" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cpL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cpM" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/turretid{ + control_area = "area/science/server"; + icon_state = "control_stun"; + name = "Computer Core turret control"; + pixel_x = -3; + pixel_y = -23 + }, +/turf/open/floor/plasteel, +/area/ai_monitored/turret_protected/ai_upload_foyer) +"cpN" = ( +/obj/structure/closet/secure_closet/atmospherics, +/obj/item/cartridge/atmos, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cpO" = ( +/obj/structure/closet/secure_closet/atmospherics, +/obj/item/cartridge/atmos, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cpP" = ( +/obj/machinery/camera{ + c_tag = "Research - Gateway Atrium"; + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/gateway) +"cpQ" = ( +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/obj/effect/turf_decal/stripes/line{ + dir = 6; + layer = 2.03 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) +"cpR" = ( +/obj/structure/closet/crate/engineering/electrical, +/obj/item/electronics/apc, +/obj/item/electronics/apc, +/obj/item/electronics/airalarm, +/obj/item/electronics/airalarm, +/obj/item/electronics/firelock, +/obj/item/electronics/firelock, +/obj/item/electronics/firealarm, +/obj/item/electronics/firealarm, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cpS" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cpT" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cpU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cpV" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cpW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cpX" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/engine/air, +/area/engine/atmos) +"cpY" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/teg_hot) +"cpZ" = ( +/obj/structure/table, +/obj/item/tank/internals/air, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/dark, +/area/engine/teg_hot) +"cqa" = ( +/obj/machinery/autolathe, +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqb" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cqc" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqd" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/mob/living/simple_animal/hostile/retaliate/goose{ + check_friendly_fire = 1; + desc = "It may not be as wise as an owl, but the Head of Security's pet is far more dangerous."; + faction = list("neutral","silicon","turret","station"); + name = "Officer Snooty" + }, +/turf/open/floor/plasteel, +/area/security/main) +"cqe" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=eng1"; + location = "sci" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cqf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cqg" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cqh" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cqi" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness) +"cqj" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cqk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=med"; + location = "cargo" + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cql" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=eng2"; + location = "evac" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cqm" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 26 + }, +/obj/item/storage/box/disks_nanite, +/obj/item/book/manual/wiki/research_and_development{ + pixel_x = 4; + pixel_y = -8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cqn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqo" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Warehouse"; + req_one_access_txt = "10;24" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqr" = ( +/obj/machinery/power/apc{ + areastring = "/area/maintenance/starboard/central"; + name = "Central Starboard Maintenance APC"; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/starboard/central) +"cqs" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/paper/guides/jobs/engi/solars, +/obj/item/pen, +/obj/machinery/camera{ + c_tag = "Engineering Foyer - Port"; + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqt" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/computer/station_alert, +/obj/structure/sign/poster/official/safety_eye_protection{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqu" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/computer/atmos_alert, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqv" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqw" = ( +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/machinery/disposal/bin, +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/full, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqx" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/modular_computer/console/preset/engineering, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqz" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/table/wood, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqB" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/obj/machinery/newscaster/security_unit{ + pixel_x = 30 + }, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"cqC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqE" = ( +/obj/machinery/conveyor_switch{ + id = "EngiCargoConveyer" + }, +/obj/machinery/button/door{ + id = "EngiDeliverDoor"; + name = "Engineering Delivery Door Control"; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqF" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cqG" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqH" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cqI" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/atmospheric_technician, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqJ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqK" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/sign/plaques/atmos{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cqL" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqN" = ( +/turf/closed/wall/rust, +/area/maintenance/department/security) +"cqO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cqP" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"cqQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cqR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cqS" = ( +/obj/machinery/computer/rdconsole/experiment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/requests_console{ + department = "Science"; + departmentType = 2; + name = "Science RC"; + pixel_x = -30; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel, +/area/science/explab) +"cqT" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cqU" = ( +/obj/machinery/door/airlock/external{ + name = "Escape Pod" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cqV" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"cqW" = ( +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cqX" = ( +/obj/docking_port/stationary{ + dir = 4; + dwidth = 5; + height = 7; + id = "supply_home"; + name = "Cargo Shuttle"; + width = 12 + }, +/turf/open/space/basic, +/area/space) +"cqY" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/status_display{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cqZ" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Medbay"; + departmentType = 1; + name = "Medbay RC"; + pixel_y = -32 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cra" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance{ + name = "Auxiliary Tool Storage" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/storage/tools) +"crb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + dir = 4; + id = "EngiCargoConveyer" + }, +/turf/open/floor/plating, +/area/engine/teg_cold) +"crc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"crd" = ( +/obj/effect/turf_decal/bot, +/obj/structure/table/reinforced, +/obj/item/destTagger, +/obj/item/destTagger, +/obj/item/destTagger, +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_y = 32 + }, +/obj/machinery/button/massdriver{ + id = "cargo_out"; + pixel_x = -8; + pixel_y = -4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cre" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Asteroid Mining Access"; + req_one_access_txt = "10;48" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"crf" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/medical/chemistry"; + name = "Chemistry Lab APC"; + pixel_y = -26 + }, +/turf/open/floor/plating, +/area/maintenance/department/science{ + name = "Research Maintenance" + }) +"crg" = ( +/obj/structure/reagent_dispensers/fueltank/high, +/obj/machinery/light/small, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"crh" = ( +/obj/machinery/mass_driver{ + dir = 1; + id = "cargo_out"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"cri" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"crj" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) +"crk" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/mineral/titanium/blue, +/area/hallway/primary/central) +"crl" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"crm" = ( +/obj/machinery/door/firedoor, +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 4; + id = "EngiCargoConveyer" + }, +/obj/machinery/door/poddoor{ + id = "EngiDeliverDoor"; + name = "Engineering Delivery Door" + }, +/turf/open/floor/plating, +/area/engine/teg_cold) +"crn" = ( +/obj/machinery/atmospherics/components/binary/valve, +/turf/open/floor/plating, +/area/science/storage) +"cro" = ( +/turf/closed/wall/r_wall/rust, +/area/maintenance/starboard/aft) +"crp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/storage/tech) +"crq" = ( +/obj/structure/closet/crate/freezer, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/morgue"; + dir = 4; + name = "Morgue APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"crr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Central Hall - Fore"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"crs" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -29 + }, +/turf/open/floor/engine, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"crt" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cru" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"crv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"crw" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"crx" = ( +/obj/machinery/camera{ + c_tag = "Engine Room - Port Quarter"; + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"cry" = ( +/obj/structure/bookcase/random/religion, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/library) +"crz" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/camera/motion{ + c_tag = "Telecomms Satellite"; + dir = 1; + network = list("tcomms") + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"crA" = ( +/obj/structure/bookcase/random/fiction, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/library) +"crB" = ( +/obj/structure/lattice, +/obj/machinery/camera/motion{ + c_tag = "Telecomms Satellite Exterior - Port"; + dir = 8; + network = list("tcomms") + }, +/turf/open/space/basic, +/area/space/nearstation) +"crC" = ( +/obj/structure/lattice, +/obj/machinery/camera/motion{ + c_tag = "Telecomms Satellite Exterior Starboard"; + dir = 4; + network = list("tcomms") + }, +/turf/open/space/basic, +/area/space/nearstation) +"crD" = ( +/obj/machinery/camera/motion{ + c_tag = "Telecomms Server Room"; + dir = 1; + network = list("tcomms") + }, +/turf/open/floor/plasteel/dark/telecomms, +/area/tcommsat/server) +"crE" = ( +/obj/machinery/camera/motion{ + c_tag = "Telecomms Satellite Exterior - Port Quarter"; + network = list("tcomms") + }, +/turf/open/space/basic, +/area/space) +"crF" = ( +/obj/machinery/camera/motion{ + c_tag = "Telecomms Satellite Exterior - Starboard Quarter"; + network = list("tcomms"); + pixel_x = 22 + }, +/turf/open/space/basic, +/area/space) +"crG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"crH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"crI" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/science/mixing) +"crJ" = ( +/obj/structure/window/reinforced, +/obj/machinery/mass_driver{ + dir = 8; + id = "toxinsdriver" + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/turf/open/floor/plating, +/area/science/mixing) +"crK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"crL" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating/airless, +/area/science/test_area) +"crM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/plating/airless, +/area/science/test_area) +"crN" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"crO" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"crP" = ( +/obj/structure/lattice, +/turf/closed/wall, +/area/hallway/secondary/entry) +"crQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"crR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"crS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Escape Pod" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"crT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"crU" = ( +/obj/effect/turf_decal/stripes/line, +/obj/item/crowbar, +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"crV" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/public/glass, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"crW" = ( +/obj/effect/landmark/start/paramedic, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"crX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/landmark/start/medical_doctor, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"crY" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"crZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/stairs/left, +/area/hallway/primary/aft) +"csa" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/sign/warning/pods{ + pixel_x = -32; + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"csb" = ( +/obj/structure/sign/warning/pods{ + pixel_x = 32; + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) +"csc" = ( +/obj/structure/fans/tiny/invisible, +/obj/docking_port/stationary{ + dir = 2; + dwidth = 1; + height = 4; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/escape_pod/default; + width = 3 + }, +/turf/open/space/basic, +/area/space) +"csd" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cse" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/item/clipboard, +/obj/item/paper/monitorkey, +/obj/item/pen/fountain, +/obj/item/stamp/ce, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Engineer's Desk"; + departmentType = 5; + name = "Chief Engineer's RC"; + pixel_y = -32 + }, +/mob/living/simple_animal/parrot/Poly, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"csf" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Research Director's Desk"; + departmentType = 5; + name = "Research Director's RC"; + pixel_y = -32; + receive_ore_updates = 1 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"csg" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"csh" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/checkpoint/supply) +"csi" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"csj" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"csk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/science/explab) +"csl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"csm" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"csn" = ( +/obj/machinery/computer/security{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + name = "Security RC"; + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cso" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"csp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medical)"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"csq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Cold Loop"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"csr" = ( +/obj/structure/table, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Bridge"; + departmentType = 5; + name = "Bridge RC"; + pixel_x = 30 + }, +/turf/open/floor/plasteel, +/area/bridge) +"css" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"cst" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/teg_cold) +"csu" = ( +/obj/structure/table, +/obj/machinery/computer/med_data/laptop, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Chief Medical Officer's Desk"; + departmentType = 5; + name = "Chief Medical Officer RC"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"csv" = ( +/obj/machinery/computer/card/minor/cmo{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/keycard_auth{ + pixel_x = -24 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"csw" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"csx" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/photocopier, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"csy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/landmark/xmastree, +/turf/open/floor/plasteel{ + dir = 1; + icon_state = "chapel" + }, +/area/chapel/main) +"csz" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"csA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Visitation" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"csB" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"csC" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating/asteroid, +/area/hydroponics/garden{ + name = "Nature Preserve" + }) +"csD" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/bridge) +"csE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hop) +"csF" = ( +/obj/structure/bed, +/obj/effect/landmark/start/research_director, +/obj/item/bedsheet/rd, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"csG" = ( +/obj/machinery/holopad, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/lawoffice) +"csH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/library) +"csI" = ( +/obj/structure/table/wood, +/obj/machinery/light_switch{ + pixel_x = 4; + pixel_y = -24 + }, +/obj/item/flashlight/lamp/green, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -6; + pixel_y = -32 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"csJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"csK" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall, +/area/science/robotics/lab) +"csL" = ( +/obj/effect/landmark/xmastree/rdrod, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"csM" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"csN" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"csO" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"csP" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"csQ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) +"csR" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plating, +/area/science/storage) +"csS" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"csT" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/science/circuit) +"csU" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/storage/tech) +"csV" = ( +/obj/machinery/chem_master, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = 26 + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"csW" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"csX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"csY" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"csZ" = ( +/obj/machinery/holopad, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cta" = ( +/obj/effect/landmark/blobstart, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/engine, +/area/science/xenobiology) +"ctb" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/landmark/blobstart, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/engine, +/area/science/explab) +"ctc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"ctd" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cte" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"ctf" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"ctg" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cth" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cti" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"ctj" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/science/mixing) +"ctk" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ctl" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/full, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plasteel, +/area/engine/workshop) +"ctm" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 2 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"ctn" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/item/storage/toolbox/mechanical, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cto" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/full, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"ctp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"ctq" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"ctr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/quartermaster/office) +"cts" = ( +/obj/structure/rack, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -29 + }, +/turf/open/floor/plasteel/white, +/area/gateway) +"ctt" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"ctu" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"ctv" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ctw" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"ctx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cty" = ( +/obj/effect/landmark/start/shaft_miner, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"ctz" = ( +/obj/structure/table, +/obj/item/stamp/qm, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/coin/silver{ + pixel_x = -12 + }, +/obj/item/key{ + pixel_x = 8; + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"ctA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Bay"; + req_one_access_txt = "31;48" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ctB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ctC" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"ctD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/medical/virology) +"ctE" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/modular_computer/console/preset/engineering, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/plasteel, +/area/engine/workshop) +"ctF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/medical/virology) +"ctG" = ( +/turf/closed/wall, +/area/engine/workshop) +"ctH" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"ctI" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/engine, +/area/science/explab) +"ctJ" = ( +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/engine/workshop) +"ctK" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + id = "workshop_off" + }, +/turf/open/floor/plating, +/area/engine/workshop) +"ctL" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Pen 5"; + dir = 4 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"ctM" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Pen 6"; + dir = 8; + pixel_y = -22 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"ctN" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"ctO" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/sign/warning/biohazard{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"ctP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"ctQ" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating/airless, +/area/science/xenobiology) +"ctR" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ctS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/sign/warning/biohazard{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"ctT" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#c1caff" + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Aft"; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ctU" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 10 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"ctV" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/hallway/secondary/exit"; + name = "Escape Shuttle Hallway APC"; + pixel_y = -28 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) +"ctW" = ( +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"ctX" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel, +/area/engine/workshop) +"ctY" = ( +/obj/structure/sign/departments/xenobio{ + pixel_x = -32; + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"ctZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cua" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cub" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cuc" = ( +/obj/machinery/door/airlock/virology/glass{ + name = "Monkey Pen"; + req_access_txt = "39" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cud" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/camera{ + c_tag = "Xenobiology - Aft Access"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cue" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "8;55" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cuf" = ( +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cug" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cuh" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cui" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cuj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cuk" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cul" = ( +/obj/structure/chair/comfy/black, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cum" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/obj/structure/sign/poster/official/science{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cun" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/snacks/meat/steak, +/obj/machinery/camera{ + c_tag = "Xenobiology - Test Chamber"; + dir = 1 + }, +/turf/open/floor/engine, +/area/science/xenobiology) +"cuo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"cup" = ( +/obj/structure/table, +/obj/item/surgical_drapes, +/obj/item/scalpel, +/obj/item/circular_saw{ + pixel_y = 16 + }, +/obj/item/hemostat, +/obj/item/retractor, +/obj/item/cautery, +/obj/item/clothing/gloves/color/latex, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cuq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cur" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cus" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cut" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 7; + height = 9; + id = "whiteship_home"; + name = "SS13: Merchant Dock"; + width = 13 + }, +/turf/open/space/basic, +/area/space) +"cuu" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cuv" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cuw" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cux" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"cuy" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space/basic, +/area/space/nearstation) +"cuz" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cuA" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cuB" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cuC" = ( +/obj/structure/lattice/catwalk, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cuD" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space/basic, +/area/space/nearstation) +"cuE" = ( +/obj/structure/lattice, +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space/basic, +/area/space/nearstation) +"cuF" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cuG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space/basic, +/area/space/nearstation) +"cuH" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cuI" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/item/storage/toolbox/emergency, +/obj/item/screwdriver, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cuJ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/screwdriver, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cuK" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/closet/secure_closet/engineering_welding, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/engine/workshop"; + dir = 1; + name = "Engineering Workshop APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cuL" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cuM" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cuN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/closed/wall, +/area/engine/workshop) +"cuO" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/storage/primary) +"cuP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cuQ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/gateway) +"cuR" = ( +/turf/closed/wall, +/area/router/air) +"cuS" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/mass_driver{ + dir = 1; + id = "workshop_out"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/engine/workshop) +"cuT" = ( +/obj/structure/window/reinforced/spawner/west, +/obj/machinery/conveyor{ + id = "workshop_off" + }, +/turf/open/floor/plating, +/area/engine/workshop) +"cuU" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/sign/poster/official/build{ + pixel_x = -32 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cuV" = ( +/turf/open/floor/plasteel, +/area/engine/workshop) +"cuW" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cuX" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay"; + req_access_txt = "5" + }, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cuY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Chemistry Lab"; + req_access_txt = "8;33;47" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"cuZ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cva" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cvb" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cvc" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cvd" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cve" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"cvf" = ( +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cvg" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cvh" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/computer/rdconsole/production{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cvi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/engine/workshop) +"cvj" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/obj/machinery/conveyor{ + id = "DeliveryConveyer" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"cvk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor{ + dir = 1; + id = "DeliveryConveyer" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"cvl" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/router/air) +"cvm" = ( +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/central"; + dir = 1; + name = "Airbridge Router APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/router/air) +"cvn" = ( +/obj/structure/table, +/obj/item/destTagger, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/router/air) +"cvo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/medical/virology) +"cvp" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/computer/cargo/request, +/obj/machinery/camera{ + c_tag = "Airbridge Router"; + pixel_x = 22 + }, +/obj/machinery/requests_console{ + department = "Airbridge Router"; + name = "Airbridge Router RC"; + pixel_y = 28 + }, +/turf/open/floor/plasteel, +/area/router/air) +"cvq" = ( +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/conveyor{ + dir = 1; + id = "workshop_off" + }, +/turf/open/floor/plating, +/area/engine/workshop) +"cvr" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/workshop) +"cvs" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/turf/open/floor/plating, +/area/medical/virology) +"cvt" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cvu" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cvv" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/requests_console{ + department = "Genetics"; + name = "Genetics RC"; + pixel_x = 30 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"cvw" = ( +/obj/structure/closet, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/item/wrench/medical, +/obj/item/screwdriver, +/obj/item/stock_parts/cell/high/plus, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medical)"; + pixel_y = -30 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay/central) +"cvx" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/storage/toolbox/emergency, +/obj/item/hypospray/mkii/tricord, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medical)"; + pixel_y = -30 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cvy" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cvz" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4; + node1_concentration = 0.8; + node2_concentration = 0.2; + on = 1; + target_pressure = 4500 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cvA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/securearea{ + pixel_x = -32; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cvB" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/obj/machinery/porta_turret/ai{ + dir = 1; + req_access = list(16) + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cvC" = ( +/obj/machinery/computer/nanite_cloud_controller, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/structure/window/reinforced/spawner, +/turf/open/floor/plasteel/dark, +/area/science/server{ + name = "Computer Core" + }) +"cvD" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/rnd/server, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cvE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/poddoor{ + id = "RDServer"; + name = "RD Server Lockup" + }, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cvF" = ( +/obj/item/caution, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cvG" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Xenobiology Lab Access"; + req_access_txt = "55" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cvH" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/research{ + name = "Toxins Mixing Lab"; + req_access_txt = "7;8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"cvI" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/computer/telecomms/server{ + dir = 1; + network = "tcommsat" + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"cvJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"cvK" = ( +/obj/structure/chair/sofa/right, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/bridge) +"cvL" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cvM" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/absinthe, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"cvN" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cvO" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cvP" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Custodial Closet"; + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/janitor) +"cvQ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/landmark/start/chemist, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/chair/office/light, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cvR" = ( +/obj/structure/table, +/obj/item/storage/toolbox/emergency, +/obj/item/clothing/head/welding, +/obj/item/clothing/glasses/welding, +/obj/item/weldingtool, +/obj/machinery/camera{ + c_tag = "Robotics"; + dir = 8; + network = list("ss13","medbay"); + pixel_y = -22 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cvS" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/clothing/glasses/science, +/obj/item/hand_labeler{ + pixel_y = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cvT" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall, +/area/medical/medbay/central) +"cvU" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/reagent_dispensers/virusfood{ + pixel_x = -32 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cvV" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cvW" = ( +/obj/structure/chair/comfy/black, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cvX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "8;55" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cvY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/research/glass{ + name = "Xenobiology Lab Access"; + req_access_txt = "55" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) +"cvZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/clipboard, +/obj/item/stamp/denied{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/stamp, +/obj/machinery/door/window/southright{ + name = "Customs Desk"; + req_access_txt = "57" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "HoPAft"; + name = "HoP Aft Desk Shutters" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"cwa" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/flashlight/lamp, +/obj/structure/window/reinforced/spawner, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "HoPAft"; + name = "HoP Aft Desk Shutters" + }, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"cwb" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Research Maintenance"; + req_one_access_txt = "12;47" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/science/research{ + name = "Research Sector" + }) +"cwc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/button/door{ + id = "cargoblock"; + name = "Router Access Control"; + pixel_x = -24; + pixel_y = 24; + req_access_txt = "31" + }, +/turf/open/floor/plasteel, +/area/quartermaster/sorting) +"cwd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/science/server{ + name = "Computer Core" + }) +"cwe" = ( +/obj/structure/closet/secure_closet/exile, +/turf/open/floor/plasteel/white, +/area/gateway) +"cwf" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cwg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/medical/virology) +"cwh" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cwi" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cwj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/medical/virology) +"cwk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/lounge) +"cwl" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/item/book/manual/wiki/infections, +/obj/item/folder/white, +/obj/machinery/requests_console{ + department = "Virology"; + name = "Virology RC"; + pixel_x = -32 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cwm" = ( +/obj/machinery/atmospherics/components/binary/valve, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cwn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cwo" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/microwave, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cwp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/medical/virology) +"cwq" = ( +/obj/machinery/door/airlock/engineering{ + name = "Hot Loop"; + req_one_access_txt = "10;24" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cwr" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cws" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cwt" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"cwu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cwv" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/warning/vacuum/external, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cww" = ( +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cwx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 1 + }, +/obj/structure/transit_tube_pod{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"cwy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/transit_tube/horizontal, +/turf/open/floor/plating, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"cwz" = ( +/obj/structure/transit_tube/curved{ + dir = 8 + }, +/turf/open/space/basic, +/area/space) +"cwA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"cwB" = ( +/turf/open/floor/plasteel, +/area/engine/atmos) +"cwC" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cwD" = ( +/obj/structure/transit_tube/diagonal/topleft, +/turf/open/space/basic, +/area/space) +"cwE" = ( +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cwF" = ( +/obj/structure/lattice, +/obj/structure/transit_tube/curved{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cwG" = ( +/obj/structure/lattice, +/obj/structure/disposalpipe/segment, +/obj/structure/transit_tube/horizontal, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cwH" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall, +/area/crew_quarters/toilet/restrooms) +"cwI" = ( +/obj/structure/transit_tube/horizontal, +/turf/open/space/basic, +/area/space) +"cwJ" = ( +/obj/structure/lattice, +/obj/structure/transit_tube/horizontal, +/turf/open/space/basic, +/area/space/nearstation) +"cwK" = ( +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/space/basic, +/area/space) +"cwL" = ( +/obj/structure/transit_tube/horizontal, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/engine/atmos) +"cwM" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/structure/transit_tube/station/reverse/flipped, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cwN" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"cwO" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cwP" = ( +/obj/structure/bed, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/landmark/start/chief_engineer, +/obj/item/bedsheet/ce, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/chief"; + dir = 4; + name = "Chief Engineer's Office APC"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cwQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/storage/primary) +"cwR" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cwS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering{ + name = "Warehouse"; + req_access_txt = "11" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cwT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/medical/virology) +"cwU" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/mineral/titanium/blue, +/area/hallway/primary/central) +"cwV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cwW" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/public/glass, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cwX" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/public/glass, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cwY" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/air_sensor/atmos/toxins_mixing_tank, +/turf/open/floor/engine/vacuum, +/area/science/mixing) +"cwZ" = ( +/obj/structure/table, +/obj/item/storage/box/beanbag, +/obj/item/gun/ballistic/revolver/doublebarrel, +/obj/item/storage/hypospraykit/toxin, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/bar) +"cxa" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cxb" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cxc" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cxd" = ( +/obj/machinery/computer/monitor, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cxe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cxf" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cxg" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cxh" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cxi" = ( +/obj/structure/rack, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/item/extinguisher, +/obj/item/extinguisher, +/obj/item/extinguisher, +/obj/item/extinguisher, +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Engineering - Primary Tool Storage"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cxj" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/reagent_dispensers/foamtank, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cxk" = ( +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cxl" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall, +/area/storage/primary) +"cxm" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"cxn" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/item/t_scanner{ + pixel_x = -4 + }, +/obj/item/pipe, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/quartermaster/warehouse) +"cxo" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small, +/obj/machinery/camera{ + c_tag = "Supply - Warehouse Aft"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cxp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/mob/living/simple_animal/bot/floorbot, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cxq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cxr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cxs" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/item/storage/toolbox/electrical, +/obj/item/hand_labeler, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cxt" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cxu" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/storage) +"cxv" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cxw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cxx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining/glass{ + name = "Warehouse"; + req_one_access_txt = "10;31" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/warehouse) +"cxy" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/stairs, +/area/quartermaster/storage) +"cxz" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/mining{ + name = "Mining Office"; + req_access_txt = "48" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cxB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Cargo Office" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxE" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cxF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxI" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxJ" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxK" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxM" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cxN" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxO" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cxP" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxQ" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxR" = ( +/obj/effect/landmark/start/shaft_miner, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cxS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cxT" = ( +/obj/structure/table, +/obj/effect/turf_decal/bot, +/obj/machinery/camera{ + c_tag = "Supply - Cargo Office"; + dir = 1 + }, +/obj/machinery/newscaster{ + pixel_y = -28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxU" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cxV" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cxW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Starboard Quarter Maintenance"; + req_one_access_txt = "12;48" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/quartermaster/office) +"cxX" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cxY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cxZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cya" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cyb" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cyc" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/door/airlock/external/glass{ + name = "Mining Dock"; + req_one_access_txt = "10;24;48" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cyd" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cye" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cyf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cyg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cyh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Mining Office Maintenance"; + req_one_access_txt = "10;24;48" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/quartermaster/miningoffice) +"cyi" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 8; + icon_state = "intact" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cyj" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cyk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cyl" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cym" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cyn" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cyo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Aft Maintenance"; + req_access_txt = "12" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"cyp" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cyq" = ( +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/power/apc{ + name = "Restrooms APC"; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/restrooms) +"cyr" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cys" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cyt" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/camera{ + c_tag = "Aft Maintenance - Port"; + pixel_x = 22 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cyw" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/sign/poster/official/cleanliness{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/restrooms) +"cyx" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cyy" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Medbay Lobby" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/white/side, +/area/medical/medbay/lobby) +"cyz" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cyA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cyB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Departures" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cyE" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cyF" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cyG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cyH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Aft Maintenance"; + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/medical/medbay/lobby) +"cyI" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyJ" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"cyK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cyL" = ( +/obj/structure/closet/cardboard, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyM" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Robotics Lab Maintenance"; + req_access_txt = "29" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/science/robotics/lab) +"cyO" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyR" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyS" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyU" = ( +/obj/machinery/camera{ + c_tag = "Aft Maintenance - Central Starboard"; + dir = 8; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cyV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"cyW" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cyX" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cyY" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"cyZ" = ( +/obj/machinery/computer/arcade, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"cza" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"czb" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/item/paicard, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/exit) +"czc" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/cafeteria, +/area/hallway/secondary/exit) +"czd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cze" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"czf" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/chief_medical_officer, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"czg" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/mob/living/simple_animal/hostile/retaliate/bat, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"czh" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"czi" = ( +/obj/structure/bed, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/effect/landmark/start/chief_medical_officer, +/obj/item/bedsheet/cmo, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"czj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"czk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"czl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Aft Maintenance"; + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/secondary/exit) +"czm" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"czn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"czo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"czp" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"czq" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/food/drinks/coffee, +/obj/item/pen/blue, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"czr" = ( +/obj/structure/table/glass, +/obj/item/storage/toolbox/emergency, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"czs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"czt" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"czu" = ( +/obj/machinery/suit_storage_unit/cmo, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"czv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Morgue"; + req_access_txt = "5;29" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"czw" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"czx" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"czy" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"czz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "CMO's Office"; + req_access_txt = "40" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/crew_quarters/heads/cmo) +"czA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/crew_quarters/heads/cmo) +"czB" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance"; + req_access_txt = "5" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"czC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"czD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"czE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"czF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + sortType = 23 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"czG" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"czH" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"czI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"czJ" = ( +/obj/item/beacon, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"czK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"czL" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"czM" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"czN" = ( +/obj/structure/closet/crate/trashcart, +/obj/structure/sign/departments/custodian{ + pixel_x = 32 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel) +"czO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Waste Disposal"; + req_one_access_txt = "12;50" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"czP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"czQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"czR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/sorting/mail, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/chapel) +"czS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "26" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/janitor) +"czT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/janitor) +"czU" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/janitor) +"czV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"czW" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/door/airlock/research/glass{ + name = "Robotics Lab"; + req_access_txt = "29" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/science/robotics/lab) +"czX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/rust, +/area/maintenance/disposal) +"czY" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/janitor) +"czZ" = ( +/obj/effect/landmark/start/janitor, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/janitor) +"cAa" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/structure/chair/sofa/right, +/obj/item/reagent_containers/food/drinks/bottle/vermouth/empty, +/obj/item/reagent_containers/food/snacks/grown/cannabis{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"cAb" = ( +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/structure/chair/sofa/left, +/obj/item/storage/box/hug/medical, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"cAc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cAd" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cAe" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/janitor) +"cAf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/janitor) +"cAg" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/janitor) +"cAh" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Custodial Closet"; + req_access_txt = "12;26" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/janitor) +"cAi" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"cAj" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"cAk" = ( +/obj/effect/turf_decal/stripes/line, +/obj/item/reagent_containers/pill/floorpill, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"cAl" = ( +/obj/effect/turf_decal/stripes/line, +/obj/item/stack/tile/plasteel{ + pixel_x = 10; + pixel_y = 4 + }, +/obj/item/camera, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"cAm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cAn" = ( +/obj/structure/disposalpipe/junction/flip, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cAo" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/janitor) +"cAp" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cAq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"cAr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/disposal) +"cAs" = ( +/obj/structure/mopbucket, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/janitor) +"cAt" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/window/southleft{ + name = "Cloning Access"; + req_one_access_txt = "9;45" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cAu" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cAv" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/stairs, +/area/medical/medbay/central) +"cAw" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/item/soap, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/structure/disposalpipe/segment, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/machinery/requests_console{ + department = "Custodial Closet"; + name = "Custodial RC"; + pixel_x = -32 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/janitor) +"cAx" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/landmark/start/janitor, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/janitor) +"cAy" = ( +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cAz" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cAA" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/closed/wall, +/area/storage/primary) +"cAB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cAC" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cAD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation Room A"; + req_access_txt = "39" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cAE" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/item/caution, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cAF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access_txt = "4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"cAG" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/virologist, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cAH" = ( +/obj/structure/table, +/obj/item/storage/box/beakers, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cAI" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cAJ" = ( +/obj/structure/table/wood, +/obj/item/storage/book/bible/booze, +/obj/item/beacon{ + pixel_y = -8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/office) +"cAK" = ( +/obj/machinery/computer/med_data, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cAL" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/security{ + name = "Detective's Office"; + req_access_txt = "4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/detectives_office) +"cAM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"cAN" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"cAO" = ( +/obj/effect/landmark/start/detective, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"cAP" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/cigarettes, +/obj/item/lighter{ + pixel_x = -4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/newscaster/security_unit{ + pixel_y = -30 + }, +/obj/machinery/camera{ + c_tag = "Detective's Office"; + dir = 1 + }, +/obj/item/reagent_containers/food/drinks/bottle/hcider{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"cAQ" = ( +/obj/structure/closet/crate/trashcart, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/disposalpipe/junction, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"cAR" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/office) +"cAS" = ( +/obj/structure/table/wood, +/obj/item/storage/box/evidence, +/obj/item/hand_labeler, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"cAT" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/hallway/primary/aft) +"cAU" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cAV" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cAW" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cAX" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cAY" = ( +/obj/machinery/door/airlock{ + name = "Catering"; + req_one_access_txt = "25;28" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/bar) +"cAZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cBa" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cBb" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"cBc" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cBe" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBg" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/assistant, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBh" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBi" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBj" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/landmark/start/station_engineer, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cBl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Power Monitoring"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/engine_smes{ + name = "Power Monitoring" + }) +"cBm" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/rnd/production/techfab/department/engineering, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cBn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cBo" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBp" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cBq" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"cBr" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"cBs" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/closed/wall/r_wall, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"cBt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"cBu" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/sign/departments/security{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBv" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Central Maintenance"; + req_one_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/hallway/primary/port/fore) +"cBx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cBy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cBz" = ( +/obj/structure/filingcabinet/filingcabinet, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/turf/open/floor/plasteel, +/area/quartermaster/qm) +"cBA" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "Aft Hall - Fore"; + pixel_x = 22 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cBB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/workshop) +"cBC" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/maintenance/aft/secondary{ + name = "Aft Air Hookup" + }) +"cBD" = ( +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cBE" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBF" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/central) +"cBG" = ( +/obj/machinery/light, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cBH" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cBI" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cBJ" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/power/apc{ + name = "Engineering Foyer APC"; + pixel_y = -24 + }, +/obj/item/storage/firstaid/regular, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cBK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cBM" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"cBN" = ( +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"cBO" = ( +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"cBP" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"cBQ" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"cBR" = ( +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/light, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"cBS" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/turf/open/floor/plasteel, +/area/crew_quarters/bar) +"cBT" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cBU" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/stairs, +/area/crew_quarters/bar) +"cBV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/bar) +"cBW" = ( +/obj/structure/sign/plaques/golden{ + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/bar) +"cBX" = ( +/obj/structure/chair/stool/bar, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/bar) +"cBY" = ( +/obj/machinery/newscaster{ + pixel_y = -28 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/carpet/green, +/area/crew_quarters/bar) +"cBZ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cCa" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cCb" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/sign/departments/security{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cCc" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cCd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/sleeper{ + dir = 8 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/white, +/area/medical{ + name = "Medical Booth" + }) +"cCe" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cCf" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Central Maintenance - Fore"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/central) +"cCg" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cCh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cCi" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology/glass{ + name = "Monkey Pen"; + req_access_txt = "39" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cCj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cCk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cCl" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/turf/open/floor/plating, +/area/medical/virology) +"cCm" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cCn" = ( +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/hallway/primary/port/fore) +"cCo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/medical/virology) +"cCp" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/hallway/primary/port/fore) +"cCq" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/hallway/primary/central) +"cCr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/medical/virology) +"cCs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/office) +"cCt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Chapel Confessions"; + dir = 8; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 23 + }, +/turf/open/floor/plasteel/dark, +/area/chapel/main) +"cCu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/medical/virology) +"cCv" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cCw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/medical/virology) +"cCx" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start/virologist, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cCy" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/item/caution, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cCz" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation Room B"; + req_access_txt = "39" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cCA" = ( +/obj/machinery/computer/security/wooden_tv, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/grimy, +/area/security/detectives_office) +"cCB" = ( +/obj/machinery/light, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/office) +"cCC" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/chapel/main) +"cCD" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cCE" = ( +/obj/machinery/portable_atmospherics/canister/water_vapor, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/flip, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/janitor) +"cCF" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "recycler"; + name = "Recycler Conveyor Control" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plating, +/area/maintenance/disposal) +"cCG" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cCH" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cCI" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cCJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/library) +"cCK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/public/glass{ + name = "Library Access" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/library) +"cCL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cCM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/junction, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=bridge1"; + location = "router" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cCN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/stairs/left, +/area/hallway/primary/central) +"cCO" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"cCP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/landmark/start/depsec/engineering, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"cCQ" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/light, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cCR" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cCS" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cCT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/stairs/medium, +/area/hallway/primary/aft) +"cCU" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cCV" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plating, +/area/maintenance/department/security) +"cCW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"cCX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/heads/hos) +"cCY" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cCZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cDa" = ( +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cDb" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/glasses/science, +/obj/item/pen, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cDc" = ( +/obj/structure/table, +/obj/machinery/light, +/obj/structure/bedsheetbin, +/obj/item/clothing/glasses/hud/health, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cDd" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cDe" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/medical/virology) +"cDf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/medical/virology) +"cDg" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + id = "DeliveryConveyer" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"cDh" = ( +/obj/structure/closet/secure_closet/engineering_chief, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + locked = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/heads/chief) +"cDi" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/closet/crate/solarpanel_small, +/obj/machinery/airalarm{ + dir = 1; + locked = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/storage/primary) +"cDj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hor) +"cDk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/hallway/primary/port/fore) +"cDl" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cDm" = ( +/obj/structure/plasticflaps, +/obj/structure/disposalpipe/segment, +/obj/machinery/conveyor{ + dir = 1; + id = "DeliveryConveyer" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"cDn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/router/air) +"cDo" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/router/air) +"cDp" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/courtroom) +"cDq" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/courtroom) +"cDr" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/courtroom) +"cDs" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/item/twohanded/required/kirbyplants{ + icon_state = "applebush" + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark/side, +/area/bridge) +"cDt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access_txt = "20" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/captain) +"cDu" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/crew_quarters/heads/captain) +"cDv" = ( +/obj/machinery/vending/wardrobe/cap_wardrobe, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/captain) +"cDw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/captain) +"cDx" = ( +/obj/machinery/light_switch{ + pixel_x = -4; + pixel_y = 24 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = 6; + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet/blue, +/area/crew_quarters/heads/captain) +"cDy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"cDz" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"cDA" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"cDB" = ( +/obj/item/storage/secure/safe{ + pixel_x = -24 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/dresser, +/obj/item/storage/lockbox/medal, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"cDC" = ( +/obj/structure/chair/office/dark{ + dir = 4 + }, +/obj/effect/landmark/start/captain, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"cDD" = ( +/obj/structure/bed, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -28 + }, +/obj/item/bedsheet/captain, +/obj/effect/landmark/start/captain, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"cDE" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"cDF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"cDG" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/mob/living/simple_animal/pet/cat/space, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/captain) +"cDH" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/gateway) +"cDI" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"cDJ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/gateway) +"cDK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Gateway Chamber"; + req_access_txt = "62" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/engine, +/area/gateway) +"cDL" = ( +/obj/machinery/gateway{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/engine, +/area/gateway) +"cDM" = ( +/obj/machinery/gateway/centerstation, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/engine, +/area/gateway) +"cDN" = ( +/obj/machinery/gateway{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/engine, +/area/gateway) +"cDO" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cDP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cDQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cDR" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cDS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"cDT" = ( +/obj/structure/table, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/gateway) +"cDU" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"cDV" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/command{ + name = "Gateway Atrium"; + req_access_txt = "62" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/gateway) +"cDW" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"cDX" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cDY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -29 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"cDZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/crew_quarters/heads/hor) +"cEa" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"cEb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office"; + req_access_txt = "30" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hor) +"cEc" = ( +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + dir = 1; + freq = 1400; + location = "Bridge" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEd" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEe" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/scientist, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEj" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEk" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/research/glass{ + name = "Research Sector"; + req_one_access_txt = "29;47" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEl" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEm" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEn" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/research/glass{ + name = "Research Sector"; + req_one_access_txt = "29;47" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEo" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cEp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cEq" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cEr" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cEs" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEt" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEv" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research/glass{ + name = "Research Sector"; + req_one_access_txt = "29;47" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/science/lab) +"cEx" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEy" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/science/lab) +"cEz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cEA" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1; + sortType = 24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/science/lab) +"cEC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/science/lab) +"cED" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/scientist, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/lab) +"cEE" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/window/westleft{ + name = "Science Desk"; + req_access_txt = "29;47" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/lab) +"cEF" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cEG" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cEH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cEI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cEJ" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/lab) +"cEL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/lab) +"cEM" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEN" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cEO" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/research{ + name = "Chemistry Lab"; + req_access_txt = "8; 33" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/medical/chemistry) +"cEP" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cEQ" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cER" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Locker Room"; + req_access_txt = "5" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cES" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cET" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cEU" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Locker Room"; + req_access_txt = "5" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cEV" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cEW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/landmark/start/paramedic, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cEX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cEY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cEZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFd" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFe" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFg" = ( +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"cFh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFi" = ( +/obj/effect/landmark/start/paramedic, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFk" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced/spawner, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFl" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cFm" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cFn" = ( +/obj/structure/closet/l3closet, +/obj/structure/disposalpipe/segment, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFo" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFp" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cFq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cFr" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFs" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/surgical_drapes, +/obj/item/scalpel, +/obj/item/circular_saw{ + pixel_y = 16 + }, +/obj/item/hemostat, +/obj/item/retractor, +/obj/item/surgicaldrill, +/obj/item/cautery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cFt" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/camera{ + c_tag = "Medbay - Port"; + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/medbay/central"; + dir = 8; + name = "Medbay APC"; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFv" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFw" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/door/window/westright{ + name = "Treatment Center"; + req_access_txt = "5" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cFx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cFy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cFz" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/mask/surgical, +/obj/item/healthanalyzer, +/obj/item/clothing/neck/stethoscope, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone2{ + name = "Medbay Treatment Center" + }) +"cFA" = ( +/obj/structure/table, +/obj/item/storage/box/beakers{ + pixel_x = 5 + }, +/obj/item/storage/box/syringes{ + pixel_x = -4 + }, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"cFB" = ( +/obj/machinery/vending/snack/teal, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay/central) +"cFC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/medical/medbay/central) +"cFD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/start/paramedic, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFF" = ( +/obj/effect/landmark/start/paramedic, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay/central) +"cFG" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay/central) +"cFH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Break Room"; + req_access_txt = "5" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFI" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFK" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/carpet/blue, +/area/medical/medbay/central) +"cFL" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay/central) +"cFM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay/central) +"cFN" = ( +/obj/structure/closet/secure_closet/medical1, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/cafeteria, +/area/medical/medbay/central) +"cFO" = ( +/obj/structure/closet/crate/medical, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFP" = ( +/obj/structure/table/wood, +/obj/item/modular_computer/laptop/preset/civilian, +/obj/item/reagent_containers/pill/patch/styptic, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/medical/medbay/central) +"cFQ" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/carpet/blue, +/area/medical/medbay/central) +"cFR" = ( +/obj/structure/closet/crate/medical, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFS" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cFT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/virology/glass{ + name = "Virology Exterior Airlock"; + req_access_txt = "39" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cFU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cFV" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cFW" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cFX" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/research/glass{ + name = "Chemistry Lab"; + req_access_txt = "33" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) +"cFY" = ( +/turf/open/floor/plasteel, +/area/router/air) +"cFZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/machinery/button/massdriver{ + id = "airbridge_out"; + pixel_x = -8; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/router/air) +"cGa" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "airbridge_off" + }, +/turf/open/floor/plating, +/area/router/air) +"cGb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "MedSci Router"; + req_access_txt = "5" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cGc" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cGd" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Medbay Locker Room"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cGe" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light, +/obj/item/reagent_containers/blood/OMinus{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = 6 + }, +/obj/item/storage/box/masks{ + pixel_x = -4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medical)"; + pixel_y = -30 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cGf" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/conveyor{ + dir = 4; + id = "airbridge_off" + }, +/turf/open/floor/plating, +/area/router/air) +"cGg" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner, +/obj/machinery/conveyor{ + dir = 4; + id = "airbridge_off" + }, +/turf/open/floor/plating, +/area/router/air) +"cGh" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner, +/obj/machinery/mass_driver{ + dir = 4; + id = "airbridge_in"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/router/air) +"cGi" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cGj" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/landmark/start/scientist, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cGk" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cGl" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cGm" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cGn" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -29 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cGo" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/stairs, +/area/science/research{ + name = "Research Sector" + }) +"cGp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cGq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cGr" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/research/glass{ + name = "Xenobiology Lab Access"; + req_access_txt = "55" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cGs" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cGt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/start/scientist, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cGu" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/research{ + name = "Research Sector" + }) +"cGv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cGw" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "8;55" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cGx" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Experimentation Lab"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cGy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cGz" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cGA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cGB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cGC" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cGD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cGE" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cGF" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/science/storage) +"cGG" = ( +/obj/structure/table, +/obj/item/extinguisher, +/obj/item/storage/toolbox/mechanical, +/obj/item/wrench, +/obj/item/clothing/mask/gas, +/obj/item/extinguisher{ + pixel_x = -7; + pixel_y = 3 + }, +/obj/structure/cable, +/obj/machinery/power/apc{ + areastring = "/area/science/storage"; + dir = 4; + name = "Toxins Storage APC"; + pixel_x = 24 + }, +/turf/open/floor/plating, +/area/science/storage) +"cGH" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/camera{ + c_tag = "Toxins Lab - Storage"; + dir = 1 + }, +/turf/open/floor/plating, +/area/science/storage) +"cGI" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating, +/area/science/storage) +"cGJ" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/science/storage) +"cGK" = ( +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/turf/open/floor/plating, +/area/science/storage) +"cGL" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/science/storage) +"cGM" = ( +/obj/structure/tank_dispenser, +/turf/open/floor/plating, +/area/science/storage) +"cGN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/science/storage) +"cGO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/science/storage) +"cGP" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/science/storage) +"cGQ" = ( +/obj/machinery/door/airlock/research{ + name = "Plasma Canister Storage"; + req_access_txt = "7;8" + }, +/turf/open/floor/plating, +/area/science/storage) +"cGR" = ( +/obj/effect/landmark/start/scientist, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cGS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cGT" = ( +/obj/item/radio/intercom{ + dir = 8; + name = "Station Intercom (Common)"; + pixel_x = 28 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cGU" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/turf/open/floor/plating/airless, +/area/science/storage) +"cGV" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plating, +/area/science/storage) +"cGW" = ( +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/science/storage) +"cGX" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cGY" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cGZ" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1 + }, +/turf/open/floor/plating/airless, +/area/science/storage) +"cHa" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/structure/sign/warning/fire{ + pixel_x = -32 + }, +/obj/machinery/camera{ + c_tag = "Toxins Lab - Plasma Storage"; + dir = 1 + }, +/turf/open/floor/plating, +/area/science/storage) +"cHb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cHc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cHd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cHe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cHf" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cHg" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cHh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cHi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/circuit) +"cHj" = ( +/obj/structure/table, +/obj/item/storage/hypospraykit/toxin{ + pixel_x = -5 + }, +/obj/item/storage/hypospraykit/fire{ + pixel_x = 5 + }, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/glasses/sunglasses, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/science/explab) +"cHk" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/explab) +"cHl" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/explab) +"cHm" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/explab) +"cHn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/explab) +"cHo" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHq" = ( +/obj/structure/closet/firecloset, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHr" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHs" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHt" = ( +/obj/structure/disposalpipe/junction, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHu" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHv" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/camera{ + c_tag = "Research - Experimentation Hall"; + dir = 8; + network = list("ss13","medbay") + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/science/explab) +"cHw" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/sign/warning/biohazard{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/explab) +"cHy" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/explab) +"cHz" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/engine, +/area/science/explab) +"cHA" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Experimentation Lab"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHC" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/power/apc{ + areastring = "/area/science/explab"; + dir = 4; + name = "Experimentation Lab APC"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/science/explab) +"cHD" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/engine, +/area/science/explab) +"cHE" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/explab) +"cHF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/engine, +/area/science/explab) +"cHG" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/research{ + name = "Experimentation Lab"; + req_access_txt = "47" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHH" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHI" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/science/explab) +"cHJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/science/explab) +"cHK" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cHL" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cHM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cHN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cHO" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"cHP" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/obj/effect/landmark/start/geneticist, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"cHQ" = ( +/obj/machinery/light, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"cHR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical{ + name = "Morgue"; + req_one_access_txt = "9;45" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"cHS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Genetics Lab"; + req_access_txt = "9" + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"cHT" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/rust, +/area/medical/morgue) +"cHU" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"cHV" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/genetics"; + dir = 8; + name = "Genetics Lab APC"; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cHW" = ( +/obj/machinery/rnd/production/circuit_imprinter, +/obj/item/reagent_containers/glass/beaker, +/obj/structure/sign/poster/official/state_laws{ + pixel_y = 32 + }, +/turf/open/floor/circuit, +/area/science/robotics/lab) +"cHX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cHY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/recharge_station, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cHZ" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + name = "Airbridge Router" + }, +/turf/open/floor/plating, +/area/router/air) +"cIa" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cIb" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/item/storage/firstaid/radbgone, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medical)"; + pixel_x = 28 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"cIc" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cId" = ( +/obj/effect/landmark/xeno_spawn, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cIe" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/maintenance/aft) +"cIf" = ( +/obj/structure/closet/crate/trashcart, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cIg" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"cIh" = ( +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + dir = 4; + id = "workshop_off" + }, +/turf/open/floor/plating, +/area/engine/workshop) +"cIi" = ( +/obj/structure/window/reinforced/spawner, +/obj/machinery/conveyor{ + dir = 4; + id = "workshop_off" + }, +/turf/open/floor/plating, +/area/engine/workshop) +"cIj" = ( +/obj/structure/chair, +/obj/effect/landmark/start/geneticist, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"cIk" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"cIl" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"cIm" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/landmark/start/geneticist, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"cIn" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/genetics) +"cIo" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/medical/glass{ + name = "Genetics Lab Maintenance"; + req_access_txt = "9" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/medical/genetics) +"cIp" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cIq" = ( +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced/spawner/east, +/obj/machinery/conveyor{ + dir = 1; + id = "workshop_off" + }, +/turf/open/floor/plating, +/area/engine/workshop) +"cIr" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -28; + pixel_y = -4 + }, +/obj/machinery/light_switch{ + pixel_x = -24; + pixel_y = 10 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cIs" = ( +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics"; + req_access_txt = "24" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cIt" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cIu" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cIv" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIw" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIx" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Aft Hall"; + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIz" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIA" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIB" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/twohanded/required/kirbyplants/photosynthetic, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIC" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cID" = ( +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIE" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIF" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIG" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIH" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cII" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIJ" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIK" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIL" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Engineering Sector" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIQ" = ( +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIR" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIS" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIU" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=evac"; + location = "eng1" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/obj/machinery/airalarm{ + dir = 1; + locked = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cIZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cJa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cJb" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cJc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cJd" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supplymain/hidden, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cJe" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 1; + locked = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cJf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/restrooms) +"cJg" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/restrooms) +"cJh" = ( +/obj/structure/table, +/obj/structure/bedsheetbin/towel, +/obj/machinery/camera{ + c_tag = "Aft Restrooms"; + dir = 8; + pixel_y = -22 + }, +/obj/machinery/airalarm{ + dir = 1; + locked = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/restrooms) +"cJi" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + locked = 0; + pixel_y = -22 + }, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cJj" = ( +/obj/machinery/computer/security/mining, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cJk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cJl" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera{ + c_tag = "Engine Room - Starboard Quarter"; + dir = 8; + pixel_y = -22 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"cJm" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cJn" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Airlock"; + req_access_txt = "24" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cJo" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner, +/area/engine/atmos) +"cJp" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) +"cJq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/suit_storage_unit/engine, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"cJr" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cJs" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cJt" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cJu" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cJv" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Router"; + req_access_txt = "11" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"cJw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"cJx" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/manifold/supplymain/visible{ + dir = 1 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cJy" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/rnd/production/circuit_imprinter, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cJz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor{ + dir = 8; + id = "DeliveryConveyor" + }, +/turf/open/floor/plating, +/area/quartermaster/warehouse) +"cJA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"cJB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/visible, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/engineering{ + name = "Engine Room" + }) +"cJC" = ( +/obj/machinery/door/airlock/engineering{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cJD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/power/terminal, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cJE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cJF" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/closed/wall/r_wall, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"cJG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/table, +/obj/machinery/light/small, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/engine/gravity_generator"; + dir = 4; + name = "Gravity Generator APC"; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/engine/gravity_generator) +"cJH" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cJI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/engine/gravity_generator) +"cJJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"cJK" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"cJL" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"cJM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/landmark/start/atmospheric_technician, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"cJN" = ( +/obj/machinery/light/small, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"cJO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/engine/supermatter{ + name = "Thermo-Electric Generator" + }) +"cJP" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/light/small, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"cJQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"cJR" = ( +/obj/machinery/door/airlock/engineering{ + name = "Canister Storage"; + req_one_access_txt = "10;24" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"cJS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"cJT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"cJU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"cJV" = ( +/obj/structure/plasticflaps, +/obj/machinery/door/poddoor{ + id = "DeliveryDoor"; + name = "Delivery Door" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/conveyor{ + dir = 8; + id = "DeliveryConveyor" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"cJW" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"cJX" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"cJY" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"cJZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"cKa" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"cKb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"cKc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/engineering/glass{ + name = "Canister Storage"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/storage{ + name = "Canister Storage" + }) +"cKd" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "DeliveryConveyor" + }, +/turf/open/floor/plating, +/area/quartermaster/sorting) +"cKe" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/public/glass{ + name = "Airbridge Router" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/air) +"cKf" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/air) +"cKg" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/vending/engivend, +/turf/open/floor/plasteel, +/area/storage/primary) +"cKh" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cKi" = ( +/obj/structure/sign/poster/official/space_cops{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel/dark, +/area/science/robotics/lab) +"cKj" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/door/window/northright{ + name = "Medbay Desk"; + req_access_txt = "5" + }, +/obj/item/clipboard, +/obj/item/pen, +/obj/item/clothing/glasses/hud/health, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cKk" = ( +/obj/structure/chair/office/light{ + dir = 1; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/landmark/start/medical_doctor, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cKl" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/lobby) +"cKm" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/stairs, +/area/medical/medbay/central) +"cKn" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cKo" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 8; + sortType = 9 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cKp" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"cKq" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/medical/morgue) +"cKr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cKs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cKt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cKu" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cKv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/misc_lab{ + name = "Research Observatory" + }) +"cKw" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/science/xenobiology) +"cKx" = ( +/obj/structure/grille, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/science/xenobiology) +"cKy" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) +"cKz" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cKA" = ( +/obj/machinery/atmospherics/components/binary/valve, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cKB" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cKC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) +"cKD" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cKE" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port/fore) +"cKF" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cKG" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/wardrobe/yellow, +/turf/open/floor/plasteel, +/area/hallway/primary/central) +"cKH" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/science/mixing) +"cKI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"cKJ" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"cKK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"cKL" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"cKM" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"cKN" = ( +/obj/structure/table/reinforced, +/obj/item/assembly/signaler{ + pixel_x = -4 + }, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler{ + pixel_y = 8 + }, +/obj/item/assembly/signaler{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel/white, +/area/science/mixing) +"cKO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/structure/sign/departments/restroom{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cKP" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/structure/sign/departments/custodian{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cKQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output, +/turf/open/floor/engine/vacuum, +/area/engine/atmos) +"cKR" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"cKS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output, +/turf/open/floor/engine/n2o, +/area/engine/atmos) +"cKT" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"cKU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output, +/turf/open/floor/engine/plasma, +/area/engine/atmos) +"cKV" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"cKW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output, +/turf/open/floor/engine/co2, +/area/engine/atmos) +"cKX" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cKY" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cKZ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/space/basic, +/area/space/nearstation) +"cLa" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/space/basic, +/area/space/nearstation) +"cLb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"cLc" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plating, +/area/engine/atmos) +"cLd" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cLe" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/engine/atmos) +"cLf" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/engine/atmos) +"cLg" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/violet/visible, +/obj/structure/extinguisher_cabinet{ + pixel_y = 29 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cLh" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cLi" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cLj" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/engine/atmos) +"cLk" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "CO2 Outlet Pump" + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/engine/atmos) +"cLl" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cLm" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cLn" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/under/overalls, +/turf/open/floor/plasteel, +/area/storage/primary) +"cLo" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cLp" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cLq" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cLr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/storage/primary) +"cLs" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cLt" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + dir = 1 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"cLu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{ + dir = 1 + }, +/turf/open/floor/engine/n2, +/area/engine/atmos) +"cLv" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 1 + }, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"cLw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 1 + }, +/turf/open/floor/engine/o2, +/area/engine/atmos) +"cLx" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"cLy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ + dir = 1 + }, +/turf/open/floor/engine/air, +/area/engine/atmos) +"cLz" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/under/overalls, +/turf/open/floor/plasteel, +/area/storage/primary) +"cLA" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/camera{ + c_tag = "Virology - Starboard"; + dir = 8; + pixel_y = -22 + }, +/obj/machinery/power/apc{ + areastring = "/area/medical/virology"; + dir = 4; + name = "Virology Lab APC"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cLB" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/router/air) +"cLC" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/machinery/camera{ + c_tag = "Virology - Port"; + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cLD" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cLE" = ( +/obj/structure/closet/crate/medical, +/turf/open/floor/plasteel, +/area/router/air) +"cLF" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cLG" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cLH" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cLI" = ( +/obj/structure/chair/office/light, +/obj/effect/landmark/start/virologist, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cLJ" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/item/wirecutters, +/turf/open/floor/plasteel, +/area/router/air) +"cLK" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/conveyor{ + id = "airbridge_off" + }, +/turf/open/floor/plating, +/area/router/air) +"cLL" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cLM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cLN" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cLO" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/machinery/conveyor{ + dir = 8; + id = "airbridge_off" + }, +/turf/open/floor/plating, +/area/router/air) +"cLP" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/item/storage/box/syringes, +/obj/item/hand_labeler, +/obj/item/radio/headset/headset_med, +/obj/structure/sign/warning/biohazard{ + pixel_x = 32 + }, +/obj/item/radio/intercom{ + broadcasting = 1; + frequency = 1485; + listening = 0; + name = "Station Intercom (Medical)"; + pixel_y = -30 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cLQ" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/conveyor{ + dir = 8; + id = "airbridge_off" + }, +/obj/machinery/door/poddoor{ + name = "Airbridge Router" + }, +/turf/open/floor/plating, +/area/router/air) +"cLR" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/mass_driver{ + dir = 8; + id = "workshop_in"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/engine/workshop) +"cLS" = ( +/obj/machinery/light, +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"cLT" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/medical/virology) +"cLU" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 1; + frequency = 1441; + id = "inc_in" + }, +/turf/open/floor/plating/airless, +/area/medical/virology) +"cLV" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cLW" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cLX" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"cLY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cLZ" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"cMa" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cMb" = ( +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cMc" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMd" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "N2 to Airmix" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMe" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMf" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"cMg" = ( +/obj/machinery/atmospherics/components/trinary/mixer/airmix{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMh" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMi" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cMk" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMl" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMm" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMn" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "N2 to Pure" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMo" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMp" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"cMq" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMr" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMs" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMt" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cMu" = ( +/obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/maintenance/disposal/incinerator) +"cMv" = ( +/obj/machinery/button/door/incinerator_vent_atmos_main{ + pixel_x = -24; + pixel_y = 8 + }, +/obj/machinery/button/door/incinerator_vent_atmos_aux{ + pixel_x = -40; + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMw" = ( +/obj/machinery/atmospherics/components/binary/valve/digital{ + name = "Waste Release" + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMx" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMy" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Nitrogen Outlet" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMz" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Atmospherics - Starboard Aft"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMA" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMB" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "O2 to Airmix" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMC" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "O2 to Pure" + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cMD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner, +/area/engine/atmos) +"cME" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/white/corner, +/area/engine/atmos) +"cMF" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Air to Pure" + }, +/turf/open/floor/plasteel/white/corner, +/area/engine/atmos) +"cMG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) +"cMH" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cMI" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cMJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cMK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/tcommsat/computer) +"cML" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"cMM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"cMN" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"cMO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"cMP" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/engine/atmos) +"cMQ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cMR" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) +"cMS" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/space/basic, +/area/space/nearstation) +"cMT" = ( +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"cMU" = ( +/obj/structure/window/reinforced/spawner/north, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/conveyor{ + dir = 8; + id = "workshop_off" + }, +/turf/open/floor/plating, +/area/engine/workshop) +"cMV" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "workshop_off" + }, +/turf/open/floor/plating, +/area/engine/workshop) +"cMW" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/vending/tool, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cMX" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/item/multitool{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/multitool{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/multitool, +/obj/item/multitool, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cMY" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/table, +/obj/machinery/camera{ + c_tag = "Engineering - Workshop"; + dir = 1 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cMZ" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cNa" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/chair, +/obj/effect/landmark/start/station_engineer, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cNb" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/chair, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cNc" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/table, +/obj/item/storage/toolbox/electrical, +/obj/item/stack/cable_coil/red, +/obj/item/stack/cable_coil/red, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cNd" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/closet/crate/engineering, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cNe" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom{ + name = "Station Intercom (Common)"; + pixel_y = -29 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cNf" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cNg" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/vending/assist, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cNh" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/public/glass{ + name = "Airbridge Router" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/router/air) +"cNi" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/router/air) +"cNj" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/router/air) +"cNk" = ( +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/router/air) +"cNl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/router/air) +"cNm" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "airbridge_off" + }, +/turf/open/floor/plating, +/area/router/air) +"cNn" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "airbridge_off" + }, +/turf/open/floor/plating, +/area/router/air) +"cNo" = ( +/turf/closed/wall/rust, +/area/engine/workshop) +"cNp" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southleft{ + name = "Workshop Desk"; + req_access_txt = "11" + }, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cNq" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southright{ + name = "Workshop Desk"; + req_access_txt = "11" + }, +/obj/item/folder/yellow, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cNr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plating, +/area/engine/workshop) +"cNs" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/turf/closed/wall, +/area/engine/workshop) +"cNt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/engine/workshop) +"cNu" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Workshop"; + req_access_txt = "11" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/workshop) +"cNv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/turf/closed/wall, +/area/engine/workshop) +"cNw" = ( +/turf/closed/wall/r_wall, +/area/router/air) +"cNx" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"cNy" = ( +/turf/closed/wall/r_wall, +/area/quartermaster/miningdock/airless) +"cNz" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/quartermaster/miningdock/airless) +"cNA" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/office) +"cNB" = ( +/turf/open/floor/plating, +/area/quartermaster/miningdock/airless) +"cNC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/freezer, +/area/crew_quarters/toilet/restrooms) +"cND" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/quartermaster/miningoffice) +"cNE" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock/airless) +"cNF" = ( +/obj/item/shovel, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock/airless) +"cNG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock/airless) +"cNH" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock/airless) +"cNI" = ( +/turf/open/floor/plating/airless, +/area/router/aux) +"cNJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/aft) +"cNK" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/engine/teg_hot) +"cNL" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/engine/teg_cold) +"cNM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/circuitboard/machine, +/obj/item/circuitboard/machine, +/obj/item/circuitboard/machine, +/obj/item/circuitboard/machine, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/wallframe/camera, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock/airless) +"cNN" = ( +/turf/open/floor/plasteel, +/area/quartermaster/miningdock/airless) +"cNO" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock/airless) +"cNP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/frame/computer{ + dir = 8 + }, +/turf/open/floor/plating, +/area/quartermaster/miningdock/airless) +"cNQ" = ( +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES" + }, +/turf/closed/wall/r_wall, +/area/router/aux) +"cNR" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock/airless) +"cNS" = ( +/obj/machinery/power/apc{ + name = "Mining Dock APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock/airless) +"cNT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock/airless) +"cNU" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/plasteel/fifty, +/turf/open/floor/plating, +/area/quartermaster/miningdock/airless) +"cNV" = ( +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/science/robotics/lab) +"cNW" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/camera{ + c_tag = "Supply - Mining Exterior"; + dir = 4 + }, +/turf/open/space/basic, +/area/quartermaster/miningdock/airless/no_grav) +"cNX" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/quartermaster/miningdock/airless/no_grav) +"cNY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external/glass{ + name = "Refinery"; + req_access_txt = "48" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock/airless) +"cNZ" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Refinery"; + req_access_txt = "48" + }, +/turf/open/floor/plasteel, +/area/quartermaster/miningdock/airless) +"cOa" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cOb" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/quartermaster/miningdock/airless/no_grav) +"cOc" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/camera{ + c_tag = "Supply - Refinery Exterior"; + pixel_x = 22 + }, +/turf/open/space/basic, +/area/quartermaster/miningdock/airless/no_grav) +"cOd" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/carpet{ + icon_state = "carpetsymbol" + }, +/area/medical/medbay/lobby) +"cOe" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) +"cOf" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/quartermaster/miningdock/airless/no_grav) +"cOg" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space/basic, +/area/quartermaster/miningdock/airless/no_grav) +"cOh" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/quartermaster/miningdock/airless/no_grav) +"cOi" = ( +/obj/machinery/conveyor_switch{ + id = "MiningConveyer" + }, +/turf/open/floor/plating/airless, +/area/quartermaster/miningdock/airless/no_grav) +"cOj" = ( +/turf/open/floor/plating/airless, +/area/quartermaster/miningdock/airless/no_grav) +"cOk" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/closet/toolcloset, +/turf/open/floor/plating/airless, +/area/quartermaster/miningdock/airless/no_grav) +"cOl" = ( +/turf/closed/wall/r_wall, +/area/quartermaster/miningdock/airless/no_grav) +"cOm" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "MiningConveyer" + }, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/quartermaster/miningdock/airless/no_grav) +"cOn" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/quartermaster/miningdock/airless/no_grav) +"cOo" = ( +/obj/structure/table, +/turf/open/floor/plating/airless, +/area/quartermaster/miningdock/airless/no_grav) +"cOp" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/quartermaster/miningdock/airless/no_grav) +"cOq" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"cOr" = ( +/obj/machinery/light/small, +/turf/open/floor/plating/airless, +/area/quartermaster/miningdock/airless/no_grav) +"cOs" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/plating/airless, +/area/quartermaster/miningdock/airless/no_grav) +"cOt" = ( +/obj/structure/closet/crate, +/obj/item/stack/rods/fifty, +/turf/open/floor/plating/airless, +/area/quartermaster/miningdock/airless/no_grav) +"cOu" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/turf/open/floor/plating/airless, +/area/quartermaster/miningdock/airless/no_grav) +"cOv" = ( +/obj/item/storage/toolbox/emergency, +/obj/structure/table, +/turf/open/floor/plating/airless, +/area/quartermaster/miningdock/airless/no_grav) +"cOw" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hallway/secondary/exit) +"cOx" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/router/medsci"; + dir = 1; + name = "MedSci Router APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/router/medsci) +"cOy" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/router/medsci) +"cOz" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/router/medsci) +"cOA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/router/medsci) +"cOB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/router/medsci) +"cOC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/light_switch{ + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/router/medsci) +"cOD" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/aft) +"cOE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/router/medsci) +"cOF" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, +/area/router/medsci) +"cOG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/router/medsci) +"cOH" = ( +/obj/machinery/computer/cargo/request{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/router/medsci) +"cOI" = ( +/turf/closed/wall/r_wall, +/area/router/medsci) +"cOJ" = ( +/obj/machinery/conveyor{ + id = "medsci_off" + }, +/turf/open/floor/plating, +/area/router/medsci) +"cOK" = ( +/obj/structure/table/reinforced, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/obj/item/destTagger, +/obj/machinery/light, +/obj/machinery/button/massdriver{ + id = "medsci_out"; + pixel_x = -8; + pixel_y = 8 + }, +/obj/machinery/requests_console{ + department = "MedSci Router"; + name = "MedSci Router RC"; + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/router/medsci) +"cOL" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "medsci_off" + }, +/turf/open/floor/plating, +/area/router/medsci) +"cOM" = ( +/turf/closed/wall/r_wall, +/area/janitor/aux) +"cON" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock{ + name = "Auxiliary Custodial Closet"; + req_access_txt = "12" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/janitor/aux) +"cOO" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/janitor/aux) +"cOP" = ( +/obj/machinery/mass_driver{ + id = "medsci_out"; + name = "Router Driver" + }, +/turf/open/floor/plating, +/area/router/medsci) +"cOQ" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/janitor/aux"; + dir = 1; + name = "Auxiliary Custodial Closet APC"; + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/janitor/aux) +"cOR" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/janitor/aux) +"cOS" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/machinery/light_switch{ + pixel_y = 24 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/storage/box/lights/mixed, +/obj/item/light/tube, +/obj/item/radio/off, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/janitor/aux) +"cOT" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + name = "MedSci Router" + }, +/turf/open/floor/plating, +/area/router/medsci) +"cOU" = ( +/obj/structure/plasticflaps, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + name = "MedSci Router" + }, +/obj/machinery/conveyor{ + dir = 1; + id = "medsci_off" + }, +/turf/open/floor/plating, +/area/router/medsci) +"cOV" = ( +/obj/structure/closet/crate, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/item/storage/box/mousetraps, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel, +/area/janitor/aux) +"cOW" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/janitor/aux) +"cOX" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/modular_computer/laptop/preset/civilian, +/turf/open/floor/plasteel, +/area/janitor/aux) +"cOY" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/janitor/aux) +"cOZ" = ( +/obj/structure/closet/secure_closet/personal, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "Custodial Closet - Auxiliary"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/janitor/aux) +"cPa" = ( +/obj/structure/mopbucket, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -26 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/janitor/aux) +"cPb" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/janitor/aux) +"cPc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/white, +/area/medical/virology) +"cPd" = ( +/obj/machinery/conveyor{ + id = "sq_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPe" = ( +/obj/machinery/mass_driver{ + dir = 1; + id = "sq_out"; + name = "Router Driver" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPf" = ( +/obj/machinery/conveyor/auto, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPg" = ( +/obj/machinery/mass_driver{ + dir = 1; + id = "medsci_in"; + name = "Router Driver" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPh" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "sq_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPi" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "viro_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPj" = ( +/obj/machinery/conveyor{ + dir = 9; + id = "viro_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPk" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "viro_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPl" = ( +/obj/machinery/mass_driver{ + dir = 8; + id = "viro_in"; + name = "Router Driver" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPm" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "sq_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPn" = ( +/obj/machinery/conveyor{ + dir = 10; + id = "sq_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPo" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "viro_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPp" = ( +/obj/machinery/mass_driver{ + dir = 4; + id = "viro_out"; + name = "Router Driver" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPq" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "sq_off" + }, +/turf/open/floor/plating/airless, +/area/router/aux) +"cPr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/hydroponics/lobby) +"cPs" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/bridge) +"cPt" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel/dark, +/area/security/checkpoint/customs) +"cPu" = ( +/obj/machinery/atmospherics/pipe/manifold4w/cyan/hidden, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plasteel, +/area/engine/break_room) +"cPv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/department/science{ + name = "Research Maintenance" + }) +"cPw" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/structure/sign/poster/contraband/kss13{ + pixel_y = -32 + }, +/turf/open/floor/plating, +/area/maintenance/department/science{ + name = "Research Maintenance" + }) +"cPx" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/sign/poster/official/medical_green_cross{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"cPy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/lusty_xenomorph{ + pixel_y = 32 + }, +/turf/open/floor/plating, +/area/maintenance/aft) +"cVq" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"cVO" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"dpO" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"dVR" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eCy" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eIh" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "N2O Outlet Pump" + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/engine/atmos) +"eKM" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -30 + }, +/obj/machinery/atmospherics/pipe/manifold/supplymain/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eTZ" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"eUF" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) +"fgS" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Plasma Outlet Pump" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fkx" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"frb" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space/basic, +/area/space/nearstation) +"fti" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"fui" = ( +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space) +"fuE" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) +"fuR" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 30 + }, +/turf/open/floor/plasteel, +/area/science/mixing) +"fIw" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"guK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space/basic, +/area/space) +"gDY" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Fuel Pipe to Incinerator" + }, +/obj/machinery/light, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"gGG" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"hcR" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/bridge) +"hiV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"hlo" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hlV" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/space/nearstation) +"hDz" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hKC" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hMZ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Pure to Port" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"hXk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/engine/engineering{ + name = "Engine Room" + }) +"ifC" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/manifold/orange/visible, +/turf/open/space/basic, +/area/space/nearstation) +"iAW" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"iQY" = ( +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jiZ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"jml" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + layer = 2.4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jon" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"jyu" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/open/space/basic, +/area/space/nearstation) +"jMO" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/turf/closed/wall/r_wall, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"jXo" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"kxw" = ( +/obj/machinery/atmospherics/pipe/simple/violet/visible, +/turf/open/space/basic, +/area/space) +"kxL" = ( +/obj/structure/lattice, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"kzb" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/bridge) +"kOG" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Mix to Engine" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"lcD" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Air to Port" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"lRy" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mkx" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"mqB" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mxW" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) +"mEa" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"mIT" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/turf/open/space/basic, +/area/space/nearstation) +"mKP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/tcommsat/computer) +"mNN" = ( +/obj/machinery/space_heater, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"ntC" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Port to Fuel Pipe" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nvn" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nAF" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Mix to Port" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nBM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"nEX" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"nLV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/green/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"ony" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"opd" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"oMB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden, +/turf/open/floor/plating, +/area/engine/atmos) +"pgu" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/turf/open/space/basic, +/area/space/nearstation) +"prx" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qeq" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) +"qgO" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qlJ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/turf/open/space/basic, +/area/space/nearstation) +"qnM" = ( +/obj/structure/lattice, +/obj/structure/sign/warning{ + name = "\improper KEEP CLEAR: HIGH SPEED DELIVERIES"; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) +"qvB" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"qHL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/engine/atmos) +"qWY" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Waste In" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rbJ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/space/basic, +/area/space/nearstation) +"rdF" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"rTW" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) +"rUl" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"sdp" = ( +/obj/structure/reagent_dispensers/foamtank, +/turf/open/floor/engine, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"sHB" = ( +/obj/machinery/atmospherics/pipe/manifold/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"sRD" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"sVC" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/visible, +/turf/open/space/basic, +/area/space/nearstation) +"tjb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/engine/engineering{ + name = "Engine Room" + }) +"tpQ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/visible, +/turf/open/space/basic, +/area/space/nearstation) +"tuF" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"tyI" = ( +/obj/machinery/atmospherics/pipe/simple/supplymain/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"tXV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + layer = 2.4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"tZj" = ( +/obj/structure/tank_dispenser{ + pixel_x = -1 + }, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"tZC" = ( +/obj/machinery/atmospherics/pipe/manifold4w/orange/visible, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) +"urj" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 8; + icon_state = "intact" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/bridge) +"uwK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/secure_construction{ + name = "Engineering Construction Area" + }) +"uAY" = ( +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/t_scanner, +/turf/open/floor/plasteel, +/area/engine/atmos) +"uVD" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vcb" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"vsO" = ( +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"vxU" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"wbu" = ( +/obj/machinery/atmospherics/pipe/simple/violet/visible, +/turf/closed/wall/r_wall, +/area/engine/atmos) +"wPS" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) +"wWH" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xcO" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/green/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Mix Outlet Pump" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xjk" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xkC" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xoj" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xqa" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/violet/visible{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) +"xCy" = ( +/obj/machinery/atmospherics/components/binary/pump, +/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) +"xKr" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/turf/open/floor/plasteel, +/area/engine/atmos) + +(1,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(2,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(3,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(4,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(5,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(6,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(7,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(8,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(9,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(10,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(11,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(12,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(13,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(14,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(15,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(16,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(17,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(18,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(19,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(20,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(21,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(22,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(23,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaw +aaf +aaw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(24,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaw +bHZ +aaw +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(25,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaw +aaw +acp +bJM +acp +aaw +aaw +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(26,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaf +aaf +acp +bef +crG +crK +acp +aaf +aaf +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(27,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaw +acp +acp +beh +acp +crL +acp +acp +aaw +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(28,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaf +aaf +acp +bFr +crH +crM +acp +aaf +aaf +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(29,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaw +aaw +acp +acp +acp +aaw +aaw +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(30,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaf +aaw +crG +aaw +aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(31,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaw +crH +aaw +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(32,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(33,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(34,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(35,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(36,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(37,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +cpC +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(38,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(39,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(40,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(41,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(42,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(43,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +crB +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(44,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aye +aEf +akI +akI +akI +akI +akI +akI +akI +akI +akI +akI +akI +akI +byi +byi +byi +byi +byi +byi +byi +byi +byi +byi +byi +byi +crE +aye +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(45,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aye +aaU +akI +adp +ajt +chi +arW +aHo +buV +bxu +akI +bxB +bxQ +bxZ +byb +byi +byn +byp +byB +byG +byL +byB +clI +byn +clP +byi +aaa +aye +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(46,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aye +aaa +akI +adZ +chh +cMf +axF +aIM +mKP +crz +cMf +bxE +bxW +bya +byb +byk +byn +byq +byn +byH +clD +byn +clJ +byn +clQ +byi +aaU +aye +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(47,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aye +aaa +akI +ajZ +anx +akJ +aAI +aMx +cnn +bxx +bxD +bxI +bxJ +byb +byb +byb +byn +byx +byn +byn +byn +byn +clK +byn +clR +byi +aaa +aye +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(48,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aye +aaa +akI +ahh +aCf +akI +aAJ +cMp +aYa +bxm +akI +aNC +bxv +byf +byj +byl +byn +byn +byn +byI +clE +byn +byn +byn +crD +byi +aaa +aye +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(49,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aye +aaU +akI +ajn +aLH +akI +aAK +aRC +bxn +akI +bxA +hiV +cvI +byb +byb +byb +byn +byy +byn +byn +byn +byn +clL +byn +clS +byi +aaa +aye +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(50,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aye +cep +akI +akI +akI +akI +aGa +cMK +bxo +akI +akI +bbk +bxX +byg +byb +bym +byn +byz +byn +byJ +clF +byn +clM +byn +clT +byi +aaU +aye +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(51,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aEa +cMK +bxq +bxC +akI +bxK +bxY +byh +byb +byi +byn +byA +byC +byK +clG +byC +clN +byn +clU +byi +aaa +aye +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(52,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aEa +cMK +bxt +akI +akI +akI +akI +akI +byi +byi +byi +byi +byi +byi +byi +byi +byi +byi +byi +byi +crF +aye +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(53,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aEa +aTH +bab +aaa +aaa +aaU +aaa +aaa +aaa +crC +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(54,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aEb +bRD +aaU +aaU +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aye +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(55,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aEa +bRD +aaU +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(56,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +agL +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aEa +bRD +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(57,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aiq +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aEa +bRD +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(58,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aiq +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aEa +bRD +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cpC +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(59,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaK +aaL +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaL +abi +aaa +aaa +aaU +aEa +bRD +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(60,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaU +aEa +bRD +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +cpC +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(61,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaU +aEa +bRD +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(62,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaU +aEb +bRD +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(63,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaU +aEa +bRD +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +cpC +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(64,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaU +aEa +bRD +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bxT +bxT +bFl +bxT +bFl +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bAb +cKw +cli +bxT +bxT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(65,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +cpC +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaU +aEa +bRD +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bxT +bFj +bHS +bSj +bJr +bFj +bxT +bKE +caV +bKM +bxT +bKE +clf +bKM +bxT +bKE +ctL +bKM +bxT +ctQ +cKx +clj +clk +clj +clm +cln +cln +cln +clp +clq +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(66,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaU +aEa +bRD +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +cpC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bxT +bFk +bHS +bIE +bJr +bFk +bxT +bKF +bLd +bKM +bxT +bKF +bLd +bKM +bxT +bKF +bKM +bKM +bxT +bxT +cKy +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +clr +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(67,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaU +aEa +bRD +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bxT +bFl +bFl +bZz +bFl +bFl +bxT +bKF +bKM +bKM +bxT +bKF +bKM +bKM +bxT +bKF +bKM +bKM +bxT +bOs +cKz +bOG +bOP +bxT +bOW +bOZ +bPc +bPe +bxT +cls +aaU +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(68,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaK +aaM +abi +aaa +aaa +aaU +aEa +bRD +aaU +aaU +aaa +aaU +aGn +aGn +aGn +aGn +aGn +aGn +aGn +aGn +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bbv +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bxT +bFm +bHT +bFt +bJs +bJV +bxT +bKG +bLe +bFl +bxT +bKG +bLe +bFl +bxT +bKG +bLe +bFl +bxT +cvz +cKA +bOH +bFl +bxT +bKM +bKM +bKM +bKM +bxT +cls +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(69,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bOc +aaU +aaU +aaU +aaU +bOc +aaU +aaU +aaU +aaU +bOc +aaU +aaU +aaU +aaU +aEa +bRD +aaU +aaU +aGn +aGn +aGn +aIA +aJe +aLE +aLy +aMQ +aNF +aGn +aGn +aGn +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bbv +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bxT +cnb +bHU +bOF +bJt +bJW +bxT +cbo +bLf +cjZ +bxT +cbo +bLf +cjZ +bxT +cbo +bLf +cjZ +bxT +ctT +cKB +bOI +bOQ +bOT +bKM +bKM +bKM +bPf +bxT +cls +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(70,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bOf +ciA +ciA +ciA +ciA +cnG +cnH +aaL +cnI +ciA +cnJ +abh +abh +abh +abh +aEb +bRD +aaU +aaU +aGn +aHD +aIg +aHF +aJn +aHF +aHF +aJn +aHF +aPp +aPT +aGn +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +bxT +bFo +bHV +bYz +cbi +cbp +cbA +cbH +cjP +cjP +ckg +cjP +cjP +cjP +ckg +cjP +ckY +cjP +cjP +ctR +cKC +bOJ +bFl +bKM +bKM +bKM +bKM +bPg +bxT +cls +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(71,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +abx +aoH +abx +aaU +aaU +aaU +aaU +aaU +aaU +aEa +bRD +aaU +aGn +aGn +aHE +aHF +aHF +aIE +aIE +aIE +aIE +csD +aHF +aPU +aGq +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaU +aaU +bcy +cnU +cnU +cnU +bZW +aaU +aaU +aaU +cbb +cbb +cbb +cbb +cbb +cbb +aaa +aaa +aaa +aaU +aaa +aaa +bxT +cdD +bHW +bIG +csl +bzy +bKp +bKJ +bLh +bLh +bLh +bLh +bMh +bLh +bLh +bLh +ckZ +bLh +cbF +cnl +cla +bOK +bOR +bKM +bKM +bPa +bKM +cun +bxT +cls +aaU +aaU +aaU +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(72,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aju +aoP +aqM +aaU +aaU +aaa +aaa +aaa +aGq +aDn +aLK +aGq +aGq +aKH +aHF +aHF +aIE +aJu +aKA +aZT +aMX +aIE +aHF +aPV +aQW +aSJ +aSJ +aQW +aSJ +aQW +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bcw +aUZ +bcw +aaU +bcy +bdc +byc +bdc +bcy +bYG +bYG +bYG +cbb +cbg +chT +cpD +cGH +cbb +aaa +aaa +aaa +aaU +aaa +bAb +bxT +bFq +bHY +bIH +cGA +bJX +bKq +bKK +bLi +bLi +bLF +bLi +bMi +bLi +bLF +bLi +bLi +bLi +cvV +ckS +cla +bOL +bFl +bKM +bKM +bKM +bKM +bPi +bxT +cls +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(73,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +abx +aqw +aoW +aqw +aqw +aaU +aaa +aaa +aaa +aGq +aEe +aUz +bDP +aGq +aGL +aHF +aHF +aIH +aJz +aKE +aLI +aMX +aIE +aHF +aPW +aQW +cDv +cjQ +cDB +cDD +aQW +aQW +aSJ +aSJ +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +bcw +bde +bcw +cmT +bcy +bfp +cwY +bOD +bcy +bwK +bAz +bAN +cGN +cbg +chV +crn +cGI +cGN +aaU +aaU +aaU +aaU +aaU +bAf +bxT +crN +crO +bII +cGB +bFw +bxT +cjG +bLj +ckN +bxT +cjG +bLj +ckN +bxT +cjG +bLj +ckN +bxT +bOy +cla +bOM +bOS +bOU +bKM +bKM +bKM +bPj +bxT +cls +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(74,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +abx +akg +apS +arr +abx +aaU +aaa +aaa +aaa +aGq +aXj +aZq +bDQ +hcR +aGM +aHF +aHF +aII +aJu +aKG +aRe +aXS +bbb +aHF +aHF +aQW +baP +aTo +cjQ +cDE +aVP +cpt +aWw +aSJ +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bcw +bee +bcw +crI +bcy +bfo +blG +bfo +bcy +bwM +bAz +bAN +bKH +cbh +clc +csR +cGJ +cGO +cGU +cGZ +cbb +bxT +bxT +bAg +bBJ +bFs +bIa +bIJ +cGC +bXO +bxT +bFl +bLk +bKG +bxT +bFl +bLk +bKG +bxT +bFl +bLk +bKG +bxT +ctU +ckX +bON +bFl +bxT +bKM +bKM +bKM +bKM +bxT +cls +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(75,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aiN +akj +anV +asl +abx +aaU +aaU +aaU +aaU +aGq +aFE +bdz +bDR +aKF +aLm +aMi +aMi +aQh +aQN +aRa +aRl +aXT +bbc +bbD +bik +cDt +cDw +cDy +cps +cDF +bRb +bRc +aWx +aSJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bcy +bdf +bdf +crJ +blT +bqJ +bBN +bKI +bOr +bnl +bdc +bfn +cbb +cbn +cmK +cnO +cGK +cbb +cbb +cbb +cbb +bJZ +cby +bMx +bxT +bFt +bIb +csY +cGD +bZD +bxT +bKM +bKM +bKF +bxT +bKM +bKM +bKF +bxT +bKM +bKM +bKF +bxT +bOA +clb +bOG +bOP +bxT +bOX +bPb +bPd +bPk +bxT +cls +aaU +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(76,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aiN +akz +aDO +asH +awm +axc +awm +ayJ +aqw +aGq +aJL +aUR +bEc +kzb +aGW +aHI +aIL +aKv +aGn +aKK +aLQ +aGn +bbd +bbG +bit +cDu +cDx +cDz +cDC +cDG +aVR +bBj +aWy +aSJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bcy +bdt +ctj +bUF +bOv +bfo +blI +bfo +bWS +bfo +bAF +bfo +bcy +cbu +cnz +cGF +cGL +cGP +cGV +cHa +cbb +bxV +cOq +cGv +cGw +cGy +cGy +cGy +cGE +bKb +bxT +bKM +bKM +bKF +bxT +bKM +bLd +bKF +bxT +bKM +cnD +bKF +bxT +cue +cvX +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +clr +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(77,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aiN +akB +aDT +atv +awo +atv +axp +atv +azy +aGq +aJM +urj +cbX +aGq +aGX +aHM +aHM +aIP +aJB +aHM +aHM +aNg +aSW +aHM +biF +aQW +aTr +cDA +bEN +bjw +aQW +aQW +aSJ +aSJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bcy +bec +bek +blH +bnm +bwN +bJY +bLE +bOE +cKH +cKI +cbP +bcy +cbC +cnO +cnO +cnO +cGQ +cGW +cGV +cbb +bKa +cGq +bMy +bxT +bzy +bzy +bIK +bJx +bKc +bxT +cta +caZ +bLy +bxT +bKM +cmQ +bLy +bxT +bKM +ctM +bLy +bxT +ctS +cud +clj +cll +clj +clm +clo +clo +clo +clp +clt +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(78,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +bfq +aaa +aaa +aaU +aiN +alu +aDT +aGy +awu +auL +awu +auL +aAc +aGq +aJX +bdE +cen +aGq +cvK +aHM +cnp +aIQ +aJG +aKL +bPt +aNi +aSW +aHM +bju +aQW +aSJ +aSJ +aQW +aSJ +aQW +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bcy +bed +boJ +fuR +bzX +bAl +boL +bAG +cnT +boQ +cKJ +bga +bcy +chR +cnV +cGG +cGM +cGP +cGV +cGV +cbb +bxT +cGr +bxT +bxT +bFl +bFl +bFl +bFl +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +bxT +cvG +cvY +bxT +bxT +bxT +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(79,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +agW +ahf +ain +aaa +ain +alt +agW +aaa +aqw +abx +aCd +aDV +aEp +aEs +aIo +aEs +aNZ +atv +aGq +aGq +bdJ +ceo +aGq +aKY +aHM +aHM +aHM +aHM +aHM +aHM +aHM +aSW +aHM +bjJ +aGq +aaU +aaa +aaU +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +bcy +bcy +bcy +bcy +bcy +bgC +bdf +boR +bDL +boR +cKJ +bAP +bcy +bWl +bZW +bcy +cbb +cbb +cbb +cbb +cbb +bRh +bTO +bVv +bTR +aaU +aaU +aaU +aaU +cav +cav +cav +cav +cav +cav +cav +aaU +aaU +aaa +aaa +aaa +aaU +cbB +ctY +cvA +cbB +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(80,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +agW +ahk +ain +aaU +ain +ahk +agW +aaU +abx +aiO +amq +avW +awd +awK +axf +awK +aOK +aAi +ceC +aAR +aEm +aGz +aGs +aOp +aOZ +aPu +aOZ +aOZ +aOZ +aSa +aSa +bbe +bnG +bkA +aGq +aaU +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUo +bbF +bbN +bim +bem +bgD +bmE +bpM +bFp +bvj +cKK +bAU +bRi +bSl +bRi +bcy +aEF +bko +bko +bko +bTr +aVF +cGt +aVF +bTR +cav +cav +cav +cav +cav +cav +cbe +cbl +cbq +cav +cav +cav +aaU +aaa +aaa +aaa +aaU +cbB +cKr +cub +cbB +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(81,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +agW +ahl +ain +ain +ain +alv +agW +agW +agW +aiP +anV +auL +awr +awM +asL +axu +aOL +asL +asL +asL +aFj +aFj +aFj +bmc +aHP +aHP +aIT +aJK +aKP +aSi +aYh +csr +aNR +blf +aNR +aTt +aTt +aTt +aaa +bdg +bdg +bdg +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bdg +bdg +bdg +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUo +bbL +bbN +bim +beq +bhy +bnj +bpR +bJw +bLc +cKL +bAV +bRj +bZf +bZY +bcy +aSj +bko +csT +bko +bTs +aVF +cGs +aVF +cav +cav +cHj +cqS +cav +cav +ccL +caX +caX +caX +ctb +cav +cav +cav +aaa +aaa +aaa +aaU +cbB +cKr +cuf +cbB +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(82,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +agW +aho +ais +akl +akO +aho +alW +amX +agW +aiO +aob +bUA +awk +ajU +asL +axv +aOW +aAn +aAS +aCc +aFj +aFX +aGt +bnW +cjW +aFj +aFj +aGq +bdQ +aSB +aGq +aNR +aNR +bly +bFy +aTJ +aUB +aTt +aaa +bdg +beN +bgx +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bdg +bEC +bgx +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bZW +bcy +bcy +bcy +bcy +biK +bdf +bpR +bJT +bLl +cKM +bQX +bvy +bZg +caa +bcy +aTE +aTE +aTE +aTE +bTG +aVF +cGs +aVF +caw +caA +cHk +caP +caT +caX +caX +cbf +caX +cbr +caX +cbx +cav +cav +aaa +aaa +aaa +aaU +cbB +cKr +cub +cbB +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +cpC +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(83,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahg +ahg +ahg +ahg +ahg +ahp +aiE +akq +akT +aAd +atq +atH +anU +anU +asL +asL +azi +asL +anU +axz +aPj +ayM +cCP +aCg +aFm +aGK +cCW +brG +aGu +aMh +aFm +aOr +aKS +aSW +cDs +aNR +aPs +blA +bqh +buG +bIW +aTt +aaa +bdg +beR +beJ +bdg +bdg +bdg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bdg +bdg +bdg +beJ +beR +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bdc +bdc +bdc +bei +beI +biT +bmE +bpR +bwD +bLx +cKN +bWt +bvy +bZj +cac +bcy +aTX +aVF +aVF +aVF +aVF +aVF +cHg +bTP +caw +caB +cHl +caP +caT +caY +caX +caX +cbm +cbs +caX +ctI +cav +cav +aaa +aaa +aaa +aaU +cbB +cKr +cub +cbB +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(84,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahg +akp +alw +afH +ahg +ahq +aiG +akr +alj +ari +amg +amX +anU +aCr +aKd +aLJ +azj +aph +asL +axA +aPk +aMp +aOn +aCi +aFj +aGb +cCX +bGn +aHW +baK +aFj +aSs +bWe +cPs +bdS +aNR +aPt +aYR +csE +bvJ +aUF +aTt +aaa +bdg +beJ +beJ +aXk +bjg +aXl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +baZ +bjg +bhS +beJ +beJ +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +bcy +bcy +bgW +bgW +bgW +bgW +bnk +bqI +bHF +bDM +bOu +bWu +bRk +bZB +cad +bcy +aVF +cGR +cGX +cHb +cHc +cHe +cHh +bTQ +caw +caC +cHk +caP +caT +coG +caX +cHx +cHD +cHJ +caX +cbz +cav +cav +aaa +aaa +aaa +aaU +cbB +cKs +cug +cbB +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(85,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaU +ahg +aks +akY +alF +ahg +aps +agW +agW +agW +asF +ain +ain +anU +aEw +asX +aNj +aNJ +aph +asL +axB +aPn +aAv +aOO +aCl +aFj +ciC +aGv +bLp +bEV +aIr +aFj +aOs +aIP +aTf +aYy +bbf +bsf +bnI +aRo +bBt +biq +aTt +aaa +bdg +beJ +beJ +bdg +bdg +bdg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bdg +bdg +bdg +beJ +beJ +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +bgW +bin +bjs +bgW +bgW +bmb +bgW +bgW +bOv +bWS +bcy +cvH +bcy +bcy +bSJ +cGS +cGY +buC +cHd +cHf +cHi +buC +cax +bWd +cHm +cbv +caU +cba +cnC +cHy +cHE +cbt +cpe +cav +cav +cav +aaa +aaa +aaU +cbB +cbE +cKt +cuh +cbE +cbB +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(86,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anU +anU +acc +anU +ahg +akt +atI +amm +ame +akL +akD +amh +aBA +arq +awJ +awJ +anU +aHb +asY +aNG +aNV +aBb +anU +abS +aPv +abS +aPD +abS +aFj +aFj +aLa +cjR +aFj +aFj +aFj +aGn +bfA +aTu +aGn +aNR +aNR +aNR +aRw +bCe +aNR +aNR +aaa +bdg +beJ +beJ +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bdg +coQ +beJ +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bgW +cfg +bjt +bep +bVe +bVp +csf +bgW +jyu +bXg +bXS +bYb +cae +bcy +bfr +cGT +bJz +bTo +cag +cbc +caI +bTo +cax +caE +cHn +csk +cav +cav +cav +cHz +cHF +caX +cav +cav +cav +aaU +aaU +aaU +cbB +cbB +cnj +cKu +cui +clh +cbB +cbB +aaU +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(87,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anU +aaN +aaS +auE +ahy +aku +aly +aoq +aoR +aoV +aoY +apu +aeD +arT +aaS +aNM +anU +aHN +atj +ayf +azn +aBe +bzx +axC +aPY +aAz +aOh +aCG +bpX +aGo +aAz +cjS +anU +aMY +aNK +aNL +aPo +aTD +aNL +aNK +aVj +aNR +bao +bDk +aNR +aaU +aaa +bdg +beJ +bbI +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bdg +cmd +beJ +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bgX +bAw +biA +biA +biA +bmd +csI +bgW +bOw +bcy +bRm +bYj +bRq +bcy +big +cce +bJA +bTq +big +big +bTN +big +cax +cpg +cHo +cbw +bXd +cav +cav +cHA +cHG +cav +cav +cbE +cbE +cbE +cbE +cbE +cbE +cle +csW +cKv +cuj +cuq +cus +cbE +aaU +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(88,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aah +aaz +byX +byX +byX +byX +byX +aaz +acO +anU +aeb +apc +auI +ahy +aky +amI +aod +amB +ajy +akF +awG +axW +asj +awR +axo +anU +aIl +anU +anU +anU +aBf +anU +aTp +aQb +aaS +aQl +agu +aSk +aUg +blY +cjT +aLk +aNd +aNL +aNL +aPq +aUC +aNL +aNL +aVj +aNR +aNR +bEm +aNR +aaU +aaa +bdg +beJ +beJ +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bdg +beJ +beJ +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bgX +biB +biA +cDS +cDU +cDW +cDY +bgW +bOx +bcy +bcw +bYs +bcw +bcy +bYr +cgV +cGi +cGl +cGo +cGp +cGu +cGp +cGx +cGz +cHp +cHr +cGz +cHu +cHw +cHB +cHH +cHK +cHM +ckP +ckT +ckT +ckT +ckV +cHK +clg +ctc +cua +cvW +cur +clh +cbB +aaU +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(89,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aan +aaA +aaA +aaA +aaA +aaA +aaA +aaA +ada +anU +anU +apQ +auK +ahg +akA +amQ +ama +ahg +abS +abS +awZ +aEy +ayS +abS +abS +anU +aIV +anU +ayj +anU +aBj +anU +axN +aQb +aaS +bpo +aAX +aED +aVw +aBF +aKx +aLL +aNf +aNN +aNL +aPq +aUC +aNL +aNL +aVl +aYT +baz +bFH +aYT +aaU +aaa +bdg +beJ +beJ +bdg +bdg +bdg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bdg +bdg +bdg +beJ +beJ +bdg +aaU +aaa +aaa +aaa +aaa +aaa +bdg +bdg +bGI +bGI +bGI +bGI +aaa +aaa +aaa +aaa +aaa +aaU +bgX +csF +csN +biA +biA +csL +cDZ +bgX +bPl +bXx +bXT +bYu +bYA +bYA +bZG +cmV +cGj +cGm +bYv +bYv +cio +cct +caz +bOO +cHq +cHs +cHt +cHv +caG +cHC +cHI +cHL +cHN +ckQ +ckQ +ckU +ckQ +ckW +cHL +csX +ctP +cuk +cul +cur +clh +cbB +aaU +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(90,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaU +aaU +aas +aaA +aaC +abn +abq +abG +ack +aaA +adb +anU +aaR +aqa +amZ +adO +acN +amZ +acN +aqY +ajz +alM +axK +axX +azk +awY +awY +azl +aJw +anU +anU +anU +aLw +abS +axT +aQb +aaS +aAY +avj +aSN +aVI +aBF +aKy +anU +aNk +aNL +aNL +aPq +aUC +aNL +aTO +aTP +aYT +baA +bFI +aYT +aYT +bdg +bdg +beJ +beJ +aXk +bjg +aXl +cut +aaa +aaa +aaa +aaa +aaa +aaa +baZ +bjg +bhS +beJ +beJ +bGI +bXP +aaa +aaa +aaa +aaa +aaa +ceE +bjg +ceF +beJ +beJ +bGI +aaa +aaa +aaa +aaa +aaa +aaU +bgW +biG +cve +bky +biA +biA +cDZ +bgX +bWT +bXh +bYa +bYw +bYL +bZE +bZE +csP +cGk +cGn +cct +bYo +ckk +bYF +bBP +bFu +bIc +bBQ +bBQ +bFG +cuY +bCg +bCg +cbB +cbB +cbB +cbB +cbB +cbB +cbB +cbE +ctW +cbD +ctZ +ctZ +cld +cus +cbE +aaU +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(91,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +cpC +ckl +aaa +aaa +aaa +aaa +aaa +aas +aaA +adB +aaF +aaJ +abm +acd +acl +acD +aaG +aeh +aqf +auS +agu +ajx +ana +agu +agu +agu +agu +aqf +asV +aCt +agE +atU +aAV +auV +aGP +bls +aKO +aLx +ayR +ayC +aQE +aMZ +aAZ +aCL +abS +aVO +aKh +anU +anU +abS +abS +aNL +aPz +aUG +aNL +aNL +aVu +aYT +baC +cPt +bcs +aYT +bdj +beF +beJ +beJ +bdg +bdg +bdg +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bdg +bdg +bdg +beJ +beJ +bGI +bXV +aaa +aaa +aaa +aaa +aaa +bdg +bdg +bGI +beJ +cis +bGI +aaa +aaa +aaa +aaa +aaU +aaU +bgW +biI +cvM +bkC +bVN +bmj +cEa +bgW +bWU +bXl +bXy +bWa +bYc +bXU +bXU +bWa +bJF +bKv +bYv +bYp +bYx +cPw +bBQ +bFE +bId +bIL +cpw +bKd +cuZ +bKN +bCg +aaU +aaU +aaU +aaU +aaU +aaU +aaU +cbB +cbB +ctN +clh +clh +ctN +cbB +cbB +aaU +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(92,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aas +aaA +aaH +aic +abv +abO +acu +aaA +acU +adK +aeL +asO +auT +ahE +akQ +ahE +ahE +ahE +ahE +ahE +aqz +atV +aCW +aEC +aEL +aBa +aGG +aHH +aIs +aJy +aKt +aKC +aLn +aQH +aMq +aQm +aSh +aTR +aWS +bpS +anU +aLW +aaS +abS +aLZ +aPB +aUV +aYB +bbg +bcH +bnZ +bqi +bIl +bcJ +bOY +bdr +beJ +beJ +beJ +bdg +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bdg +beJ +ceI +bGI +bXV +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bGI +beJ +bbI +bGI +aaU +aaU +aaU +aaU +aaU +aUk +bgW +bgW +cDj +bgX +bgW +bgW +cEb +bgW +bWV +bXh +bXA +bXU +bpz +aaa +aaU +bXU +bKs +bKv +bYv +bYq +cPv +bYH +bBQ +bDT +bIe +bIM +bIM +bIM +cvt +bJD +bJH +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cbB +cbE +cbB +cbB +cbE +cbB +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(93,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aas +aaA +abl +aaF +aaQ +abA +abA +acC +acZ +adW +asV +aeM +adA +aed +afl +afl +afl +aiK +ajA +ajA +aew +avg +aew +axi +atW +aCE +aDW +anU +anU +anU +aPX +abS +ayI +aQM +aSx +aTF +aUv +aVz +aWe +aTF +aWC +aXi +aXO +aYS +aZM +bbp +bcN +aYJ +aNL +aVJ +aYW +baF +bIr +bcx +cvZ +bdr +beJ +beT +bbI +bdg +aaU +aaa +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaU +bdg +cmd +beT +bGI +bXV +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bGI +beJ +beJ +bGI +aaU +aaU +aaU +aaU +aaU +aTV +aUo +aVW +cDH +bbS +aUk +bVL +cEc +bXr +bWW +bXh +bXB +bXU +bpz +aaa +aaU +bXU +bKs +bKv +bYv +cgr +bYy +crf +bBQ +bFx +bIf +bIM +csZ +bIM +cvQ +bJE +bJH +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(94,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +cpB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aas +aaA +abk +abo +abw +abP +acy +aaA +adb +anU +aeQ +aeM +ani +aew +aeJ +aeJ +aeJ +aew +aeJ +aeJ +aeJ +avF +aeJ +aeJ +aeJ +aew +aCH +aew +aIn +aew +aJV +aew +aew +ayT +aRO +aBI +aDs +bfw +aYo +aKo +anU +aaS +aMP +abS +aOv +aPH +bcQ +aUC +aNL +aVJ +aYX +baD +bIV +bKg +cwa +bdr +beJ +bfd +beJ +bdg +aaU +aaa +aWZ +aWZ +aWZ +aWZ +aWZ +aWZ +aWZ +aaa +aaU +bdg +beJ +bfd +bdg +bXV +aaa +aaa +ceD +aaa +aaa +aaa +aaU +bdg +beJ +coR +bdg +aaa +aaa +aaa +aaa +aaU +aUi +aUp +aWm +cDH +bcB +aTV +bVM +cEd +bWs +bWs +bXh +bXJ +bXU +bpz +aaa +aaU +bXU +bKs +bLG +bYv +bzA +cwb +bYv +bBQ +csV +bIe +bYB +cfU +bIM +cvt +cmS +bJH +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cpB +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(95,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aan +aaA +aaA +aaA +aaA +aaA +aaA +aaA +ada +anU +aeQ +aeM +adD +aew +afn +agI +aid +aew +ajG +alU +aew +awH +aew +axj +ayQ +aew +aDY +aew +aew +aew +aQf +aSX +aew +ayU +aSQ +aAB +aDt +asL +aYr +asL +anU +abS +abS +abS +aNL +aPq +bdx +aYO +aNL +aVL +aYT +baG +bbM +bcz +aYT +bdy +beM +bfd +beJ +bdg +aaU +aaU +aWZ +aXC +aYg +aYz +aZf +aZr +aWZ +aaU +aaU +bdg +beJ +bfd +bdg +bXV +aaa +bdg +buB +bdg +aaa +aaa +aaU +bdg +beJ +beJ +bdg +aaa +aaa +aaa +aaa +aaU +aUi +aUu +cnu +cDI +cDT +aTV +bQZ +cEd +csO +cEu +bXh +bXK +bWa +bYc +bXU +bXU +bWa +bKt +bLU +bRM +bRO +bRR +bRT +bRV +bSd +bTC +bYI +cgf +bKe +czH +bKO +bJH +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(96,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aay +aaz +bPo +bPo +bPo +bPo +bPo +aaz +aeg +anU +aeV +aeM +adE +aew +afG +agP +agP +aiL +ajT +anu +ask +ayF +aCX +aEE +aEE +aES +aGT +aHT +aJt +aJN +aQg +akv +aeJ +ayU +aSQ +aTg +aDu +asL +aYq +aXu +aZU +aZV +beb +aNO +aNL +aPq +bex +aNL +aTO +bhh +aYT +aYT +bbP +aYT +aYT +bdg +bdg +bJy +caW +bdg +aaU +aaa +aWZ +aXD +aYk +aYk +aYk +aZs +aWZ +aaa +aaU +bdg +caW +bJy +bdg +bXV +aaU +bdg +bjg +bdg +aaU +aaU +aaU +bdg +beJ +beJ +bdg +aaa +aaa +aaa +aaa +aaU +aUi +aUu +aWm +cDH +bOt +aTV +bIg +cEe +cEs +cEv +cEx +cEA +cEJ +cEM +cEJ +cEJ +cEJ +bKu +bQv +bRN +cEs +bRS +cEN +cEO +cEP +bTD +bYJ +cka +cmR +cFV +bKP +bJH +aaU +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(97,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +anU +agv +aeN +abS +aew +afJ +agP +agP +ajB +akv +anw +aym +azN +aDe +aDe +aDe +aET +aHg +aHS +aLf +aJO +aQi +alU +aeJ +ayW +aSQ +aAB +aDB +asL +aYq +aXu +aZV +aZV +beb +aNS +aOw +aPq +bcQ +aNL +aTY +aWk +aXR +azd +aTS +aRW +bcR +bdN +beJ +bfd +beJ +bdg +bdg +aaU +aWZ +aXE +aYk +aYA +aYk +beg +aWZ +aaU +bdg +bdg +beJ +bfd +bGI +bYd +bGI +bGI +bzb +bGI +bdg +bdg +bdg +bGI +beJ +bbK +bGI +aaU +aaU +aaU +aaU +aaU +aTV +aVh +biP +cDH +bcC +aTV +bIn +bIN +bIO +bIQ +bIR +bIQ +bIQ +bIR +bIQ +bIS +bIQ +bIQ +bQP +cfZ +bWX +bWX +ckf +bCf +bFB +bIh +bYK +bJC +bKf +cFW +bKQ +bCg +aaU +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(98,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +abp +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +abp +aaU +aaU +aaU +aaU +aaU +aaU +aaU +akE +akE +ans +apg +aqE +aew +afY +agP +agP +aiL +akv +anw +akv +akv +akv +akv +aAh +aew +aEW +alU +akv +aKa +aKw +alU +aeJ +azc +aSQ +aAB +aDL +asL +aYq +aXu +aZW +aZV +beb +beb +beb +aPM +bcQ +aNL +aNL +aWl +aXR +aRI +aTS +aRW +bcR +bcR +cmd +bfd +bgz +bgx +bdg +bdg +aWZ +aXF +aYk +aYk +aYk +aZt +aWZ +bdg +bdg +beJ +beJ +bfd +blc +bYP +coS +aXc +aXc +aXc +aXc +aXc +aXc +aXc +aXc +aXc +bGI +aaU +aaU +aaU +aaU +aaU +aTV +aTV +aTV +bAc +brw +aTV +bVM +cEf +bWx +aab +bXo +bXQ +bXZ +bYi +bYk +bWa +bWa +bXU +bXU +bXU +bXU +bXU +bWa +bCg +bFC +bIi +caj +bJD +bCg +cFX +bJH +bCg +cOI +cOI +cOI +aaU +aaU +aaU +aaU +abp +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(99,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aak +aak +aak +aak +aak +aaa +aaa +aaa +aaa +aaa +aak +aak +aak +aaa +aaa +aaa +aaa +aaa +aaa +akN +alq +alq +apn +aqF +aeJ +agD +ahr +aiH +aew +akw +aoB +akw +aqD +aew +ayh +aew +aew +aUy +alU +akv +aym +aQg +akv +aew +azf +bpW +aAP +aEc +aFT +aZO +aXu +aZX +bcr +beO +beO +beb +cDp +beL +aRm +aNL +aXw +aXR +aRW +aTS +aRW +bcR +bdU +beJ +bfd +beJ +bii +coP +bdg +aWZ +aVG +bnu +bnV +aYl +aZu +aWZ +bdg +byV +bzB +bgA +bWf +bXm +bZQ +ccN +ccN +cei +ccN +ccN +ccN +ccN +ccN +coZ +blO +bGI +aaa +aaa +aaa +aaa +aaU +aTV +aVk +bfu +bAn +bFz +cDV +cDX +cEg +bWx +bSE +ckR +bSE +bSG +bTc +bSE +bSE +aaU +aaU +aaU +aaU +aaU +aaU +aaU +bCg +clv +bIi +caH +bJE +bCg +cOx +cOA +cOE +cOJ +cOP +cOT +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cPf +cPf +cPf +cPf +cPo +abp +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(100,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aar +abM +abR +abR +abM +aZG +aaU +aaU +aaU +aaU +aaU +aTd +aaU +aaU +aaU +aaU +aaU +aaU +aTx +akE +akE +anC +app +aqH +aew +aew +aew +aew +aew +aew +aew +aew +aew +aew +axk +asz +aew +aGV +akv +aLv +alU +aQA +aSZ +aew +abS +bEL +aCb +asL +asL +bfm +aXA +aZY +bct +beP +beP +bjv +cDq +bhz +ccQ +ccS +aXB +aYY +aSc +aTT +aUH +bcX +bel +cpl +bfi +bgA +bLH +bji +bli +aWZ +aWZ +aWZ +boe +aWZ +aWZ +aWZ +beJ +bSW +bUy +bJG +aZy +aZy +aZy +aZy +beJ +bfd +bjg +aYI +bai +baV +cKF +bbn +cKG +bGI +aaa +aaa +aaa +aaa +aaU +aTV +aVq +bfx +bCd +cpP +aTV +bVR +cEh +bWy +buf +bJu +bSQ +bSY +bTd +bTj +bSE +aaU +aaa +aaa +aaa +aaa +aaa +aaU +bCg +bZT +bIi +cbK +ckb +coH +cOy +cOB +cOF +cOK +cOI +cOI +aZG +aaU +aaU +aaU +aTd +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aTx +abM +abR +abM +abM +cPo +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(101,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aar +abM +aca +acG +acG +aaa +aaa +aaa +aaa +aaa +aWj +aWj +aWj +aaa +aaa +aaa +aaa +aaa +aaa +akP +als +anW +apr +aqJ +arR +ajC +agH +akC +amb +amk +auH +ape +civ +avG +axl +aCu +aew +aFG +aIz +aew +aPZ +aQY +aTa +aew +aDi +bGY +aDX +aIq +atc +aYq +aXu +baa +bcL +beS +bgm +bjC +cDr +bhW +ccR +aNL +aXG +aXR +awO +aUc +cjq +bcR +bcR +bcR +bcR +bgE +bLJ +bLV +bfi +blE +bBW +bgA +aww +awL +aGC +aON +aGC +bTu +bUC +bVQ +aZy +bTp +bRe +baw +bZA +cfQ +bZA +bZA +bqB +bZS +bZS +bZS +bZS +bZS +aaa +aaa +aaa +aaa +aaU +aUi +aVq +bzz +cuQ +cts +aTV +bVM +cEf +bWz +bSE +bSK +bSR +bSL +bTe +bTM +bSE +aaU +aaU +aaU +aaU +aaU +aaU +aaU +bCg +cum +bIj +ccd +cvS +bCg +cOz +cOC +cOG +cOL +cOL +cOU +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cPg +cPi +cPj +abR +cPo +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(102,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aar +abM +ace +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +abp +aWj +aaU +aaU +aaU +aaU +aaU +aaU +akE +akE +akE +akE +akE +akE +ahm +ako +alx +bfa +aaj +bNM +civ +cix +avG +axm +aCC +aCK +aFZ +aew +aew +awQ +ayO +aBx +aoF +aHR +ccM +aDX +aJU +atc +aYq +aXu +baj +bcP +bfg +bgy +bjD +aNO +bcQ +aNL +aUD +aXR +aXR +cjy +aTS +aQL +aUX +aZE +aVS +bcR +bgF +bcR +bLX +bLY +bLY +aVd +bLY +bQg +bQw +bLY +bLY +bLY +bTy +aZy +bVU +aZy +bJm +bbm +baw +aXe +chU +cjw +cjw +cke +clu +cmP +clw +bZZ +bZH +aaU +aaU +aaU +aaU +aaU +aTV +aYf +beo +bCd +cwe +aTV +bVS +cEi +cEt +cEw +cEy +cEB +cEK +bSS +bTl +bSE +brU +brU +brU +brU +cdZ +brU +brU +bCg +bFG +bIk +ccB +bJH +bCg +cGb +bRI +cOH +bRI +bRI +bRI +bCh +aaU +aaU +aaU +cpz +cpz +cpz +cpz +cpz +cpz +cpz +aaa +aaa +aaa +aaa +cPk +abR +cPo +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(103,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aar +abR +ace +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aWj +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUo +aaU +acL +afs +aiT +aco +alG +cjo +aaj +aGc +bNT +ciy +cnF +bGU +bHl +aoF +asW +atz +avJ +awS +azB +aBC +atc +aLX +aJv +aJZ +aLY +aNA +bkF +aXu +aXu +bcU +aXu +aXu +bjD +aQn +bcQ +aNL +aUE +aXR +aQG +aRW +bsb +aUI +aUY +bew +aUY +aWb +aRW +bcR +cpc +bjj +bjj +bmh +bnv +bou +bQx +bqj +bjj +bjj +bjj +aZy +bVV +bWg +aWg +bbo +baw +bZC +cjv +aYc +bZF +bau +bZU +cnW +bbq +bcp +bZH +aaU +aaU +aaU +aaU +aaU +aTV +bHH +aWp +cDJ +coI +aTV +bVT +cEj +bWA +bSG +bSL +bSS +bUJ +bSS +bSL +bSC +brZ +btf +btU +cec +brU +ced +cej +bCh +bRL +bIs +ccC +bRZ +cFn +cGc +bMj +bMj +bMj +cfb +cFP +bCh +aaa +aaa +aaU +cpz +bNr +bQU +cuv +cLC +cCQ +cwT +aaa +aaa +aaa +aaa +cPk +abM +cPp +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(104,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aar +abM +acf +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +bUo +aaU +acL +afF +aip +beV +aco +amd +aaj +cit +ciw +ciz +ciB +bGV +bHm +aLu +ata +ata +ata +awT +aAk +cjN +atc +aDF +aRU +aDX +bAX +atc +aVQ +aWa +aWa +cCV +aYt +aBY +aOB +aNO +bcQ +aNL +aUL +aXR +aQK +aRW +bzT +cnq +aVe +aRH +aVe +aWc +aRW +bcR +bcR +bcR +bcR +bmi +bnx +bpn +bQx +bqA +aZy +aZy +aZy +aZy +bav +bWh +csG +bQA +aZy +aXf +bZJ +bZF +cpu +bax +bZV +bZX +ccY +cab +bZH +aaa +aaa +aaa +aaa +aaU +aUk +aUk +aUi +cDK +aUk +aUk +bWa +cEk +bWa +bSE +bSM +bST +bSZ +bTf +bTm +bSC +bsa +buA +bJK +ceg +bqT +cee +cef +coc +bTz +bTE +ccD +bTE +bTE +cGd +cvT +cFA +ckh +cFK +cFQ +bCh +aaa +aaa +aaU +cpz +bNv +cAC +cCk +cCv +cCS +cpz +aaa +aaa +aaa +aaa +aaa +aRv +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(105,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +acM +aWj +aWj +aaa +aaa +aaa +adj +adj +adj +adj +adj +adj +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaj +aaj +aaj +aaj +aaj +aaj +aaj +aaj +aaj +avi +aal +aal +aal +bGW +aco +apH +aoF +auP +bGf +bHh +cqd +cBb +cBt +aMN +cCO +aQw +coU +atc +aVV +aSg +aXM +aYq +aYt +baB +aOB +aQo +bix +bcS +aQo +aXR +aQL +cjq +aQL +aQL +cjq +aQL +aQL +aTS +aRW +bcR +bjG +blk +blF +bmn +bnz +bpw +bQx +bll +aZz +cpm +bad +bah +baR +bWi +aWh +cmN +aZy +aXg +bZK +bZF +csH +bau +bKw +bZH +bZH +bZH +bZH +aaa +aaa +aaa +aaa +aaU +aaa +aUk +aWr +cDL +biU +aUk +bWr +cEl +bWB +bSE +bSN +bSU +bTa +bTg +bTn +bSC +bRH +bth +cOd +ceg +brl +cef +cnZ +bRI +bTA +bVO +cfN +ckd +ckd +cGe +bMj +bLI +ckj +cFL +cnX +bCh +aaa +aaa +cpz +cpz +cpz +cAD +cCl +cCw +cpz +cpz +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(106,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +adj +aeC +afv +adF +agM +adj +aaa +aaU +aaU +aaj +aaj +aaj +aaj +aaj +aaj +aau +ahn +ajH +ajY +alB +amj +ape +aal +ciu +aal +ape +amj +aCM +bHd +afX +atc +auW +avL +axw +cqH +bhN +aDb +aDP +aFk +aGh +csn +atc +aVZ +aXL +cqN +aYq +aYt +baH +bcR +aPr +biC +beJ +bft +bdg +aaa +aaa +aaa +aaa +aaa +aaa +aQL +aTS +aRW +bcR +bjX +cpn +blJ +bmZ +bnA +bpy +bQI +bll +aZA +aZI +bae +chP +baS +bWj +baS +bbr +aZy +bKR +bZF +bZF +cjx +bay +baX +bZH +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aUk +aXm +cDM +blU +aUk +bWc +bWo +bWC +bSE +bYV +cEC +cEL +bTh +bSC +bSC +bRJ +bth +bTB +cek +cKj +cKk +cKl +cKm +cKn +cKo +bRX +crW +bIq +cqZ +bMj +bLW +cFF +cFM +cnY +bCh +aaa +aaa +cpz +cvU +ctO +cAE +bNs +cLF +bNA +cpz +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(107,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +adj +aeR +afx +aga +afI +adj +aaa +aaa +aaU +aaj +aaE +acn +acn +acn +acn +afw +acn +ajN +amS +amS +aoX +amS +amS +aDE +amS +amS +aKR +apY +bRa +cjO +atc +aVr +avM +avL +csw +aBK +aCa +aCa +aAQ +aHZ +atc +atc +ayd +ayd +ayd +chJ +aOo +baM +bcR +aPr +biC +beJ +bft +bdg +aaU +aaU +aaU +aaU +aaU +aaU +aQL +aTS +aRW +bcR +bku +bll +blK +bmn +bnD +bpC +bQx +bll +aZC +aZN +bCS +bak +bAI +bWk +cdE +bbs +aZy +cry +crA +aYG +cCJ +baE +bZS +bZS +bGI +aaa +aaa +aaa +aaa +aaa +aaa +bUq +bUq +aUk +aXs +cDN +bmG +aUk +bWb +cEm +bWL +bSE +bSP +cED +bTb +bTi +bSC +brk +bsp +bth +bth +ceg +brU +bSX +cel +bCh +cEQ +bXn +bRY +bSa +bSc +bSg +bMj +cFB +cFG +cFN +cvw +bRI +aaU +aaU +cpz +bMN +bMJ +cAG +bMJ +cLG +bNB +cpz +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(108,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +add +adC +adC +adC +aeS +adj +adj +agN +ahL +ahL +ahL +ahL +afD +afQ +age +age +agy +age +age +afC +akK +akG +alC +aal +ape +aal +aDU +aal +bGH +aal +aOH +aal +arb +atc +atc +atc +atc +csA +aCa +aCa +aId +aIx +aJx +aVc +ayd +cfR +aLl +ayd +cDk +ayd +ayd +bGI +aPw +bmC +aYP +bft +bcR +bdg +bdg +bdg +bdg +bdg +bdg +bcR +bgN +bgF +bcR +bcR +bcR +bcR +bna +bnP +bpF +bQY +bqK +aZy +aZy +aZy +bak +baw +bWw +aZy +aZy +aZy +bZH +bZH +bZA +cCK +bZH +bZS +bSB +bTT +bTW +bTW +bTW +bTW +bTW +bTW +bUr +bUu +aUk +aXt +cDK +aXt +bwm +bWa +cEn +bWR +bSH +bSG +cEE +bSG +bSC +bSC +bhx +bqv +bti +btY +cod +cdZ +bss +cem +bRI +cER +cEU +bCh +bCh +bCh +bSh +bMj +cFC +cFH +bCh +bCh +cpz +bMl +bMl +cpz +bMO +bMJ +cAH +cvy +cLH +bNC +ctD +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(109,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +adf +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +adM +aaj +aaI +ami +akX +akX +akX +akX +aqV +arS +akX +akX +akX +akX +avN +awy +avN +avN +avN +aBk +avN +aDa +aDS +aDS +aDS +aBy +cwf +cBc +cBu +cBE +cKD +cBo +cBZ +cCb +cCe +cCe +cCe +cDl +cCn +cCp +cCq +aRb +bjU +aYQ +bgc +bgd +bgd +bgG +bgd +bgd +bgd +bgd +boo +bTw +bgE +coO +bkx +blo +blo +bnc +bnR +bpG +bQx +bqY +brM +bwr +bkx +brI +blo +bWE +blo +bGr +bIZ +bVI +blo +aYH +cCL +aYH +bGI +bTt +bGI +but +but +but +but +but +but +bUq +bUv +bUq +baL +cDO +bbl +bbA +bbW +cEo +bbl +coB +bbl +cEF +buD +bCX +bqc +brm +bst +bst +bst +csj +bst +bst +coV +bCh +cES +cEV +cFj +cFj +cFo +cFr +cFt +cFD +cFI +cFO +cFR +ctD +bMo +cob +cpz +bMP +bMJ +cAK +bMJ +cLI +bND +cDe +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(110,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +adf +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aiM +aaj +aaI +aco +akX +alA +aoe +apA +aqX +arU +apA +atN +auv +akX +avO +awz +ayp +azb +avN +aBl +aBP +aDc +aBQ +aEJ +aFM +azP +aFf +aIu +aKJ +aKJ +cKE +aKJ +aKJ +aKJ +aKJ +aKJ +aKJ +aXK +aYw +aYV +baJ +bcf +bke +bmq +bmL +bgu +beJ +beJ +beJ +beJ +beJ +beJ +beJ +biS +bjR +cCG +bUw +cCG +cCG +bpx +cCG +cCH +bRf +cCG +cCH +cCG +bUw +bVJ +cCG +bWF +cCG +cfz +cCG +cCG +cCH +cCG +cCM +cCG +cCN +coM +cpr +cpx +cpx +cpx +cpx +cpx +cpx +crV +crY +crZ +csJ +cDP +bUI +bUI +bVB +cEp +bUI +cqe +cqg +cEG +bdv +bDd +bqe +brq +bst +bst +bVP +cKh +btj +btj +bAo +cuW +cET +cEW +bQk +bQk +bQk +bQu +cFu +cFE +cFJ +bQL +cFS +cFT +cFU +bNg +bNh +bNj +bNw +cPc +cCm +cCx +cDb +cDf +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(111,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +adf +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aiM +aam +aaI +acw +akX +alE +aoi +apD +arf +arZ +atp +atT +aux +akX +avR +awC +ayq +azp +avN +aBo +aBQ +aDd +aBQ +aEK +aFM +azQ +aFi +cBe +aEv +aEv +aEv +aEv +aEv +aEv +aEv +aEv +aEv +aMH +aMS +aNI +aOS +aQD +bkP +aZJ +beJ +beJ +beJ +beJ +beJ +btG +beJ +beJ +beJ +biW +bqd +bcf +bwU +bcf +bcf +bCi +bcf +bCp +bcf +bcf +bCs +bcf +bwU +bCD +bcf +bcf +bcf +bGt +bJB +blB +cCI +blB +blB +bRg +bWH +bWM +bZr +cde +cmF +crk +cmF +cmF +cwU +cAT +cBA +cCT +cCU +cCY +cCU +cCU +cCZ +cDQ +cEq +cID +bZm +cEH +bdv +bDd +cyy +cyA +bst +cyE +cyK +buJ +bst +bst +bAq +cuX +bFJ +cEX +cqW +bWD +cqb +bKy +cFv +bJI +bLB +bLL +bMa +ctF +coJ +cpb +cpz +bMR +bNx +cBD +cLA +cCy +cLP +cLT +cLU +aaa +aaa +aaa +aaa +aTd +aaa +abp +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(112,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +adf +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +aiM +aap +abd +abT +akX +alO +aok +akX +arh +asb +akX +atY +auB +akX +avS +awC +ayr +azA +aAf +aBr +aBR +aDf +aDZ +aEN +aFM +aAe +aFC +cAW +aHk +aIi +aHQ +aHQ +aHQ +aJT +aHQ +aHQ +aHQ +aHQ +aOz +aHt +bGI +bGI +bkU +aZJ +bGI +bGI +bGI +crr +bjj +bjj +bjj +bjj +bIP +bje +bqn +bjj +bkx +blC +blO +bnr +blO +blO +blO +baf +bRs +bxk +bkx +bjj +bFA +bjj +bIP +bGA +bGE +bLg +bMG +bPR +bGE +bRy +bSA +bTw +cwW +bTY +bTY +bTY +bTY +bTY +bTY +cwX +cqY +bUE +baO +cDR +bFc +bFc +cDa +cEr +bPQ +cIE +cEz +cEI +bXi +bXq +caQ +bXC +bXL +cyF +bst +buK +bst +bst +bKi +bPP +bQa +cEY +bvn +bJg +bQl +bQl +cFw +bpa +bQn +bQC +cmZ +cpz +cvs +cwg +cpz +bMl +bNy +cBG +cpz +cCz +cpz +cpz +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(113,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +adf +aad +aad +aad +aad +aad +aad +aad +aad +aad +aad +adM +aaq +aaI +acF +akX +akX +akX +akX +arj +ase +akX +akX +akX +akX +avX +awF +ayt +azC +avN +aBt +aBZ +aDd +aEd +aEO +aFM +aAj +aIk +cBf +cBv +aIj +aHs +aHs +aHs +aHs +aHs +aHs +aHs +aHt +aNp +aHt +aPb +bGI +blm +baq +bGI +aPb +bGI +bgL +bGI +bdg +bdg +bdg +bGI +bjh +bqF +bGI +aWB +bsl +cjJ +aXH +aYm +aYm +aYm +aZv +bRP +aWB +aWB +bDN +cpv +bDN +bGI +bdg +bdg +bGI +bGI +bGI +bGI +bRB +bGI +bTt +bGI +but +but +but +but +but +but +bUq +bUv +bUq +baQ +cuR +cvl +cvl +cKe +cNh +cNw +cIF +ccp +bqo +buF +bDm +bqe +ceY +bst +cyG +bst +buM +buM +buM +buS +buS +bFX +cEZ +bAs +ayY +baT +baT +cFx +bpb +bqO +bru +coY +cpz +bMr +cwh +cwl +bNm +bNz +cBT +cpz +cCD +cDc +cpz +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(114,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +adh +adC +adC +adC +afb +adj +adj +agO +adj +adj +adj +adM +aat +abf +acF +acI +aem +aex +aht +aRz +brB +ank +arJ +amo +acF +avN +avN +avN +avN +avN +aBw +aBZ +aDo +aDo +aEP +aFM +aAj +aFC +cBg +aIj +aHs +aHs +aaU +aaU +aaU +aaU +aaU +aaU +aHY +aHY +aHY +aHY +aHY +bln +bmy +aNT +aNT +aNT +aNT +aNT +aaa +aaa +aaU +aSt +bjk +bqG +aWB +aWB +aWK +aXo +aXI +aYn +aYD +aZj +aZw +bRQ +aZQ +aWB +aWB +bGI +bGI +bGI +aaU +aaU +aaU +bGI +aSV +bGI +bRW +bgY +cgC +bTT +bTZ +bTZ +bTZ +bTZ +bTZ +bTZ +bUr +bUz +bUq +bbh +cuR +cvm +cDn +cKf +cNi +cvl +cIF +ccp +bqr +bbh +bbh +bqm +bqm +cdW +cyG +cdY +buM +byd +czf +csv +buM +bFJ +cFa +cFk +cFl +cFp +cFp +cFy +bbt +bqP +brO +bQB +ctD +bMs +bMA +cwm +bMT +bNG +cCa +cCo +cLL +cDd +cwg +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(115,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +adj +adY +afc +afy +agb +adF +ahM +ahM +aie +adM +bHX +abY +acF +acV +adi +aeT +afq +aij +cdI +adi +adi +anl +acF +aVD +axP +aCA +bGM +avN +avN +aCh +aDp +aDp +avN +aDS +aAU +aFC +cBh +aHs +aHs +aaU +aaU +aaa +aaa +aaa +aaa +aaU +aHY +aTL +aVA +aWi +aWo +blr +aXq +bbj +bda +bol +aSl +aNT +aaa +aaa +aaU +aSt +bjk +bqG +aWB +aWG +aWM +aXr +aXJ +aXr +aXr +aXr +aXr +bRU +aZR +aWI +aWB +aaa +aaa +aaa +aaa +aaa +aaa +bGI +bGI +aRy +bSk +aRy +bGI +bGI +aaa +aaa +aaa +aaa +aaa +aaa +bUq +bUq +bUq +aaa +cuR +cvn +cDo +cLB +cNj +cvl +cIF +ccp +cpH +bbh +bpA +bXz +bqm +cmU +cyG +cdX +buS +csu +czg +czt +czz +czD +cFb +bEl +bJn +bQm +bQm +bop +bpe +bQz +bXD +cna +cvo +cvO +cwi +cwn +cwu +cAB +cCc +cCr +cLD +cuv +cCr +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(116,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aar +aaU +aWj +aaU +aaU +aaU +adj +adY +aeR +adF +adF +adF +adF +adF +aig +adM +aiZ +ajL +acF +adg +adi +aeU +aeU +agr +alD +anj +ajJ +ajJ +auM +ayD +ayD +ayD +aIe +aLg +aEo +bnJ +bHo +bHq +bHf +arw +aBg +aGg +cBh +aHs +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaU +aHY +aVg +aQF +bba +bcK +bmg +bmD +bmR +bnK +bnL +aSm +aNT +aaa +aaa +aaU +aSt +bjk +bqG +aWB +aWI +aWO +bPz +bQf +aYs +aYE +aYs +aYs +bSV +aZS +aWG +aWB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bqX +bSr +bqX +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +cuR +cvp +cFY +cLE +cNk +cuR +cIF +ccp +cJe +bbh +bpB +bPw +bqm +bsG +cyG +bsG +buS +bAJ +czh +czu +czA +czE +cFc +bEl +aJD +bbx +bbZ +boq +bpg +bpg +bAy +bQJ +cpz +bMu +bMC +cwo +bMU +bNc +cCg +cCr +cLD +cuv +cCr +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(117,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +abp +aar +aTd +aWj +abp +aaa +aaU +adj +adY +afc +afz +agk +agR +afz +ahR +afz +aiW +ajp +ajR +agj +agq +agq +agq +acH +ags +alK +agq +anR +apf +auQ +azz +azz +azz +azz +azz +aUA +boH +bDZ +bEF +bHx +bHk +aBh +aGx +cBh +aHs +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aHY +aIv +aIv +aJW +aHY +aRQ +aYe +aNT +aUO +aQU +aSn +aNT +aaa +aaa +aaU +aSt +bjk +bqG +aWB +aWI +aWP +aXy +aXN +aXy +cda +aXy +aXy +aXy +aZZ +bag +aWB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bqX +bSs +bqX +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +cuR +cuR +cFZ +cLJ +cNl +cuR +cIG +ccw +csM +cyo +cyt +bPw +bqm +bqm +cyH +bqm +buS +caR +czi +cdm +buS +bFY +cEX +bIU +aJE +bbz +bjx +bot +bot +bjx +bAH +bQQ +cpz +cvs +cwj +cwp +cwT +cpz +cCi +cCr +cLM +cvf +cCr +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(118,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aar +aaU +aWj +aaU +aaU +aaU +adj +adY +aeR +afB +agp +agS +agp +agp +agp +aiX +ajr +ajW +agn +agw +ajJ +ahw +anQ +aUS +ckG +cwk +aBm +aoh +acF +arl +ayX +aDj +bGN +bGR +bHb +bvd +bHq +bHf +bHf +arw +aBi +aGx +cBh +aHs +aaU +aaa +aaa +aEQ +aEQ +aEQ +aEQ +aEQ +aHY +aHY +aHY +aHY +aHY +aTb +aWv +aNT +aNT +aNT +aNT +aNT +aSt +aSt +aSt +aSt +bjk +bqG +aWB +aWB +aWQ +aXz +aXU +aYu +aYF +aZn +aZx +bEs +bac +aWB +aWB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bqX +bSs +bqX +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +cuR +cGa +cuR +cNm +cuR +cIH +cgv +coE +bxM +cyu +cNJ +cyB +cyC +cyI +cyL +buS +buS +buS +buS +buS +bFZ +cEZ +bJa +aKZ +bbB +blv +czK +bph +bqR +bAM +cvx +bMk +bMv +bMD +bMv +bMv +cvs +cCj +cCu +cLN +cLS +cCr +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(119,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +adj +adY +aeR +afI +agt +agV +adF +adF +aih +adM +adm +aeH +acF +adJ +adi +afq +agY +aij +brB +adi +amf +aoc +asJ +asJ +asJ +asJ +asJ +asJ +asJ +bvt +aDv +bHu +bHy +bHB +aAj +aGx +cBh +aHs +aaU +aaa +aaa +aEQ +aFw +aDR +aDM +aLV +aDN +aDN +aDN +aDN +aDg +aUM +bfl +aOa +aPI +aPI +aPI +aPI +aPI +aTn +aPI +aPI +bjp +bqW +aUh +aWB +aWB +aWB +aXV +aYv +aYN +aWB +aWB +aWB +aWB +aWB +aye +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bqX +bSs +bqX +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +cuR +cGf +cLK +cNn +cuR +cIF +cgB +bqr +bbh +ciQ +bpD +bpD +cmB +bpD +cyM +cyB +cyB +cyB +cyB +czB +czF +cFd +bEl +aMm +bbC +blw +blw +blw +blw +bAT +cez +bMl +bMv +bMv +bMw +bMv +cpz +cuc +cpz +cvs +cCl +cCu +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(120,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaU +aaa +adj +adM +adM +afe +afL +adM +adM +ahQ +ahV +aiI +adM +adt +aeO +acF +aek +aes +afr +ahi +ail +ckH +alr +avn +apb +asJ +atB +aBU +aDk +bGO +bGS +asJ +aDz +ark +bHv +aPF +aPF +aJA +aGx +cBh +aHs +aaU +aaa +aaa +aEV +aFy +aGd +aDM +aMg +aIa +aGE +aGE +aGE +aLi +aUT +baI +aOb +aPK +aPK +aPK +aPK +aPK +aVm +btR +aPK +bjH +brc +bkV +aVv +bkR +aWB +aXW +aWB +aZd +aWB +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +bqX +bSs +bqX +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +cuR +cGg +cLO +cuR +cuR +cIF +cgB +bqx +bbh +bPw +bqq +bqq +bqq +bqq +bqq +bqq +bqq +bqq +bqq +bqq +bHC +cFe +cFk +cFm +cFq +cFs +cFz +bqt +blx +bBn +ceA +bMl +bMw +bMv +bNi +bMv +coK +bMv +bNu +bMl +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(121,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaU +adj +adj +adP +aep +aeR +afI +agF +adM +adM +adM +adM +adM +adt +aeO +acF +ale +ale +ale +ale +aru +asf +ale +ale +ale +ale +azL +aCj +aDl +aIh +aLB +aVE +byR +bHr +bHv +aPF +bGp +aAj +aGS +cBh +aHs +aaU +aaa +aaa +aEV +aFz +aGe +aDM +aUK +aGe +alZ +alZ +alZ +alZ +aHU +aHU +alZ +alZ +alZ +aSt +aSt +aSt +bjA +aVv +cho +aWq +bro +bwa +bwY +bwY +bwY +bCl +bCn +aWd +aSt +aaU +bun +bxl +awq +awq +awq +awq +awq +awq +awq +aOe +aQv +aaU +bqX +bSt +bqX +aaU +cgI +cgN +cgN +cgN +cgN +aPg +aPg +cgP +aaU +aaU +aaU +aaU +cuR +cGh +cLO +cuR +cvL +cII +cgB +bqr +bbh +bPw +bqq +brz +bsL +bSe +bJd +bQp +byw +bzG +bAC +bCY +bHD +cFf +bEl +aOF +bbE +coX +bbE +bbE +bqS +bQy +ceB +bMn +bMv +bMv +bML +bMv +bMv +bMv +bML +bMl +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(122,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaU +adj +adF +adF +aeq +afj +afN +adF +adF +adj +aaU +aaU +act +abQ +aeX +abU +ale +alQ +aol +ale +arz +ash +ale +aua +auF +ale +aAL +aCw +aPi +aPi +bGT +asJ +bHj +bHs +bHw +aPF +bGs +aAj +aGx +cBh +aHs +aaU +aaa +aaa +aEQ +aHn +aWt +aWz +aWW +aIc +alZ +alZ +aog +aog +axV +axV +aog +aog +alZ +bvv +aUh +cjM +aVv +aVv +bue +bue +bxf +bBY +bue +bue +bue +aXY +bCo +aWd +cho +aaU +bup +ajO +ajO +ajO +ajO +ajO +ajO +ajO +ajO +ajO +ajO +ajO +aRy +bSO +aRy +bfh +cgJ +bye +cmI +bXa +bfh +bfh +bfh +cgJ +aaU +aaa +aaa +aaa +cuR +cHZ +cLQ +cuR +bdC +cIJ +cgB +bqr +bbh +bPw +bqq +cHW +bsM +btn +buj +bvK +bts +bts +bAD +bCY +bHD +cFf +bJb +bJJ +bKh +bKz +bKS +bLq +bKz +bLM +bKz +bKz +bMw +bMv +bMv +bMv +bMl +bMl +bMl +bMl +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(123,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaU +adj +adF +adX +aeu +afk +afP +agK +adF +adj +aaa +aaU +act +adv +aeO +afW +ale +alT +aom +apN +arA +asn +atr +aud +auG +ale +aAO +asJ +asJ +asJ +asJ +asJ +bHk +bHk +bHk +aPF +aHt +aKc +aGx +cBi +aHt +aDM +aDM +aDM +aEQ +aDM +aDM +aDM +aXa +bdb +alZ +aog +apB +aFc +bfj +axV +axV +apB +aog +alZ +aUh +aUP +bCC +aZb +bue +bvc +bys +bCc +bGZ +bNN +bue +aXZ +aXX +aWd +aZo +aaU +avv +ajO +aGi +axI +axI +axI +aGi +aNo +aPE +beu +ajO +baW +beK +bTX +bWI +bWN +cbj +cdf +cny +bXk +cgL +cvD +cvF +cgJ +aaU +aaa +aaa +aaa +aRv +aaa +aaa +bbh +bdD +cIK +cgB +bqr +bcT +bPw +bqq +ccm +bsM +bto +buj +bwf +byD +bts +bAE +bCY +bHE +cAm +cAt +cAv +cFg +bKz +bKT +bLr +bKT +bLN +bMb +bKz +bMv +bMw +bMv +bMV +bMl +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(124,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaU +adj +adF +adX +aey +adM +adY +agK +adF +adj +aaa +aac +acE +adU +aeO +afW +ale +alV +aon +apO +arC +aso +apO +aon +auJ +ale +aBz +aEU +aGD +aJF +aJF +aJF +aJF +bEr +bEK +bEK +bGu +bHi +aHa +cBj +cBw +cBF +cBF +cBF +cBF +cBF +cCf +aHG +aXb +aVC +alZ +aog +apG +aFN +axV +aLO +axV +aRL +aog +alZ +aUh +aUQ +aVM +aVN +bue +bvg +byE +bCu +bHa +bOB +bue +aYd +aYx +aWd +aZo +aaU +avv +ajO +bCv +axI +bCF +axI +axI +aNr +bHp +bLm +ajO +ajO +aRy +bUi +aRy +bfh +bfh +cdh +bzN +bYT +bYS +cvE +bYS +cgJ +bfh +aaU +aaU +aaU +aaU +aaU +aaU +bbh +bdF +cIL +ciF +bqz +bdu +caO +cov +ceb +bsN +btp +buj +cup +bts +bts +ckp +bqq +bHG +cFf +bJc +bJL +cHO +bKz +bKU +bKT +cIg +cIj +bMc +bKz +bMv +bME +bMv +bMv +bMl +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(125,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaU +adj +adF +adX +aez +afu +afT +agK +adF +adj +aaU +abz +acP +aef +afg +agf +ale +ale +ale +ale +arD +asq +ale +ale +ale +ale +aBH +bGz +ayu +aim +aim +aim +aim +aim +aim +aim +aEh +aEq +aHp +aIJ +aLc +aQS +aQS +aQS +aQS +aQS +aWu +aWA +aXd +bre +alZ +apB +axV +aGp +axV +csC +axV +axV +apB +alZ +aSt +aSt +cho +aSt +bue +bue +byF +bCw +bue +bOC +bue +cho +aSt +ckI +aSt +brs +avv +ajO +axI +avY +bDw +bEZ +bFv +bGB +bIF +bLz +bNe +ajO +bQb +bUj +aTh +bfh +brb +bzN +bzN +bYU +cgM +bYY +bZb +cgJ +bfh +bfh +bfh +bfh +bfh +brs +brs +bcT +bdD +cIM +ciW +bqC +bdu +bXt +bqs +brF +bsP +cnk +csi +cvu +cxf +cxh +ckD +bqq +cPx +cFh +bJe +cea +cHP +bKA +bKV +bLs +czL +cIk +bMd +bKz +bMl +bMl +bMl +bMl +bMl +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(126,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaU +adj +adF +adF +aeA +aeA +aeA +adF +adF +adj +aaa +chH +acS +aen +afi +agg +ahj +ajf +ajf +ajf +aAx +alN +ano +ano +ano +auZ +aBL +bnH +axh +anq +anq +anq +anq +anq +anq +anq +anq +bID +aHu +aGr +aOJ +aOT +aOT +aOT +aOU +aOU +aOT +aXP +aOT +aOT +aOJ +aog +axV +bfj +axV +axV +axV +axV +aog +aSG +aRh +aRq +aRq +aRq +aRq +bvz +byZ +bCy +bvz +bOV +aRq +cjD +bnU +btw +bns +aya +avy +alo +axZ +awn +aIS +awn +aJp +aNz +aHq +bki +bPp +bPU +bQi +bUU +bWJ +bWP +cbV +bzR +cvB +bOz +cwd +bYZ +bZc +cgQ +bUt +bUt +bUt +bUt +bZe +brL +brL +bVW +bVW +cIN +cjV +bdu +bdu +bXu +bqq +brH +bsQ +col +bul +cws +cxg +czM +bBs +bCY +bHI +cFf +bJc +bJN +cHO +bKz +bKW +bLt +cso +cIl +bMe +bKz +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(127,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaU +adj +adj +adF +adF +adF +adF +adF +adj +adj +aaa +abz +acX +agh +agB +aim +aim +aim +aim +aim +aqs +aqu +aim +aim +awc +axx +ayN +aAA +aBM +aCq +aDx +apy +arV +apy +axg +ceu +anq +bID +aHu +aGr +aOT +aPS +aSb +aTi +aUd +aTi +aWs +aYb +ban +bdd +aOJ +aog +ayK +bfk +axV +axV +bfj +axV +apB +aSH +aSt +aSt +aTs +cho +aSt +bue +bzD +bCE +bue +aSt +aSt +aSt +aSt +cpG +aSt +brs +avv +ajO +axI +avY +bDU +bFf +bGg +bGD +bJk +bLC +bPK +bPV +bQT +bVq +cpM +bfh +cbY +cdn +cpf +bYU +cgM +bYY +bRx +cgJ +bfh +bfh +bfh +bfh +bfh +brs +brs +bcT +cIv +cIO +cgB +bTv +bcT +bQE +bqq +bqq +bqq +com +bqq +cws +byD +czP +cxf +czW +cAc +cFi +bMF +bNF +cHQ +bKz +bKT +bLr +bLt +cIm +bMf +bKz +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(128,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaU +adj +adj +adj +adj +adj +adj +adj +aaU +aaa +acb +aft +agz +adt +abB +afE +afE +afE +afE +aFu +aeO +aeY +aeY +aeY +aeY +aBN +awN +awN +anq +anT +anT +anT +anT +anT +anT +cex +bNp +aFC +aFF +aOU +aQt +aSf +aTj +aTv +aTv +aTv +aYi +baU +bdh +aOJ +aog +aog +axV +aHV +aRr +axV +aog +aog +aSH +beG +aaU +aaU +aaU +aaU +aRv +aaU +aaU +aRv +aaU +aaU +aaU +aWj +aSq +aWj +aaU +avv +ajO +aze +azJ +bDW +azJ +aNh +aOI +bKx +bmv +ajO +ajO +aRy +bVC +aRy +bfh +bfh +bBR +cqf +bYX +bYS +cvE +bYS +cgJ +bfh +aaU +aaU +aaU +aaU +aaU +aaU +bbh +cIw +bjm +cgB +bYW +bcT +bQE +bqq +cox +cNV +cpI +csK +cKi +cvR +bzH +bts +bCY +bHJ +bIt +bJf +bJO +cKp +cHS +cHU +cIb +cvv +cIn +bMg +bKz +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(129,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +abz +acP +aef +acS +abC +ahY +ajg +abI +acQ +aHr +aeO +aeY +ahB +aiY +aeY +aCk +aeY +aeY +anq +aof +cpq +asa +aoL +anT +anT +cey +bRF +aFC +aFF +aOU +aQu +aSf +aTv +aTv +aTv +aTv +aYj +ban +bdl +aOJ +alZ +apB +aog +aog +aog +aog +apB +alZ +aSH +aaa +aaa +aaa +aaa +aaa +aWR +aaa +aaa +aWR +aaa +aaa +aaa +aaU +aSq +aaU +aaa +avv +ajO +aGi +axI +aIX +axI +aGi +aPf +aZP +bmH +aYZ +bht +bcY +bVD +beC +cgF +bfh +bBS +cqh +bXk +cvC +cvD +cvF +cgJ +aaU +aaa +aaa +aaa +aWR +aaa +aaa +bbh +cIx +bjm +cgB +bbh +bbh +bQE +bqq +brJ +bsU +crg +bqq +cyN +bqq +bzJ +czv +bqq +bHK +bIu +bJh +byQ +cHR +bKC +bKY +bKY +bKY +cIo +bKz +bKz +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(130,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aai +ade +aev +act +acQ +aiy +ajk +aqR +ats +aLb +aeB +aeY +ams +ahC +akS +aCo +aor +aeY +anI +aoL +anT +asa +bEz +bES +bES +bGv +ccg +aFC +ago +aOT +aQz +aSf +aTw +aTv +aTv +aTv +aYM +bbi +aOT +aOT +aOJ +aOJ +aOJ +bmF +bnT +aRJ +aRJ +aRJ +chm +aaU +aaU +aaU +aaU +aaa +btT +bzE +btZ +btT +aaa +aaa +aaa +aaU +aSq +aaU +aaa +buv +ajO +ajO +ajO +ajO +ajO +ajO +ajO +ajO +aQa +ajO +bmM +bcZ +bVF +bTS +cgG +bfh +bEo +cqm +bZa +bfh +bfh +bfh +cgJ +aaU +aaa +aaa +aaa +ctG +cIh +ctJ +ctG +cIy +bjm +cgB +bbh +bpm +bQE +bqq +brK +bua +btv +bqq +cyO +byN +bzK +czw +bDa +coe +bIv +bJi +bDa +czw +byQ +cHV +cIc +cIc +cIp +bxj +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(131,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +acQ +aiD +ajq +arc +atJ +bmp +bGi +aeY +ahF +apx +akU +aCp +aor +aeY +anL +aoU +anT +anT +anT +anT +anT +cex +bRF +aFC +aFF +aOU +aQB +aSf +aTv +aTv +aUU +aTv +aYj +ban +bdO +bfv +bfv +bfv +bkW +bmJ +bof +aQJ +aQJ +aQJ +aQJ +aQJ +aQJ +aRZ +aaU +aaa +bvB +bzF +bCR +btT +btT +bvB +btT +btT +cjE +aaU +aaa +bux +bxl +azq +aCU +aCU +aCU +aCU +aCU +bbu +aQj +ajO +ajO +bdi +bWm +cjI +cgH +cgN +cgO +cgN +cgN +cgN +aPg +aPg +cgK +aaU +aTx +ctG +ctG +ctG +cIi +cLR +ctG +cIy +bjm +cmn +bWZ +bXj +bXv +bqq +bqq +bqq +bqq +bqq +cyP +byQ +bzS +czw +bDb +bBu +crX +czI +bBu +cKq +cHT +cPy +cId +bLD +coA +bxj +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(132,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +ajw +acQ +acQ +acQ +acQ +acQ +ahD +asr +aeY +ahG +apM +akV +aqv +aor +aeY +anP +aqP +apz +asK +apz +btk +cev +anq +ccq +aFC +aFF +aOU +aQI +aSf +aTv +aTv +aTv +aTv +aZa +bbi +aOT +bfy +bgJ +bjL +blD +bmK +boi +aaU +aaU +aaU +aaU +aaU +aaU +aSq +aaU +aaa +btT +bzM +bCT +bHc +bQt +bUg +cch +ccy +aSq +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +cjH +aaa +aaU +bWv +aaU +aaa +aaU +aZB +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +ctJ +cuS +cvq +cIq +cMU +cvr +cIw +bjm +cgB +bbh +coC +bpO +bpE +bpE +bpE +bpE +bpE +cyQ +byQ +cjr +czx +czC +czG +bIw +czJ +bBu +bKm +byQ +cHX +cKP +cOM +cOM +cOM +cOM +cOM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(133,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ajw +ajw +aki +alg +alY +aoo +ajw +bAt +aeO +aeY +aeY +apZ +aeY +aeY +aeY +aeY +anq +anq +anq +anq +anq +anq +anq +anq +ccz +aHv +aFF +aOT +aQP +aSf +aTv +aTv +aTv +aTv +aZc +bbH +bdP +bdP +bgR +bdP +aOJ +aPN +bes +aaU +aye +aye +bQe +aye +aaU +aSq +aaU +btT +btT +bzP +bCZ +bKl +bQW +bUp +cci +btZ +aSq +rTW +kxw +kxw +tpQ +kxw +tpQ +kxw +kxw +kxw +kxw +kxw +kxw +xqa +aaa +aaU +bWv +aaU +aaa +aaU +aZB +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +ctK +cuT +cuT +cuT +cMV +cNo +cIz +bWO +cIX +bZh +bZh +bZh +bZh +bZh +bsV +bze +bpD +cyR +byQ +crq +csp +bPS +bQc +bQj +bQo +bJP +bKn +byQ +cHY +cyS +cOM +cOQ +cOV +cOZ +cOM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(134,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +cpB +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaU +aaU +apv +apv +crP +ajw +ajX +akk +ali +amn +aop +aqb +bEI +bGj +aff +ahH +aqG +akW +any +aos +apk +atQ +atL +atk +bBd +bFN +atM +bFR +aff +cfe +aIk +aIU +aOX +aQQ +aSf +aTv +aTv +aUW +aTv +aZc +aVf +bdP +bfF +bha +bdP +abp +aPN +bes +aaU +aye +aaU +aaU +aaU +aWj +aSu +aRZ +btT +bwh +bAe +bDD +bKr +bRl +bUL +btT +btT +cjE +opd +aaU +aaU +cdV +cdV +cdV +cdV +cdV +cdV +cdV +cdV +cdV +cgi +cgD +cdV +chy +chN +bWQ +bWQ +cdo +aPg +aPg +cet +bpL +bBO +bBO +bBO +bBO +ctG +ctG +cvr +ctG +ctG +ctG +cIy +bjW +cKO +bZh +bZk +bZn +bZq +bZh +bIC +bpD +cmL +cyS +byQ +byQ +byQ +byQ +byQ +byQ +bKk +byQ +byQ +byQ +cOD +cIe +cON +cOR +cOW +cPa +cOM +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(135,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aYp +cdc +crQ +ajF +akc +akm +alk +amH +aoz +ajw +agA +alP +anA +aot +aqK +avo +aCs +aFo +aot +aot +aot +aot +bCO +ahJ +ahJ +ahJ +ahz +bRF +aEu +aJc +aPa +aQR +aSz +aTz +aTz +aVb +aTz +aZg +aVf +bdW +bfJ +bhc +bdP +abp +aPN +bes +aaU +aye +aaU +aWj +aWj +aWj +aSv +aSu +buk +bwz +bAi +bEe +bKL +bRE +bUY +ccj +aSw +aaW +opd +aaa +aaa +aaa +aye +aaU +ceR +cfa +cfo +cfp +cfC +cdV +cgl +cgR +chr +chz +chX +cdV +cdV +ckJ +cdV +cdV +cdV +bpN +bCa +bSo +bSv +cfl +ctX +cuU +cwr +cIr +cMW +ctG +cIA +cIP +cIY +cJf +cJg +cNC +bZo +bZs +bXN +bJp +bJp +cyT +bPs +bYC +bPN +bPN +bPN +bPN +cAu +cCh +cCh +cCh +cIa +cIf +cOO +cOS +cOX +cPb +cOY +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(136,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +agd +cdc +crR +ajF +akf +akh +ali +amR +ajw +ajw +bGc +aeO +aff +ahS +ajQ +axO +anX +aoC +apl +ahJ +cpd +ahJ +aqG +bED +bET +bET +bGw +chQ +cAV +aJc +aOT +aQX +aSE +aTC +aUe +aVf +aVf +aSE +bcd +bdY +bfM +bhg +bdP +abp +aPN +bey +aaU +aye +aaU +aaU +aaU +aWj +aWj +aWj +btT +bwB +bAm +bEh +bLo +bSz +bVa +btT +aaU +aby +opd +aaa +aaa +aaa +aye +aaU +ceR +cff +cfo +cfA +cfH +cfW +cgo +cgS +chr +chA +chY +ciY +ckt +clY +cnx +cpK +cdV +bBE +bCa +bSp +bSw +cfl +cuu +cuV +cwE +cuV +cMX +ctG +bdG +cIM +coa +cwH +cyq +cyw +cJh +bZh +bsY +btx +bum +cyU +czd +czj +blp +blp +bme +bxj +bxj +bxj +bxj +bxj +bxj +bxj +cOM +cOM +cOY +cOY +cOY +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(137,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aYp +cdc +crR +ajF +akh +akh +alp +amT +ajw +awN +bGc +ahI +aff +ahW +ajQ +ayi +anX +aoC +aqh +ahJ +ahJ +ahJ +aqG +bEE +bFQ +bFS +ahz +aAj +cAW +aJC +aOT +aRc +aOT +aOT +aOT +aOU +aOU +aOT +aOT +bdP +bdP +bhl +bdP +abp +aPN +bes +aaU +bQe +aye +aye +aye +aaU +aWj +bnS +buq +bwC +bAr +bEx +bMz +bSD +bVu +bvB +aaU +aby +opd +aaa +aaa +aaa +aye +aaU +ceR +cfa +cfo +cfB +cfH +cfW +cgo +cgU +chs +chs +chZ +ciZ +cku +cmf +cnK +cnK +cdV +bBO +bUB +bSq +bVf +cfm +cuw +cuV +cuV +cuV +cMY +ctG +bdH +cIM +coi +bZh +bZh +bZh +bZh +bZh +bsZ +bsZ +bsZ +bxj +byU +czk +blp +coy +cdd +aYp +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(138,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aax +aax +aax +aax +aax +apv +crS +ajw +ajw +akx +ajw +anc +ajw +axe +bGc +aeO +ahz +aiw +ajQ +alL +anX +aoC +aqi +ahJ +ahJ +azK +bDo +bFK +bFK +bFT +aff +aAj +cAW +aJQ +aHO +aRB +aIO +aTG +aUj +aVi +aWD +aZh +aTG +aaU +aaU +cuA +cuy +bcc +bcO +bes +aaU +aaa +aaa +aaU +aaa +aaU +aTy +btT +btT +bwL +bwL +bEY +bMB +bSF +bVA +btT +aaU +aby +opd +aaa +aaa +aaa +aye +aaU +ceR +cff +cfp +cfC +cfI +cdV +cgp +chb +cht +cht +cia +cjh +ckw +cmg +cof +cof +cpY +cwq +cwV +cAU +cfh +cos +cuF +cva +cyp +cuV +cMZ +cvr +bdG +cIM +cgB +coF +bcT +aaU +aaa +aaa +aaa +aaa +aaU +bxj +byU +czk +blp +ctH +cdd +csc +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(139,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aar +aTd +aWj +aaU +aaU +aaU +aaU +aaU +aaU +aax +aaX +abs +abs +abu +cqV +csa +acs +adu +adQ +ajw +anf +ajw +awN +bGc +aeO +ahz +aiw +ara +ays +anX +aoC +arm +ahJ +atM +aAl +bDO +bFL +bFL +bFU +ahz +aAj +cAW +aKD +aLT +aSo +aSP +aTI +aUl +aVn +aWL +aWL +bce +aaa +aaa +aaa +aaU +brs +aPR +cux +aaU +aaa +aaa +aaa +aaa +aaU +aWj +btZ +bus +bwQ +bBk +bFa +bMI +bSI +bXp +btT +aaU +abH +aZp +kxL +aZp +ceq +cet +cet +cet +cet +cfr +cfE +cfJ +cdV +cgu +chg +chs +chB +cib +cjs +cky +cmE +cok +cok +cdV +bBO +bPv +cBd +cfi +cfm +cuH +cvb +cvd +cvd +cNa +cNp +ber +cIQ +cgB +bqN +bcT +aaU +aaa +aaa +aaa +aaa +aaU +bxj +byU +czk +blp +cqT +cdd +aYp +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(140,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aax +aaZ +abt +abt +abK +cqV +abN +abL +adQ +adQ +ajw +ajw +ajw +awN +bGc +bGl +ahA +aiQ +ard +alI +anX +aoC +aqh +ahJ +apP +aAl +bFL +cqi +bEU +bFV +bGx +chW +cAX +cBo +aMw +aSp +aTA +aTK +aUm +aVo +aWN +aZk +bcg +aaa +aaa +aaa +aaU +brs +aQp +cux +aaU +aaa +aaa +aaa +aaa +aaU +aWj +bud +buE +bwS +bBv +bFb +bMS +bBv +bXM +bvB +bWq +acY +adz +opd +aaa +aaU +cdt +ceK +ceK +cdV +cft +cfF +cfK +cgb +cgw +chj +chr +chD +cid +cju +ckz +cmG +coT +cpL +cpZ +bBO +cxd +cBd +cfj +cfl +cuI +cuV +cyv +cuV +cNb +cNq +beW +cIM +cgB +bqV +bcT +aaU +aaa +aaa +aaU +aaU +aaU +blp +btK +czl +blp +cqU +bBZ +bme +bme +bme +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(141,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaU +aaU +aax +aba +aax +aax +aax +aax +aax +acR +abL +adQ +aQO +aei +atZ +aFv +bGd +bGm +aff +aiR +arg +amu +amu +api +ahJ +ahJ +ahJ +aAl +bFL +bFL +bFO +bFU +ahz +aCm +aEx +aGJ +aNm +cBK +aJr +aTG +aUn +aVp +aWT +aZl +aTG +aaU +aaU +aaU +aaU +abp +aQq +bes +aaU +aaa +aaa +aaa +aaa +aaU +aTy +btT +btT +bwT +bBB +bGb +bMW +bTF +bXM +btT +btT +btT +cjF +qnM +cdt +cdt +cdt +ceL +ceT +cdV +cfu +cdV +cdV +cdV +cdV +chk +chu +cdV +cdV +cdV +ckA +cmY +cdV +cdV +cdV +bBO +bSm +cBk +cfk +cfl +cuJ +cvc +cyz +cuV +cNc +cNr +byT +cIR +coj +byT +bzY +aaU +aaa +aaa +blp +bme +bme +blp +btL +czm +bzq +bui +clZ +buo +buo +bme +bme +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(142,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aax +aax +aea +adQ +adQ +aer +auc +apv +agJ +amp +aff +aiS +art +amv +akR +apj +atA +atK +aqg +aCO +bFM +bFP +bFM +bFW +aff +azP +azP +aGQ +aNv +cBL +bhR +aTM +aTM +aTG +aTG +aTG +aTG +aaa +aaa +aaa +aaU +abp +aQr +bes +aaU +aaa +aaa +aaa +aaa +aaU +aWj +bnS +buq +bwZ +bBC +bGk +bNf +bBv +bXM +ccn +ccA +ccy +aTl +opd +cdG +cer +cew +ceM +ceV +asU +arB +asw +atb +avl +awW +aMa +aOE +aQc +clz +aMa +aQd +cks +crv +crx +aeI +bBO +bSn +cBl +bSn +cfl +cuK +cuV +cyz +cuV +cNd +cNs +beY +cIM +cgB +btl +bBl +aaU +aaa +aaa +bme +bnY +bpT +bqL +btL +czn +czy +bui +bui +bui +bui +bui +bme +bme +bme +bme +bme +bme +bme +bOn +bme +bOo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(143,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aax +afO +ala +abL +aet +aeK +afU +ahe +aiJ +ahz +ahz +arI +ahz +ahz +aff +aff +aff +aff +aff +ahz +ahz +ahz +aff +aff +aka +aka +aCe +aNB +aDh +aka +aql +aql +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +abp +aQr +beD +cuy +cuy +cuz +aaa +aaa +aaU +aWj +aaU +btT +bxa +bBF +bGy +bNk +bUc +bXM +cco +ccE +btZ +aTl +opd +cdU +ces +ces +ceN +ceW +cJv +mkx +cJw +cJN +asR +awe +awX +azE +azE +aOQ +avC +aQe +ckx +cqP +crl +csQ +cqs +cqG +crt +csx +ctl +cuL +cvd +cAp +cvd +cNe +cNt +beZ +cIS +coz +bty +bBl +aaU +aaU +aaU +bme +bog +bpT +bqM +btL +czm +bui +cOw +bui +bui +bui +bui +bui +bui +bui +bNW +bOa +bOe +bOi +cnd +bOl +bOp +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(144,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adn +ahZ +amP +aea +adQ +ayk +aGZ +aKn +bEG +bEX +bEX +asg +bEX +bEX +aXv +bEM +bEO +bEP +amE +asp +auh +ayG +aNX +aEA +bvi +bvF +bvL +aXn +cBM +bDS +bER +aql +aaa +aaa +aaa +aaa +aaa +aaa +aVs +aVs +aUq +bmO +aUq +aVs +aVs +cuA +cuz +aaa +aaU +aWj +aaU +btT +btT +bBH +btT +bNl +bvB +bXM +btT +btT +btT +cjF +qnM +cdt +cdt +cdt +ceO +ceX +aeI +aQx +asD +asR +asR +avE +axt +axt +axt +axt +avE +aQe +asR +aSK +aSr +aeI +cqt +bwP +cBn +cBH +ctE +cuM +cvg +cBa +cJk +cNf +cNu +bSy +cIT +coD +bub +bIo +aaU +cNK +aaU +bme +bom +bpT +bqU +btL +czo +bPO +bPT +bQd +bQd +bQr +bJo +bNQ +bNQ +bNQ +bNX +bOa +bOe +bOg +bui +cnf +bme +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(145,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aae +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adq +aib +asy +aea +ann +azG +aag +ael +agQ +aje +akM +anz +akM +akM +apq +aqZ +avT +avT +aCN +avT +avT +aAb +avT +aCN +avT +avT +aHl +aNY +cBN +cbZ +bEa +amy +aaa +aaa +aaa +aaa +aaa +aVs +aVs +bjO +bmk +bmU +bok +bpr +aVs +aVs +cuA +cuy +cuz +aWj +aaU +aaa +btT +bBV +btT +bNn +btT +bYf +btT +aaU +aVt +adN +opd +aaa +aaU +cdt +ceP +ceK +aeI +arN +arF +asS +auC +avH +axM +axM +axM +axM +aPh +aQk +asS +aSK +aTW +aVB +cqu +bwR +cBx +cBI +ctG +ctG +cvh +cBm +cJy +cNg +cNs +cIB +cIM +bXX +bty +bBl +aaU +bIm +aaU +blp +bme +bme +brv +btL +czp +bAW +bBm +bui +bui +bQs +bNH +bme +bme +bme +bme +bOb +bme +bOh +cne +bOm +bOp +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(146,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adn +ajh +amP +aea +adQ +ayk +aGZ +aKn +alR +bqQ +aox +anD +aox +aox +aFp +aHh +aJS +aMy +axG +aJS +aHh +aHh +aHh +aCz +aHh +aHh +cBq +aRT +cBO +cca +bEa +amy +aaU +aaU +aaU +aaU +aaU +aVs +bhq +bjY +bka +bmV +bka +bps +ang +ang +ang +ang +cuB +aWj +aaU +aaa +btT +bBX +btT +btZ +btT +aaa +aaU +aaU +aTl +qeq +rbJ +guK +hXk +hXk +cJp +hXk +hXk +tjb +asx +asS +auD +avI +axQ +beH +axQ +avQ +avI +avE +asS +aSL +aTZ +aWV +cqv +bwV +cBy +cBJ +cdy +cuN +cvi +cBB +cvi +cuN +cNv +bhT +cIM +bXX +bty +bzr +byT +cfc +bcT +bmf +bon +bpU +brN +btL +czq +bme +bBm +bui +bui +ctV +blp +bme +aaU +aaU +aaU +aaU +bme +bme +bme +bme +bme +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(147,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aax +ajm +aoQ +ach +adQ +aFr +aKg +ahO +aml +aoy +aoy +aoA +awt +aoy +aqL +anB +alS +aMC +apR +atP +aji +azm +azm +aCB +azm +aRM +bar +aSD +cBP +bDV +bEb +aUq +aVs +aVs +aVs +aVs +aVs +aUq +bhv +bka +bka +bnb +boV +bpt +aRF +cog +bnt +ang +cuC +cuD +cuD +cuy +cuE +cuD +cuy +cuy +cuE +cuy +cuy +cuD +cuG +eUF +opd +aej +agc +agT +cJq +apm +aqS +arP +cph +asS +auN +avK +axR +aAy +aOk +aOR +aPm +aPm +bBo +aTm +aUb +bAR +bnf +bwR +cBx +cCR +cdz +bPX +cdJ +cdM +cdJ +cdO +bRA +bbY +cIM +bZl +cwO +cyr +cyx +cyr +cyr +cyD +cyJ +cyJ +cyV +cze +czr +bme +bBm +bui +bui +bJq +bme +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(148,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aax +aax +aea +adQ +adQ +adQ +aFt +apv +aiF +amr +aqL +abX +aoD +aoj +bEq +aqL +aji +aKs +aNl +apU +atP +aji +aBT +buP +aCD +bvl +bvZ +bas +aSD +cBQ +ccb +cBV +aUw +aVx +aWU +aZm +aWU +aVx +bfO +aVx +aWU +bms +bnd +boX +bpH +ang +coh +cfy +clO +aRu +aSv +aSy +aSw +aTk +aQJ +aQJ +aQJ +aQJ +aQJ +aQJ +aRZ +aVK +cxa +bsz +sVC +aNH +bbQ +cJA +aqO +anE +anE +anE +aQT +ayb +axM +aCZ +aRG +aOl +aOV +avQ +cmX +aRp +bkJ +aUf +aeI +bnp +cmO +bQq +cmm +cri +cdH +cdK +cPu +cdr +bqw +cdS +bUs +cIU +coL +cyk +cys +baN +baN +baN +coq +box +box +cyW +cpy +bPD +bAY +bBw +bCA +cql +bJq +bNI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(149,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaU +aaU +aax +aba +aax +aax +aax +aax +aax +adr +ach +adQ +acT +afR +apv +apv +ajb +amt +anH +akd +aoG +bvp +aDm +aFP +aHh +aKB +aNu +aou +aou +aji +aBW +aBX +aCF +buX +bAh +bat +aSD +cBP +bDX +cBW +aUq +aVs +aVs +aVs +aVs +aVs +aUq +bhO +bka +bka +bno +boZ +bpJ +apd +bfI +clH +ang +aRX +aSw +aSM +aaU +aTl +aaU +aaU +aaU +aaU +aaU +aaU +aSu +aYU +cxb +opd +aej +agC +aoJ +cJB +apm +aqT +arQ +cpi +asS +aTQ +avU +ayn +aFU +aOq +aOY +aPO +aPO +bCW +bvY +asB +bAR +bnq +bEW +bQF +cah +cdA +bRn +cdL +cmv +cdL +cdQ +bVb +bUD +cIV +coN +cyl +bzI +bHn +bzI +bzI +cor +boy +boy +cyX +btO +bPE +bme +bBm +ccx +bui +bJq +bme +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(150,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aax +abb +abs +abs +abu +cqV +acg +ach +adQ +adQ +adS +adS +adS +adV +ajd +ajj +aqL +azr +bwl +bEn +anJ +aqL +awh +amx +aNU +aqj +aji +aji +aFV +aiv +aMj +amA +bDu +bat +aSD +cBR +cbZ +cBX +amy +aaU +aaU +aaU +aaU +aaU +aVs +bid +bkv +bka +bnw +bka +brA +ang +ang +ang +ang +aaU +aaU +aaU +aaU +aTl +aaU +aaa +aaa +aaa +aaa +aaa +rTW +aTl +cdp +wPS +aaU +atF +atF +cJC +atF +atF +arO +asC +asS +auY +avV +ayo +bCb +ayo +avQ +avV +aQs +asS +bwJ +aTZ +aXh +cqw +bSx +bQG +cbd +cdB +biL +bkD +cop +bkD +biL +boa +bhT +cIW +cIZ +cym +bzU +bzV +cuo +bcT +bnO +boz +bqp +cyY +btL +bPF +bme +bBm +ccx +bui +crj +blp +bme +aaU +aaU +aaU +aaU +bme +bme +bme +bme +bme +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(151,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aav +aTd +aWj +aaU +aaU +aaU +aaU +aaU +aaU +aax +abg +abt +abt +abK +cqV +csb +ads +ajK +adQ +adS +aeG +adS +afd +ajI +afK +aqL +aqL +aqL +aqL +aqL +aqL +afK +amy +aOD +aql +awB +boO +aAp +aCn +amA +bvD +amy +bas +aSD +cBN +cca +cBX +amy +aaa +aaa +aaa +aaa +aaa +aVs +aVs +bkw +bmt +bnB +bmt +bpZ +aVs +aVs +aaa +aaa +aaa +aaa +aaa +aaU +aTl +aaU +aaa +aaa +aaa +aaa +aaa +opd +aTl +cxc +aaa +aaa +aRD +ciT +cJD +cmu +atF +arY +arF +asS +avc +awa +clA +aLF +axM +axM +aPP +crs +asS +cpj +aUr +bmT +cqx +bwP +bQH +cdj +cdC +biQ +cjY +cot +blt +cse +bob +cjz +bjm +cIM +cym +bIp +aaU +bIx +aaU +blp +bme +bme +cyZ +btL +bPG +bBa +bBm +ccx +bui +bJR +bNJ +bme +bme +bme +bme +bOb +bme +bOi +bOj +bOl +bOp +cnE +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(152,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aax +aax +aax +aax +aax +apv +crS +adS +adS +aeW +adS +apo +adS +axL +agZ +aeZ +agm +aqW +ahX +aiU +afZ +agl +apW +amz +amz +aqm +amz +amz +aAq +bGa +bGG +bGG +cAY +cBq +aRT +cBS +cBU +cBY +aqn +acK +acK +acK +aqn +aaa +aaa +aVs +aVs +aVs +bnB +aVs +aVs +aVs +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aTl +aaU +aaa +aaa +aaa +aaa +aaa +opd +aTl +cxc +aaa +aaa +atF +ciU +cJE +cJG +cJI +cJK +cJL +cJO +asR +avE +bev +cbJ +aOx +aPc +avE +aQe +asR +crw +aUt +bpK +cqy +bEW +bQF +cdk +bmQ +biR +bjy +cou +csd +byr +bob +bhY +bXW +cJa +cyn +bQR +aaU +cNL +aaU +bme +bpi +bpT +cza +btL +bPH +bBc +bBM +ccx +bui +bui +bJR +bNR +bNR +bNR +bNY +bOa +bOe +bOg +bui +cnf +bme +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(153,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aYp +cdc +crR +adT +aeo +afm +aiA +apt +bve +afS +ahK +aix +ajM +akH +akH +asP +akH +akH +bhj +bEJ +cfS +bEJ +cml +amA +amA +amA +aMl +bcW +bvH +bvL +aXn +cBM +bDY +bEd +aqn +cCd +aRE +aSY +acK +aaa +aaa +aaa +aaU +anK +cAL +anK +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aTl +aaU +aaU +aaa +aWR +aaa +aaU +opd +aTl +cxc +atF +atF +atF +cmh +cmp +atF +atF +asi +asi +cJP +asR +awe +clB +asS +asS +aPd +avC +aQe +aRR +cpj +aSr +aeI +cqz +cqI +bQM +cdl +cdu +cdN +ciK +ctd +cwC +bmw +bob +bia +bXX +cIM +bty +bIp +aaU +aaU +aaU +bme +bog +bpT +czb +btL +bPI +bUx +bUx +ccK +cOw +bui +bui +bui +bui +bui +bNZ +bOa +bOe +bOh +cnc +bOm +bOp +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(154,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +agd +cdc +crR +adT +aeE +afm +afm +apT +adS +bEu +ahN +afa +aha +ahx +ahx +asT +ahx +ahs +afK +aGR +aAa +are +cmo +avP +aAW +aDq +aNn +bvh +aql +aCe +aYK +aDr +aci +aqn +aqn +aRj +aND +aVX +anK +anK +aHA +aHA +anK +anK +cAM +bCM +anK +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aTl +aWj +aMI +cgd +bwW +beE +bwW +opd +aTl +cxc +atF +aus +aus +aus +aus +cmw +atF +asv +asN +cJQ +avA +azh +aOd +aOM +aOC +aPe +clC +aQC +aRV +cJl +cko +aeI +bpv +cqJ +cdg +cds +cdv +biQ +bXf +bkG +cwP +cDh +bob +bib +bXX +cIM +bty +bIp +aaU +aaa +aaa +bme +bpj +bpT +czc +cze +czs +czy +bui +bui +bui +bui +bui +bme +bme +bme +bme +bme +bme +bme +bOn +bme +bOo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(155,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aYp +cdc +crT +adT +aeF +afp +aiV +anv +aec +axS +ahN +afK +ahb +ahx +aia +atm +alX +ahx +arx +amF +afK +aka +cmA +aka +aka +aka +aka +aka +aka +aLU +aNE +aRd +acK +aHL +aIN +aMK +aOc +aSA +aVa +aWn +bsR +bsR +bCG +bCK +cAN +bCN +anK +aaa +aaa +aaa +aaa +arE +arE +arE +arE +bxP +arE +aMI +cgX +chC +cik +bwW +bGh +bGQ +bHe +bHA +aus +bcM +cmi +cmq +aus +atF +aqU +asG +cJR +aws +aqU +aqU +aMz +chE +cie +cjK +ckm +cnh +ckm +ckm +ckm +ckm +cqK +cru +csz +cdw +biQ +biQ +biQ +biQ +biQ +boc +bzV +bYm +cJb +bzV +bUn +aaU +aaa +aaa +blp +bme +bme +blp +btL +bPH +bBe +bui +cma +bHt +bHt +bme +bme +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(156,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +adq +adq +adq +aec +afM +agx +aja +aoM +aec +agi +ahN +afK +ahc +ahx +ahx +ajs +atO +ayl +bml +ary +afK +atR +cmC +aSU +aka +aER +aFO +aGF +aKf +aMb +aPl +aRf +adR +arX +aKj +aVy +aRx +aSF +aHA +arH +aIC +aIK +aKk +aTU +cAO +cCA +anK +aaU +aaU +aaU +aaU +arE +bGJ +bFe +atf +bxS +bzo +aMI +cgY +bwW +cil +bwW +bwW +bCj +anr +bHO +aOP +biu +cmj +cmr +cmx +atF +cfv +asI +cJS +clx +awA +chl +aNx +chF +cir +cjL +ckB +cno +cpa +cpR +cqa +ckm +ckm +csq +ckm +bUN +biV +cKg +cLn +cLz +bmz +biV +cdP +bXX +cIM +bqE +bcT +aaU +aaa +aaa +aaU +aaU +aaU +blp +cmy +cmz +blp +cqU +blp +bme +bme +bme +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(157,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aav +aaU +aWj +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aec +aec +bEp +bEp +bEp +bEp +bEp +ahN +afK +ahd +ahx +ahx +ajD +atC +ahx +bmr +bPu +ciN +cly +aCv +cwZ +aka +aEX +aFQ +aGI +aKf +aMb +aPx +aLj +anh +azo +aKp +aND +aND +aWH +aHx +asc +aID +bvG +aKl +bCQ +cAP +anK +anK +arE +atf +aKT +arE +arE +att +cqr +arE +byt +bzo +aMI +cgZ +cif +cim +cmD +ciS +bCj +anr +bHO +aus +blX +cmk +cms +aus +atF +ast +asI +cJT +cJZ +cKa +cKb +cKc +chG +ciD +cjU +ckC +cnr +cpk +cpS +cqc +cqA +cqL +css +ckm +bUO +cdR +ciL +cLr +cwQ +bPx +bod +beW +bXX +cIM +bqD +bcT +aaU +aaU +aaU +aaU +aaU +aaU +bxw +bza +bMQ +blp +cnf +cdd +aYp +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(158,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +abp +aav +aTd +aWj +abp +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aee +aeP +aeP +aqA +aeP +agX +ajS +aHj +bvm +ahP +ahN +afK +afK +ahT +ahx +ahx +ahx +ahx +bvo +amM +apW +ars +cwN +azR +aBG +aEY +aFR +aGU +aKm +aMc +aPx +aRg +aGH +aIf +aLs +aRA +bkT +aWJ +aHz +btb +aID +bvR +bCI +bDJ +cAM +bCP +boA +aYC +brf +att +att +att +btP +bwo +arE +byu +arE +aMI +cha +cig +cck +bwW +ciV +bCj +anr +bHO +aus +aus +aus +aus +aus +atF +asI +asI +cJU +avw +bRd +azg +aNQ +chI +ciH +cjX +ckF +cns +cpo +cpT +cqn +cqC +cqM +cst +ckm +bUG +cfn +con +coo +cwR +bPy +bVY +bWn +bYO +cJc +bXb +bcT +bpP +bpP +bpP +bpP +bpP +bpP +cro +bza +bMQ +blp +ctH +cdd +csc +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(159,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aav +aaU +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +adx +aaU +aaU +aaU +aaV +ahP +ahP +ahP +bzp +ahP +ahN +aiB +afK +ahU +ait +ajE +amC +ahx +bvo +aIm +apW +arv +aub +azS +aBG +aEZ +aFS +aHd +aKr +aMf +aPy +aRi +aqc +aqn +aci +aci +aci +aXQ +aHy +bDc +aIF +aKi +beQ +cnm +cAQ +cAS +buO +buR +bwu +bAd +aMo +aMG +bVt +bwp +bvb +byv +ceQ +cgT +chc +bmY +ccI +bmY +anm +asu +anr +bHO +atF +atF +atF +atF +atF +atF +aqU +asM +cfL +aqU +aqU +aqU +aqU +chK +chK +ckm +ckm +ckm +cpA +cpU +cqo +cqD +cqO +ckm +ckm +bjZ +blq +bCz +bCz +cgc +cxi +cAA +cAI +cAZ +cJd +cBp +ccV +cIt +cIu +bMq +bJl +bLK +bYe +bHL +bYt +bYD +blp +crU +cdd +aYp +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(160,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +adx +aaU +aaa +aaa +aaU +ahP +akn +aJR +bEg +ahP +aif +ass +afK +afK +afK +afa +afa +anF +bvq +afK +aAa +aka +atS +aka +aql +aFa +aFW +aHm +aKf +aMr +aPA +aLj +aPx +aTN +avm +aVH +aWX +aZF +anK +aHz +aIG +aHA +boA +cAF +bCL +boA +anK +bqb +avm +brj +bsO +avm +bVz +bVK +bGX +cbR +ceS +bmW +chv +bwW +cin +aMD +arp +bCk +aqk +bIT +qlJ +qlJ +bcG +cmt +auR +aYL +cfw +bap +cJW +bcI +bbF +bbN +bbN +bbO +bbL +bcb +aaU +ckm +cpF +cpV +cqp +cqE +crb +ckm +bgl +bgl +bjb +bjb +bkI +cic +cxj +biV +bie +bZl +cqQ +bqD +cBr +aRY +bcE +aRY +aRY +btz +cOe +btB +btB +btA +blp +blp +blp +blp +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(161,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +abe +aaU +aaa +aaa +aaU +aio +akZ +biO +bEt +bEA +aik +ajl +ajP +alh +aqN +ato +aut +ayw +bDB +bSu +cjm +asm +aqo +aAo +bDi +aFb +aGf +aHw +aKu +aME +aPC +aRk +aSI +aSI +aUJ +aVU +aVU +aZH +bch +bea +bfS +biX +bkK +bmA +bnE +bch +aSI +bqk +brg +bry +btq +avm +aMI +aMI +bwW +bwW +bwW +aMI +chw +bwW +ciq +bwW +ciV +bwW +aaU +bIY +bHg +bMK +anr +bcI +bgw +bgw +bgw +bdk +cJX +bcI +bbJ +bbF +bbN +bbN +bbN +bbO +bbV +ckm +cie +ckm +cqq +ckm +crm +ckm +bgn +bhn +cuO +bhn +bhn +cic +cDi +biV +bdH +bWO +cqR +bqE +cBr +aST +bcF +ckc +bnQ +btA +bMQ +bta +bta +bta +bta +bta +aaa +aaa +aaa +bNK +bNS +bNU +aaa +bNK +bNS +bNU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(162,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aao +abj +ado +aaa +aaa +aaU +aio +alb +aKe +bEw +ahP +bEB +bGo +afA +ahN +aiC +alz +avt +azx +bEv +bZM +avt +avd +bDp +bDv +aiC +aFd +aGj +aHB +aKz +aMM +aPG +aRn +aSO +aUa +aUN +aWf +aWY +aZL +bcq +bcq +bgb +aSO +bkQ +bmB +bnF +bpc +bqa +bnF +brh +brE +btt +btJ +bmS +bwq +bwX +bwX +bzL +bwX +bBp +bwW +ciq +bwW +ciV +bwW +aaU +aaa +aaa +bJv +cJx +cJF +bPh +cJJ +bsX +cJM +cJY +bcI +bbJ +bbL +bbN +bbN +bbN +bcb +ciI +bjI +bkB +bmP +bKj +bbV +bfG +bge +bgB +bho +bjc +bjK +bkI +csm +cxk +biV +cvN +bjm +bXX +bqD +cBs +aTc +bdL +biE +bpV +bLZ +bNt +bta +btQ +bxN +bDh +bHM +aaa +aaa +aaa +bNK +bYQ +bNU +aaa +bNK +bYQ +bNU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(163,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aao +abj +ado +aaa +aaa +aaU +ahP +alf +afh +bEy +ahP +aiz +aiz +aiz +ahN +aiC +ake +avt +aDD +aqp +aui +aAm +bvw +bDq +aul +bDA +bDA +bDA +bDA +avm +aMO +aLr +aRs +aSS +and +amY +amY +amY +amY +amY +amY +bvu +aJd +aKQ +aJd +aKQ +aJd +aJd +bql +bri +brW +btu +bsO +aMI +aMI +aMI +bAk +aMI +aMI +bzn +aMD +ciq +bwW +ciV +bwW +aaU +aaa +aaa +bJv +anr +bcI +sdp +bgw +bgw +uwK +bhm +bcI +bbL +bbN +bbN +bbN +bbN +bbO +bcl +bAa +bkM +bja +bKB +bcl +bfG +bge +bge +bge +bge +bge +bge +cwS +cxl +biV +bdI +cNx +bXX +bqD +cBr +bcu +csS +biH +bnQ +btB +bNV +bta +bzd +ceh +bzd +bHM +aaa +aaa +aaa +bNK +bYQ +bNU +aaa +bNK +bYQ +bNU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(164,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aao +abj +ado +aaa +aaa +aaU +ahP +ahP +ahP +ahP +ahP +aaU +aaU +aiz +ahN +aiC +alc +avu +aDD +aqx +awv +bvr +bDn +bDr +bDx +bDC +bDF +bDE +bDK +avm +aMT +aLr +aRt +aTe +amY +aBq +aCQ +aFe +aCJ +bFn +bFn +aJd +aJi +aKU +cCs +aLD +aLR +aJd +aZD +bwE +bIX +csB +bwj +bmW +bEQ +bxb +aNW +cCF +bmW +bzn +bwW +ciq +bwW +ciV +bwW +aaU +aaa +aaa +bJv +anr +bcI +aXp +cwx +bTJ +bhs +bmm +bcI +aaU +aaa +aaa +aaa +bbV +bbV +bbV +bhk +bwi +blN +bKX +ciI +bfG +bbV +bgH +bhp +bjd +bZi +boG +cxe +cxm +bgf +cIC +bjm +bXX +bqD +cBC +bcv +bdL +bkf +bWY +btC +bPm +bta +btV +cfG +btV +bta +aaa +aaa +aaa +bNK +bYQ +bNU +aaa +bNK +bYQ +bNU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(165,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aao +abj +ado +aaa +aaa +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aiz +amw +aiC +ald +avZ +aGY +aqQ +ayc +bvA +bZN +bDs +aaB +aEg +bDG +bDI +bDK +avm +aMW +aLr +aRK +amY +amY +aBs +ane +anp +aCJ +bFn +bFn +aJd +aJj +bdq +bet +bmu +aUs +buQ +bvk +bwF +bVi +cvJ +bwn +bmW +bws +aNW +bxd +bBK +bAS +bCq +bwW +ciq +bwW +ciV +bwW +aaU +aaa +aaa +bJv +anr +bcI +bcI +cwy +bcI +jMO +bcI +bcI +aaU +aaa +aaa +aaa +bbV +bfN +bhk +bhk +bwt +bja +bLn +bbV +bfG +bbV +bgI +bDl +cuP +bjM +ccW +cgs +cxn +bgf +bBU +bnN +crc +buw +aRY +bcD +bcF +bkz +bnQ +btD +bPm +bxH +bzc +bBg +coW +bxH +bxH +aaa +aaa +bNK +bYQ +bNU +aaa +bNK +bYQ +bNU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(166,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aao +abj +ado +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaU +aiz +amD +aiC +afV +amK +aHc +bEH +azV +bvC +cbQ +bDs +bDz +aNe +bDH +bDA +bDA +avm +aNs +aLr +aRN +aSe +aAC +aAD +anp +ane +aCJ +bGe +bFn +aJd +aJl +aKV +bfz +bmx +aLp +aML +aZe +bhF +bXc +bhG +bhH +bhL +bio +biD +cAq +bkE +bmW +bBq +bwW +ciq +aMD +ciV +bwW +aaU +aaa +aaa +bJv +anr +aaU +aaa +cwz +aaa +bfW +aaa +aaa +aaU +aaa +aaa +aaa +bbV +bgg +bgK +bhk +bwG +bja +bLv +bbV +bfG +bbV +bjf +bkh +blu +bbV +ccZ +cgs +cxo +bgf +bgf +bez +cxB +bhf +aRY +aRY +aRY +aRY +aRY +btz +bPn +btE +bzk +crp +bBf +bDf +bHM +aaa +aaa +aaU +cnM +aaU +aaa +aaU +cnM +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(167,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +adx +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaU +asd +ahN +aiC +alH +amK +aDD +aqp +aAg +bCJ +cjn +bDt +bDA +bDA +bDA +bDA +aHC +aKW +aNt +aLr +aRN +amG +aAD +aBs +awP +anp +aCJ +bFn +bFn +aJd +bDe +aKX +bet +bmX +aLS +aML +baY +bwO +bEi +cwt +czQ +czX +cAd +cAn +cAr +bkL +bmW +bBr +bwW +ciq +bwW +ciV +bwW +aMD +bwW +aaa +bIY +bMX +tpQ +xqa +aaa +cwD +bfW +aaa +aaa +aaU +aaa +aaa +aaa +ciI +bgv +bhk +bhk +bxe +bja +bLA +bbV +bfG +ciJ +bUk +bUH +bVg +bVn +cfd +cgs +cxp +ckq +bgf +beB +cxC +bgq +cjA +biy +bjN +bkO +biZ +bXY +bPm +bxH +bFF +csU +bBg +bDg +bHM +aaa +aaa +bNK +bYQ +bNU +aaa +bNK +bYQ +bNU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(168,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aao +abj +ado +aaa +aaa +aaa +aaa +aaa +aaa +cjj +cjj +cjj +cjj +cjj +ahN +aiC +aiC +amL +aQZ +aqx +bvw +bvw +bvw +ant +aoN +aJH +anS +amc +aHX +aLd +aNE +aPJ +aRN +amG +ane +anp +csy +aBs +aCJ +aCJ +amY +bvu +aJd +aKQ +bfB +brt +aJd +bvu +bAO +bxc +bFd +czN +czR +buh +bwv +bxh +byP +bkN +bmN +bng +bnM +boh +bpI +bqg +bqu +bra +bwW +bwW +aaU +bdR +cJr +opd +aaa +aaa +cwF +aaa +aaa +aaU +aaa +aaa +aaa +bbV +bbV +bbV +bhk +bwt +bBi +bLO +bbV +bTV +bgf +bTk +bUR +cfO +cja +cja +cgt +cxq +cxv +bgf +bVj +cxC +bgq +bhX +biz +bjP +cJi +biZ +btz +bPm +clW +bPM +bzd +bBg +bDh +bHM +aaa +aaa +bNK +bYQ +bNU +aaa +bNK +bYQ +bNU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(169,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +aao +aaO +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aao +aaO +ado +aaa +cjj +cjk +anb +ajo +ajV +anG +aro +avb +awb +awI +amc +agU +air +aZK +anN +awD +aoO +azT +bso +aIb +aLe +aNP +aPL +aRP +aKq +aLM +aMu +aNy +aSd +aTq +aVY +bfH +aJd +btm +bdo +bet +bse +aMd +aJd +bdA +bxg +bvs +aMA +czS +buW +bwx +aMA +aMA +aMA +aWE +bzn +bwW +ciq +bwW +ciV +bwW +brr +bCr +cwv +bAQ +bAQ +cJs +bPr +bRo +bam +cwG +bam +bYl +bam +bam +bam +bam +bbX +bbX +bcn +cnv +bxL +cpW +bLP +buH +bBz +bPY +bUd +cdx +cga +cgq +cgq +cjb +cxr +cxw +cxx +cxz +cxD +cxF +bhX +biJ +bjQ +ccF +biZ +btz +bPm +bxH +bSf +bzd +bQD +bxH +bxH +aaa +aaa +bNK +bYQ +bNU +aaa +bNK +bYQ +bNU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(170,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aWj +aaU +aaa +aaa +aaa +aao +aaP +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aao +aaP +ado +aaa +cjj +agG +aiu +ajv +akb +anZ +arG +avf +awf +awU +amc +awV +aoO +aqq +aqq +avh +azX +aCV +cra +aIp +aLh +aOf +aPQ +aRS +amY +aAF +aMv +aDI +aBs +aAD +aBs +aGB +bsS +bvT +bdp +cAJ +cAR +buZ +aJd +bhe +bxp +bvx +aMA +czT +bva +bwy +bxi +cCE +cAw +aWF +bBD +bmS +ciM +bmS +ciX +bmY +brP +brX +bsh +bsu +bsx +cJt +sVC +bRp +sVC +bsT +sVC +bZp +sVC +sVC +sVC +frb +bvM +bvW +bvX +bwd +bxU +bBT +bLQ +bLT +bQh +bLT +bLT +cdF +bVl +bZd +cfX +ciP +cjB +boj +bcl +bfc +bgs +cxG +bif +cnA +csg +btW +biZ +bUW +bRr +bxH +bzj +bzW +bBx +bxH +aaU +aaa +aaa +bNK +bYQ +bNU +aaa +bNK +bYQ +bNU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(171,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +ahv +aWj +aaU +aaa +aaa +aaa +aao +aaP +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aao +aaP +ado +aaU +cjj +amO +afo +cjl +cjj +bGq +bEf +avm +awb +awI +amN +anM +aoO +aoO +aoO +aoO +aoO +aFI +amc +aIt +aLj +aOg +and +aoE +amY +aAG +ane +aEi +aAD +aBs +aAD +aMV +aNq +aOi +bdp +bfK +bsW +cCB +aJd +bhi +byM +blP +aMA +czU +czY +cAe +cAo +cAs +cAx +bhU +biN +biY +bne +cAz +bqf +bqH +brY +bsi +bsv +bsy +bsy +bsD +bsI +bRv +bsD +bww +bsD +caf +bsD +bsD +bsD +bAA +bBL +bBL +bCm +bwg +bzC +boC +bLR +bTx +bUb +bUh +bUm +bUZ +bVm +cbM +cfY +cJz +cjC +bhr +ckv +bdV +bgt +cxC +bhX +biJ +bjQ +cxT +biZ +btz +bPm +bxH +bxH +bxH +bxH +bxH +aaU +aaa +aaa +bNK +bYQ +bNU +aaa +bNK +bYQ +bNU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(172,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aav +abM +acj +aaU +aaa +aaa +aaa +aao +aaP +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aao +aaP +ado +aaa +cjj +cjj +cjp +cjp +cjp +aoK +aoK +aoK +awb +awI +amN +aii +aoO +aqr +aSR +awE +aoO +brx +amc +aIw +aLj +aOj +amY +aoZ +anp +ane +anp +aDI +aBs +aAD +aBs +aHe +aJd +bmI +aZi +bfL +btM +bvf +aJd +bhw +byO +bBb +aMA +btc +czZ +cAf +bVH +bwA +bAj +aMB +bzn +bwW +cgY +bwW +cil +bmW +bCt +aMI +aMI +aaa +aaa +aaa +bfW +bJv +aaa +cwI +aaa +cbG +aaU +aaa +aaa +aaa +aaa +bbV +bhu +bhr +bbT +bdZ +brR +bbT +bUf +bbT +bbT +bbT +bUP +bbT +bbT +cJV +bbT +bbT +bbT +brQ +bgt +cxH +cxN +cxP +cxQ +cxU +cxW +cxX +bPm +clX +bZu +cmM +bYn +bZt +bHN +bHN +bHN +bNL +cnM +aaU +aaU +aaU +cnM +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(173,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aav +abR +acj +aaU +aaa +aaa +aaa +aao +aaP +ado +aaa +aaa +aaU +adx +aaU +aaa +aaa +aao +aaP +ado +aaa +aaa +aaU +aoK +asA +atu +aue +auO +arM +awb +axa +amc +anO +arn +aqt +atX +ayV +aJJ +brC +bsq +aIy +aLo +aOm +amY +aqd +ane +aBS +aBV +aEk +aBV +aBS +aAD +aHf +aJd +aJd +bco +aJd +aJd +aJd +bvu +bdA +bxp +bvs +aMA +aNc +bvQ +cAg +bxr +byY +cvP +aMB +bzn +bjz +cgZ +bmS +bJS +bmW +bmW +aMI +aaU +aaU +aaU +aaU +bfW +opd +aaU +cwJ +aaU +cbG +aaU +aaU +aaU +bbT +bbT +bbT +bbT +bbT +bbT +bkm +brV +bgh +bfU +bFD +bgO +bhA +bUQ +cvj +cDg +cKd +ben +bor +bcV +bfe +bgt +cxI +ctv +biM +bjS +bkS +cpJ +btF +cxY +bZt +bZv +bYn +bYn +bZy +bHN +bHz +ckn +cnL +cnN +bOk +bOk +bOk +cnP +cnR +bOk +bOk +bOq +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(174,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaD +abM +acm +aaU +aaU +aaU +aaU +aao +aaP +ado +aaa +aaa +aaU +adx +aaU +aaa +aaa +aao +aaP +ado +aaU +aoK +aoK +aoK +asE +atw +atw +atw +arM +awg +axb +amc +amc +amc +amc +amc +azF +aJY +brD +bsr +aIB +aLj +aOy +amY +apw +anp +aBS +ayy +aEj +ayy +aBS +aBs +aHi +aJk +aJd +bdm +aLA +aJd +aMk +aMk +bdA +bxp +bvI +aMB +aMA +aMA +cAh +aMA +bzf +bAp +aMB +bzn +bxG +bxF +bxG +bXs +cii +cjg +cji +aaa +aaa +aaa +aaa +bgi +fui +aaa +cwK +aaa +cbG +aaa +aaa +aaa +cmH +crh +bVx +bVw +bVy +bVw +cwc +buz +bAu +bCx +bPZ +bUl +bVc +cte +cvk +cDm +cvk +ctp +ctq +bkX +ctr +bZw +cxJ +bez +biZ +biZ +biZ +biZ +btz +cxY +bZt +bZt +bZx +bZt +bZt +bHN +bHP +bHN +bNL +aaU +aaU +aaU +aaU +cnQ +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(175,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaY +abV +acq +acJ +adk +adG +aaU +aaU +aaT +aaU +aaU +aaU +aaU +aaT +aaU +aaU +aaU +aaU +aaT +aaU +aaU +aoS +aqe +aqe +asQ +atx +auf +auU +avp +awi +axd +ayv +azD +ayv +aBD +aCx +aDw +aEl +aFg +aGk +aIW +aLq +aOG +amY +apa +ane +aBS +ayy +bvE +ayy +aBS +aAD +aHJ +amY +aJd +bds +bfQ +bug +buL +buL +bhC +byS +aMn +aMD +bEj +bvU +cAi +aMA +bzg +aMA +aMB +bzn +bwW +bxF +aMD +cih +bAK +bjz +aMI +aZG +aaa +aaa +aaa +bgi +fui +aaa +cwI +aaa +cbG +aaa +aaa +aTx +bbT +bbT +bbT +bbU +bcV +crd +bej +bej +bfs +bfY +bej +bla +bVh +ctf +bkc +bcV +bcV +bnh +bnh +bcV +bcA +bgZ +cxK +ctw +bjl +bGC +bpQ +bpQ +cOa +bYg +cya +cya +cya +cya +cye +bHN +bIy +bHN +bJQ +bJQ +aaa +aaa +bNK +bYR +bNU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(176,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +cpB +aaa +aaa +aaa +aaU +abr +abM +abr +abM +adl +abM +aZG +aaU +abc +aeP +aeP +aeP +aeP +ajc +aeP +aeP +aeP +aeP +avr +aaU +aTx +aoK +aoK +arK +asZ +aty +auj +auX +avq +awj +axn +ayx +azH +aAr +aAr +aCI +aDy +aEn +aFs +aAr +aIY +aLr +amG +amG +apL +anp +aBS +aBu +aEj +aBu +aBS +aBs +aGB +aJf +aJd +bdw +bfT +aJd +aMk +aMk +bdA +bzQ +ccl +czO +czV +czV +cAj +bxs +bzl +bkg +bPq +bzn +bwW +byW +bCB +ciX +cij +cip +cpE +aaa +aaa +aaa +aaa +bgi +fui +aaa +cwK +aaa +cbG +aaa +aaa +aaa +cpp +cgj +cgk +cgj +bcj +cgj +ben +bej +cqF +bfZ +bej +bAB +bVk +ctg +cjd +ctm +blQ +bbw +bci +bci +bfP +cqj +cxL +bir +biZ +cjt +bXE +bLZ +bLZ +bYh +bYn +bYn +bYE +cni +cyf +cgy +bIz +cmc +ceJ +bJQ +aaa +aaa +bNK +bYR +bNU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(177,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +abD +abW +acr +acW +adw +adH +aaU +aaU +abe +aaU +aaU +aaU +aaU +abe +aaU +aaU +aaU +aaU +abe +aaU +aaU +aoT +aqy +arL +asZ +atD +auk +atD +avs +awl +axq +ayB +avb +aAs +aBJ +awp +awx +aEr +aFx +aGl +aIZ +aLr +amG +ane +anp +ane +azt +aBv +aEj +aFh +aKN +aAD +aGN +aJg +amY +aOt +bfV +amY +aMs +aMs +bhD +aOA +bvN +aMs +bmo +cAa +cAk +bxy +bzi +cAy +bTU +bzn +aMD +bzh +bwW +ciV +aMI +aMI +aMI +bLw +bMM +bMM +bMM +ifC +bJv +aaU +cwJ +aaU +cbG +aaU +aaU +aaU +bbT +bbT +bbT +bbT +bbT +bdT +beX +beU +beU +beU +beU +bLu +bVr +cth +cje +ctn +bcV +bby +bck +bdM +bdM +bhb +bhM +bis +bjn +bjn +bXF +bjn +bjn +bjn +bjn +bjn +bjn +bjn +cyg +bGF +bIA +bIB +bNO +bHN +aaa +aaa +bNK +bYR +bNU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abp +aaa +aTd +aaa +abp +aaa +aaa +aaa +cpB +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(178,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +abE +abM +acx +aaU +aaU +aaU +aaU +aao +abj +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aao +abj +ado +aaU +aoK +aoK +aoK +atd +atE +aum +ava +avs +awp +axD +ayE +awp +awp +awp +awp +aDA +aEt +aFA +aGm +aIZ +aLr +amG +anp +aBS +aBS +aBS +ayy +aEj +ayy +aBS +aBS +aLG +aJh +aLN +aOu +cCt +beA +aMt +aNw +bhE +btg +bvO +bwb +aMs +cAb +cAl +bxz +bgP +bzO +caD +bzn +bjz +ciG +bAK +ciV +aMI +aaa +bJj +bLS +kxw +kxw +kxw +bPA +wPS +aaa +cwI +aaa +cbI +mIT +cJr +aaa +aaU +aaU +aaU +aaU +bbT +bbT +bbT +bfE +bih +bkb +bkj +bkY +bVs +cti +cje +cto +bcV +bcV +bcm +bdV +bdM +cqk +bhP +biv +ciR +bjT +bXG +clV +bjT +cjf +btH +btX +ckE +bjn +cyf +bHN +cnS +bKZ +bNP +bHN +aaa +aaa +bNK +bYR +bNU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(179,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aav +abR +acj +aaU +aaa +aaa +aaa +aao +abj +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aao +abj +ado +aaa +aaU +aaa +aoK +ate +atG +auq +atG +avx +awp +axE +ayH +azM +aAt +awp +aFl +aDC +axU +aFB +awx +aIZ +aLr +amG +ane +azt +azu +aAH +aBv +aEk +ayz +azu +azu +aKN +aJm +amY +aQy +bgo +amY +amY +amY +bfX +btr +bvP +bwc +bmo +bwk +bwH +bxG +bzm +bAx +bBh +bBG +bAK +ciO +bAK +ciV +bAS +aaa +bJv +bMp +cwA +cwA +cwA +bgM +cwA +cwA +cwL +cww +cbL +cww +bdR +mIT +mIT +mIT +mIT +cJr +aaa +aaU +bbT +bgk +bbT +bkd +bbT +bUS +bVG +cgn +cje +blb +blR +bni +bcA +bdM +bdM +cNA +bhP +biv +bjB +bjV +cnB +csh +ciE +bjn +btI +buc +cme +bjn +cyf +bHN +bHN +bHN +bHN +bHN +aaa +aaa +bNK +bOd +bNU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(180,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aav +abM +acz +aaU +aaa +aaa +aaa +aao +abj +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aaa +aoK +atg +atG +aur +atG +avz +awx +axU +ayL +azO +aAu +awp +aCP +aDG +cPr +aFD +awp +aJa +aLr +amG +anp +aBS +ayy +ayy +aBS +bAZ +aFn +aFY +aFY +aFn +aJo +aLP +aMJ +bgp +buT +cCC +buN +bDj +bur +bvS +bwe +aMs +bmW +bwI +aMI +ceG +bAK +aMI +aMI +aMI +cjc +aMI +cnt +aMI +aaa +bJv +bMp +cww +bMY +bMY +bPB +xoj +cwB +cwM +cww +cbN +cww +aaU +aaa +aaa +aaa +aaa +anr +aaa +aaU +bbT +bEk +bfD +bVd +bkX +bUT +bXw +chd +cki +ctt +blS +bnn +bcA +bdM +bdM +bdM +bhP +biv +bjF +cqB +bXI +bnX +bjn +bjn +bjn +bjn +bjn +bjn +cyh +boI +aaU +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(181,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aRv +aaa +aaU +aaa +aaa +aaa +aao +abj +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aaa +aoK +ath +atG +auu +atG +avB +awx +axU +ayP +azU +aAE +awp +aCR +aDH +aEz +aFH +aGw +aJb +aLt +amY +anY +azt +azu +azu +aBv +aEk +ayz +azu +azu +aKN +aAD +aMe +bdB +bgr +buU +byo +apV +bgj +buu +bvV +aMs +aMs +aaU +bCU +aMI +ceG +bAK +bAS +aaa +aaU +aaa +aRv +aaa +aaU +aaa +bJv +bMp +cww +bMZ +bMZ +bPC +uAY +cwB +bUV +cww +cge +cww +aaU +cak +cam +cak +aaa +anr +aaa +aaU +bff +bgQ +bff +bgQ +bff +bfC +bYM +bjo +bkk +ctx +blV +bny +bdK +bma +bfR +bhd +bhQ +bpl +bjn +bjn +bjn +bjn +bjn +bRt +bxO +bzs +bzZ +bBy +cyi +boI +boK +boK +boK +boK +boK +boK +boI +aaU +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(182,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aao +abj +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aaa +arM +ati +arM +atG +atG +avD +awx +axY +ayZ +azW +aAT +aBO +aCS +aDJ +aEB +aFJ +awp +aJs +aLz +amY +anp +aBS +aBS +aBS +ayy +aEI +ayy +aNa +aSC +aSC +aTB +aUx +bdX +bhV +buY +bMm +amY +aMs +buI +aMs +aMs +aaU +aaU +bCV +aMI +ceH +aMI +aMI +aaa +aaU +aaa +aaU +aaa +aaU +aaa +bJv +bMp +cww +bNa +bNa +bPJ +bRC +cfx +bUX +bVE +cbT +cww +bhI +bhI +can +bhI +aaa +anr +aaa +aaU +bfC +bfb +cmW +bic +cbk +bfC +bYN +bgT +bgT +ctA +bgV +bgV +bgT +bgV +boM +boS +ccv +boS +boI +bqZ +ctu +bMH +btN +buy +bRw +bRz +cmJ +bRG +cyj +cmb +bHQ +bHQ +bHQ +bHQ +bHQ +bLa +boK +aaa +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(183,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aao +acv +ado +aaa +aaa +aao +abj +ado +aaa +aaa +aao +acv +ado +aaa +aaa +aaa +arM +atl +arM +arM +arM +avs +awp +ayg +aza +azY +aBc +awp +aCT +aDK +aEG +aFK +awp +aJP +aLC +amY +aoa +ayA +azv +aBp +aCy +aEM +aFq +aNb +aGA +aBs +aAD +aMF +bdn +bdn +bdn +bdn +aCJ +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aVT +aaa +bAL +aaU +aaa +aaU +aaa +aaU +aaa +aaU +aaa +bJv +bMp +cww +bNb +bNb +bPL +cwB +cwB +cwB +bVX +eKM +cww +bhI +bhI +cao +bhI +bhI +anr +aaa +aaU +bfC +bgS +bGL +bip +ctz +bfC +cbO +cgE +bkl +ctB +blW +cxs +bos +bgV +boN +boT +bpd +bpp +bqy +cxR +cxV +cxV +cxV +cxZ +cxV +cyb +cyc +cyd +bFg +bHR +bHR +bHR +bJU +bHR +bHR +bLb +boK +aaa +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(184,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaT +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +arM +atn +arM +aaU +aaU +aaU +awp +awp +awp +awp +awp +awp +aCY +aDQ +aEH +aFL +awp +aKb +aKb +amY +amY +amY +azw +amY +aHK +aMR +aMU +aQV +amY +aCJ +aCJ +aCJ +aCJ +aCJ +aCJ +aCJ +aCJ +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaU +aaa +bJv +bMp +cww +bjE +bNq +bQK +qgO +chO +cpN +bWG +cJo +jiZ +bhI +cLY +cap +cMt +cau +anr +aaa +aaU +bfC +bgU +cng +bCH +bRu +bUK +ccu +che +ckr +ctC +bVo +cxt +bVZ +bgV +boI +boU +cty +bpf +bpf +cxS +bpY +btd +btd +bDy +bxR +btS +boI +bBA +bFh +boI +boK +boK +boK +bKo +bKD +boK +boI +aaU +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(185,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +adx +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaU +apC +aqC +axr +aAM +aqC +apC +aaU +aaa +aaa +aaU +amY +azZ +amY +aKI +aKM +aBS +aBS +aCJ +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaU +aaa +bJv +bMp +cww +bkH +blz +bNd +bNE +cww +cpO +bWG +cJo +cMH +bhI +cLZ +caq +cLZ +bhI +anr +aaa +aaU +bfC +bhB +bAv +bPW +cBz +bUM +ccX +chf +ckO +ckO +ckO +cxu +chf +cxy +cxA +cxE +cxM +cxO +cND +bpf +brS +bte +cdT +ceZ +bte +bzu +boI +cJj +bzt +boK +aaU +aaa +aaa +aaa +cgW +aaa +aaa +aaa +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(186,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +abe +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaa +aaa +aaU +apC +aug +axs +aAN +bsc +apC +aaU +aaa +aaa +aaU +amY +aAw +amY +aCJ +amY +aCJ +aCJ +aCJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaU +aaa +bJv +bMp +cww +cww +cww +cww +cww +cww +cww +cIs +tyI +cMJ +cLX +cMa +cMj +cMu +cMG +anr +aaU +aaU +bff +bfC +bff +bfC +bff +bfC +bij +bhK +bkn +cnw +bkn +bhK +bov +bgV +boI +boW +bpf +bpu +bpf +cty +brS +boI +btS +ccT +boI +bzu +boI +bBI +bFi +boK +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(187,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +adx +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaU +aaU +apC +aun +axs +aAN +bsd +apC +aaU +aaU +aaU +aaU +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +rTW +tpQ +wPS +bMt +pgu +pgu +pgu +gGG +vsO +chS +cpQ +cfM +cbU +jXo +cLm +cMb +cas +cMb +cMH +anr +aaa +aaa +aaU +aaa +aaU +aaa +aaU +bgT +bhZ +bhK +bkn +bkn +bkn +bhK +bow +bgT +boP +boY +bpk +bpf +bpY +brd +brT +boI +btS +ccU +boI +bzv +boI +boI +boI +boI +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(188,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +ady +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +ahu +ahu +ahu +apC +apC +auo +axy +aBd +aJI +apC +apC +ahu +ahu +ahu +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +aXx +aXx +aXx +aXx +bfW +tuF +lRy +fti +cfP +mEa +cLV +chn +eCy +chL +cMv +cMI +anr +aaa +aaa +aaU +aaa +aaU +aaU +aaU +bgV +bhZ +bhK +bkp +bhK +blZ +bhK +boB +bgV +boI +boI +ckK +ckL +ckM +boI +boI +boI +cre +cow +boI +bzw +boI +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(189,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +ahu +amU +aov +apE +aqB +aup +axs +aBn +bbR +aqB +apE +aov +amU +ahu +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +bca +bca +cat +cKX +bQN +nLV +cLd +fti +cfT +cgg +cgx +chp +chx +chM +gDY +jiZ +hlV +aaa +aaa +aaU +aaa +aaU +aaa +aaU +bgT +bil +bjq +bkq +bld +biw +bld +boB +bgV +aaU +boI +boK +boK +boK +boI +aaU +cNW +cNX +cOf +cNX +cOm +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(190,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahu +ahu +amV +amV +apF +aqC +adI +axH +aBB +bsg +aqC +bsB +amV +amV +ahu +ahu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +bRK +bca +bZI +bZR +bfW +qHL +eTZ +vcb +uVD +mqB +dpO +tZC +qWY +rUl +cMw +cfs +cMP +aaa +aaa +aaU +aaa +aaU +aaa +aaU +bgT +bgT +bjr +bkr +ble +bgT +bnC +boD +bgT +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cNX +cNX +cOf +cNX +cOm +aaU +aaa +aaa +aaa +aaU +aaU +aaU +aaU +blj +aaU +aaU +aaU +aaU +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(191,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahu +all +amV +amV +apI +bsw +auw +axJ +aBE +auy +bsw +bsm +amV +amV +bsJ +ahu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +bca +bca +cKQ +cKY +bQO +ony +xcO +hKC +cVO +sRD +cMe +cai +rdF +cMk +ceU +cMJ +cxc +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +bgT +bks +blg +bgT +cgm +boE +bgT +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +cNX +cOf +cOh +cOm +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(192,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahu +alm +amV +amV +apI +bsA +auy +azs +aBE +auy +bsA +bsm +amV +amV +bsK +ahu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaU +aXx +aXx +aXx +aXx +aXx +bfW +cww +bUa +cMr +sRD +cMo +cgz +cai +fkx +cMl +cMx +cMJ +cxc +aXx +aXx +aXx +aXx +aXx +aaa +aaU +aaa +aaa +bgT +bkt +blh +bgT +blh +boF +bgT +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cNX +cOf +cOh +cOm +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(193,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahu +aln +amV +amV +apJ +aqC +auz +azs +aBE +bsj +aqC +bsC +amV +amV +aln +ahu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +bSb +bSb +cKR +cKX +bQN +cLb +cLe +cMo +hMZ +nAF +lcD +cai +fkx +mNN +cLo +nBM +cfD +cKX +cLt +bkZ +bkZ +aXx +aaa +aaU +aaa +aaa +aaa +aaa +cqX +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cNX +cOf +cOh +cOm +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(194,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahu +aln +amV +amV +apK +aqB +aqB +azI +brn +aqB +aqB +bsE +amV +amV +aln +ahu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +bSi +bWp +bZL +bZR +bfW +cwA +cLf +cMo +iAW +fIw +wWH +ntC +nEX +hDz +cLp +oMB +mxW +bZR +cay +caK +caM +aXx +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cNX +cOf +cOh +cOm +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(195,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahu +alm +amV +amV +amV +aqI +aqB +aGO +auy +aqB +aqI +amV +amV +amV +bsK +ahu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +bSb +bSb +cKS +cKY +bQO +cLc +eIh +car +tXV +tZj +jml +cVq +cMc +cMm +cMy +cML +cLa +cKY +cLu +bkZ +bkZ +aXx +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cNX +cOf +cOh +cOm +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(196,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahu +alJ +amV +aow +amV +amV +auA +auy +auy +bsk +amV +amV +amV +amV +alJ +ahu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaU +aXx +aXx +aXx +aXx +aXx +bfW +cww +bhJ +cMo +iAW +cJu +iAW +cJH +cMd +cMn +cMz +cMJ +aaU +aXx +aXx +aXx +aXx +aXx +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cNX +cOf +cOh +cOm +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(197,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ahu +ahu +amV +amV +amV +aqI +ave +auy +bXH +bsm +aqI +amV +amV +amV +ahu +ahu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +bTH +bTH +cKT +cKX +bQN +cLb +cLh +cMo +iAW +cJu +hlo +cJH +cMe +cMo +cLq +nBM +cKZ +cKX +cLv +blL +blL +aXx +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cNX +cOf +cOh +cOm +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(198,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +ahu +amW +aoI +amV +amV +ave +aIR +auy +bsm +amV +amV +aoI +bsH +ahu +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +bTI +bXe +bZO +bZR +fuE +bWK +cLi +xKr +nvn +cJu +iAW +cJH +cMe +cMo +cMA +cMN +aaU +bZR +caF +caL +caN +aXx +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cNX +cOf +cOh +cOm +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(199,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +ahu +ahu +ahu +apX +aqI +avk +aJq +brp +bsn +aqI +bsF +ahu +ahu +ahu +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +bTH +bTH +cKU +cKY +cLa +cLc +fgS +car +iAW +jon +xjk +cai +cMg +cMq +cMB +cML +cMQ +cKY +cLw +blL +blL +aXx +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cNX +cOf +cOh +cOm +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(200,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +ahu +ahu +apC +apC +ahu +ahu +apC +apC +ahu +ahu +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaU +aXx +aXx +aXx +aXx +aXx +rTW +wbu +cLg +kOG +dVR +xCy +sHB +xkC +cMe +cMr +cMC +cML +cMR +aXx +aXx +aXx +aXx +aXx +aaU +aaU +aaU +aaU +aaU +aaU +blj +abp +blj +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +cNX +cOf +cOh +cOm +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(201,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +amJ +aaU +aaU +aaU +aaU +amJ +aaU +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +bTK +bTK +cKV +cKX +bQS +cLb +cLj +cMo +qvB +cgh +cgA +chq +cMh +cMq +cMD +cMM +cMS +cMT +cLx +cpX +blM +aXx +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaU +aaU +aaa +aaa +aaU +cNX +cOf +cOh +cOm +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(202,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +bTL +bXR +bZP +bZR +opd +cwA +cal +cLl +cLs +cLs +cLs +cLs +cLs +cMs +cME +cMN +aaU +bZR +caJ +bpq +caS +aXx +aaa +aaU +aaa +bal +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +cNy +cNy +cNz +cNz +cNy +cNX +cOf +cOi +cOm +cOr +cOl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(203,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaa +aXx +bTK +bTK +cKW +cKY +bQV +cLc +cLk +ctk +prx +vxU +cLW +ccG +cMi +iQY +cMF +cMO +cMS +cMT +cLy +blM +blM +aXx +aaa +aaU +aaU +bal +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cNy +cNz +cNz +cNy +cNE +cNM +cNO +cNy +cNX +cOf +cOj +cOn +cOj +cOp +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(204,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +opd +aaU +aXx +aXx +aXx +aXx +aXx +opd +cww +cww +cww +cfV +cww +cww +cww +cww +cww +cww +cww +aaU +aXx +aXx +aXx +aXx +aXx +aaa +bal +aaa +bal +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cNz +cNB +cNB +cNB +cNF +cNN +cNR +cNY +cOb +cOg +cOj +cOj +cOj +cOp +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(205,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +bGh +bHg +bHg +bHg +tpQ +bHg +bHg +wPS +aaU +aWj +cww +cJm +cww +aaU +aaa +aaa +aaa +aaa +aaU +aaU +aaa +aaa +aaU +aaa +aaa +aaa +bal +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cNz +cNB +cNB +cNB +cNG +cNN +cNS +cNy +cNX +cNX +cOj +cOj +cOs +cOp +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(206,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aWR +aaa +aaU +aaa +bal +bal +aaU +bal +bal +bal +aaU +aWj +cww +cJn +cww +aaU +bal +bal +bal +bal +aaU +bal +bal +bal +aaU +aaU +bal +bal +bal +aaa +bal +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cNz +cNB +cNB +cNB +cNG +cNN +cNT +cNy +cNX +cNX +cOj +cOj +cOt +cOp +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(207,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aWR +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cbS +abM +ccH +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aWj +aWj +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +bal +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cNz +cNB +cNB +cNB +cNG +cNO +cNO +cNZ +cNX +cNX +cOj +cOj +cOu +cOp +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aWR +aaa +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(208,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +abF +abM +acA +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cbS +abR +ccJ +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +bal +bal +bal +aaU +bal +bal +bal +aaU +bal +bal +bal +aaU +bal +bal +bal +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cNy +cNz +cNz +cNy +cNH +cNP +cNU +cNy +cOc +cNX +cOk +cOo +cOv +cOp +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +cPl +abM +cPq +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(209,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +abJ +abR +acA +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +abp +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +abp +aaU +aaU +aaU +aaU +aaU +aaU +aaU +cbW +abM +aaD +aaU +aaU +aaU +aaU +aaU +aaU +aaU +abp +aaU +aaU +abp +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cNy +cNy +cNz +cNz +cNy +cNX +cNX +cOl +cOp +cOp +cOl +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +abp +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +cPm +abR +cPq +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(210,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +abJ +abR +acB +adc +adc +adL +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +bGK +bGK +bUe +ccc +abR +aaY +cdb +bGK +cdq +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaU +aWj +aWj +aaU +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cPd +cPd +cPd +cPn +abM +cPq +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(211,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +abJ +abM +abR +abM +abR +abM +aZG +aaU +aaU +aaU +aaU +aaU +aaU +aTd +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aTd +aaU +aaU +aaU +aTx +abM +abR +abM +adl +ccr +ccO +abM +abR +abM +aZG +aaU +aaU +aaU +aTd +aaU +aaU +aTd +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +cNQ +cNI +aWj +aWj +aWj +aWj +aaU +aTd +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aTd +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aTx +abM +abR +abM +abR +abM +cPq +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(212,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +abp +abJ +abZ +abZ +abZ +abZ +abZ +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +bGP +bNo +bNo +ccf +ccs +ccP +cdi +bNo +bNo +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cNI +cNI +cNI +aWj +aWj +aWj +aWj +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cPe +cPh +cPh +cPh +cPh +cPh +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(213,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +abp +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +abp +aaU +aaU +aaU +aaU +aaU +aaU +aaU +abM +abM +abM +aaU +aaU +aaU +aaU +aaU +aaU +aaU +abp +aaU +aaU +abp +aaU +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaU +abM +cNI +aWj +abp +abp +aWj +aaU +abp +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +abp +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +aaU +abp +aaU +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(214,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaU +aaa +aWj +brs +brs +aWj +aaa +aaU +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(215,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aWj +aWj +aWj +aWj +aWj +cfq +cfq +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(216,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(217,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +cpB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cpB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cpB +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(218,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +cpB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(219,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(220,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(221,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +cpC +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +ckl +ckl +cpC +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(222,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(223,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(224,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(225,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(226,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(227,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(228,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aWj +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(229,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aWj +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(230,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(231,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(232,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(233,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(234,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(235,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(236,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(237,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(238,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(239,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(240,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(241,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(242,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(243,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(244,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(245,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(246,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(247,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(248,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(249,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(250,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(251,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(252,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(253,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(254,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} +(255,1,1) = {" +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +ckl +"} diff --git a/_maps/map_files/CogStation/FOLDER.txt b/_maps/map_files/CogStation/FOLDER.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/_maps/map_files/CogStation/job_changes.dm b/_maps/map_files/CogStation/job_changes.dm new file mode 100644 index 0000000000..8b1e3e9172 --- /dev/null +++ b/_maps/map_files/CogStation/job_changes.dm @@ -0,0 +1,29 @@ +#define JOB_MODIFICATION_MAP_NAME "CogStation" + +//Medical +/datum/job/scientist/New() + ..() + MAP_JOB_CHECK + access += ACCESS_CHEMISTRY + minimal_access += ACCESS_CHEMISTRY + +//Science + +/datum/job/roboticist/New() + ..() + MAP_JOB_CHECK + access += list(ACCESS_MEDICAL, ACCESS_MORGUE) + minimal_access += list(ACCESS_MEDICAL, ACCESS_MORGUE) + +//Civilian +/datum/job/clown/New() + ..() + MAP_JOB_CHECK + access += ACCESS_MAINT_TUNNELS + minimal_access += ACCESS_MAINT_TUNNELS + +/datum/job/mime/New() + ..() + MAP_JOB_CHECK + access += ACCESS_MAINT_TUNNELS + minimal_access += ACCESS_MAINT_TUNNELS \ No newline at end of file diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 54b5a9c221..61ed3edba7 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -463,10 +463,24 @@ "aaS" = ( /turf/closed/wall/mineral/plastitanium, /area/construction/mining/aux_base) -"abe" = ( -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/stripes/end{ - dir = 1 +"aaT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aaU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) +"aaV" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -494,15 +508,6 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) -"abq" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) "abs" = ( /obj/docking_port/stationary{ dwidth = 1; @@ -12043,7 +12048,7 @@ "aAm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/vomit/old, -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /obj/machinery/newscaster{ @@ -12054,7 +12059,7 @@ /area/crew_quarters/toilet/auxiliary) "aAn" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /obj/machinery/newscaster{ @@ -12066,7 +12071,7 @@ /area/crew_quarters/toilet/auxiliary) "aAo" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /obj/machinery/newscaster{ @@ -19676,7 +19681,7 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aNx" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/prison{ dir = 4 }, /obj/machinery/light/small{ @@ -26177,7 +26182,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/bar/atrium) "aWX" = ( -/obj/structure/piano{ +/obj/structure/musician/piano{ icon_state = "piano" }, /obj/machinery/airalarm{ @@ -59853,6 +59858,7 @@ /area/crew_quarters/heads/captain) "bXh" = ( /obj/structure/toilet{ + contents = newlist(/obj/item/toy/snappop/phoenix); dir = 4 }, /obj/machinery/light{ @@ -82136,7 +82142,7 @@ "cIa" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/vomit/old, -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /obj/machinery/newscaster{ @@ -82147,7 +82153,7 @@ /area/crew_quarters/toilet/restrooms) "cIb" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /obj/machinery/newscaster{ @@ -82159,7 +82165,7 @@ /area/crew_quarters/toilet/restrooms) "cIc" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /obj/machinery/newscaster{ @@ -89648,7 +89654,7 @@ }, /area/medical/storage) "cUP" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 4 }, /obj/effect/decal/cleanable/dirt, @@ -115308,7 +115314,7 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/structure/piano, +/obj/structure/musician/piano, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/crew_quarters/theatre/abandoned) @@ -116751,7 +116757,7 @@ /turf/open/floor/plasteel, /area/maintenance/port/aft) "dPN" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /obj/effect/decal/cleanable/dirt, @@ -126823,15 +126829,6 @@ }, /turf/open/floor/plasteel, /area/science/research/abandoned) -"mvx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) "mxm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/circuit/green, @@ -126841,17 +126838,6 @@ /obj/item/assembly/signaler, /turf/open/floor/plating, /area/crew_quarters/abandoned_gambling_den) -"mLI" = ( -/obj/machinery/door/airlock/external{ - name = "External Docking Port" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) "mPj" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -126914,28 +126900,10 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/maintenance/port/fore) -"nQR" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/computer/shuttle/mining/common, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) "nSh" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"nSS" = ( -/obj/machinery/door/airlock/external{ - name = "External Docking Port" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) "oHk" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -127597,17 +127565,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) -"xdp" = ( -/obj/docking_port/stationary{ - dwidth = 3; - height = 5; - id = "commonmining_home"; - name = "SS13: Common Mining Dock"; - roundstart_template = /datum/map_template/shuttle/mining_common/meta; - width = 7 - }, -/turf/open/space/basic, -/area/space) "xdZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -159669,7 +159626,7 @@ aaa aaa aaa aaa -rqh +aaa rqh aad aad @@ -159925,8 +159882,8 @@ aaa aaa aaa aaa -aaO -aaO +aaa +aaa aaO aaO abf @@ -160181,11 +160138,11 @@ oZp aaa aaa aaa -xdp -mLI -mvx -nSS -abe +aaa +aaa +aaa +aaO +aaT abp abC abC @@ -160439,11 +160396,11 @@ aaa aaa aaa aaa +aaa +aaa aaO -aaO -aaO -nQR -abq +aaU +aaV abD abD abZ @@ -160697,7 +160654,7 @@ aaa aaa aaa aaa -rqh +aaa aaO aaO abf @@ -160954,7 +160911,7 @@ aaa aaa aaa aaa -rqh +aaa rqh aad aad diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 446fe3e519..3eaad62714 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -19002,7 +19002,7 @@ "aEK" = ( /obj/structure/sign/poster/contraband/random, /turf/closed/wall/rust, -/area/hallway/secondary/entry) +/area/security/vacantoffice) "aEL" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -21544,6 +21544,9 @@ pixel_x = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "aIZ" = ( @@ -56558,7 +56561,7 @@ pixel_x = -12; pixel_y = 2 }, -/obj/structure/toilet{ +/obj/structure/toilet/secret/prison{ pixel_y = 16 }, /obj/effect/turf_decal/tile/neutral{ @@ -56908,7 +56911,7 @@ /area/hallway/primary/central) "bKT" = ( /obj/effect/turf_decal/box, -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /obj/structure/mirror{ @@ -56941,7 +56944,7 @@ /area/crew_quarters/toilet/restrooms) "bKU" = ( /obj/effect/turf_decal/box, -/obj/structure/toilet{ +//obj/structure/toilet/secret/low_loot{ dir = 8 }, /obj/structure/mirror{ @@ -59908,7 +59911,7 @@ pixel_x = -12; pixel_y = 2 }, -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ pixel_y = 16 }, /obj/effect/turf_decal/tile/neutral{ @@ -62405,7 +62408,7 @@ name = "EMERGENCY STORAGE" }, /turf/closed/wall, -/area/hallway/secondary/entry) +/area/security/vacantoffice) "bSM" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/external{ @@ -62669,6 +62672,9 @@ pixel_x = -23 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bTf" = ( @@ -62869,17 +62875,23 @@ /turf/closed/wall/rust, /area/hallway/secondary/exit/departure_lounge) "bTy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) "bTz" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral, @@ -62934,6 +62946,9 @@ /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bTE" = ( @@ -62988,7 +63003,7 @@ pixel_x = -12; pixel_y = 2 }, -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ pixel_y = 16 }, /obj/effect/turf_decal/tile/neutral{ @@ -63096,6 +63111,9 @@ c_tag = "Arrivals Dock"; name = "shuttle camera" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bTO" = ( @@ -63168,17 +63186,17 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) "bTS" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 3; - height = 5; - id = "commonmining_home"; - name = "SS13: Common Mining Dock"; - roundstart_template = /datum/map_template/shuttle/mining_common/meta; - width = 7 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/security/vacantoffice) "bTT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -63287,8 +63305,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -63398,12 +63419,8 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "bUl" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) +/turf/closed/wall, +/area/security/vacantoffice) "bUm" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -63464,9 +63481,8 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) "bUt" = ( -/obj/structure/sign/warning/electricshock, /turf/closed/wall/rust, -/area/hallway/secondary/entry) +/area/security/vacantoffice) "bUu" = ( /obj/structure/cable{ icon_state = "1-2" @@ -64674,11 +64690,21 @@ }, /area/maintenance/starboard/aft) "bWn" = ( -/obj/machinery/door/airlock/external{ - name = "Common Mining Dock" +/obj/machinery/door/airlock/maintenance{ + name = "Vacant Office" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/area/security/vacantoffice) "bWo" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -64718,6 +64744,15 @@ /area/security/warden) "bWq" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bWr" = ( @@ -64799,17 +64834,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bWx" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/computer/shuttle/mining/common{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/secondary/entry) +/turf/closed/wall, +/area/security/vacantoffice) "bWy" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -65052,15 +65078,18 @@ dir = 4; pixel_x = -23 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bWV" = ( @@ -65105,6 +65134,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bWY" = ( @@ -65133,6 +65165,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 9 }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bXa" = ( @@ -65289,6 +65324,9 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bXo" = ( @@ -65367,6 +65405,9 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bXv" = ( @@ -65786,6 +65827,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bXY" = ( @@ -66680,6 +66724,9 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bZk" = ( @@ -67429,6 +67476,9 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cal" = ( @@ -67587,7 +67637,7 @@ "cav" = ( /obj/structure/sign/poster/contraband/random, /turf/closed/wall, -/area/hallway/secondary/entry) +/area/security/vacantoffice) "caw" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -67848,6 +67898,10 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "caP" = ( @@ -67855,6 +67909,9 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "caQ" = ( @@ -70240,9 +70297,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -74728,6 +74782,9 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/hallway/secondary/entry) "cmk" = ( @@ -81480,8 +81537,18 @@ /turf/open/floor/plasteel/dark, /area/maintenance/port) "cyG" = ( -/turf/open/floor/plating, -/area/hallway/secondary/entry) +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/vacant"; + name = "Vacant Office APC"; + pixel_y = 24 + }, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/turf/open/floor/wood, +/area/security/vacantoffice) "cyI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sink/kitchen{ @@ -85332,6 +85399,9 @@ "cJp" = ( /obj/effect/turf_decal/tile/red, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "cJq" = ( @@ -87185,9 +87255,22 @@ "cZm" = ( /turf/closed/wall/rust, /area/security/prison) +"dbY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/security/vacantoffice) "dis" = ( /turf/closed/wall/r_wall/rust, /area/bridge) +"dlg" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/security/vacantoffice) "dxq" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral{ @@ -87242,6 +87325,14 @@ icon_state = "panelscorched" }, /area/maintenance/starboard/fore) +"eaJ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/airalarm/directional/west, +/obj/item/twohanded/required/kirbyplants/dead, +/turf/open/floor/wood, +/area/security/vacantoffice) "elZ" = ( /obj/machinery/status_display/evac, /turf/closed/wall/rust, @@ -87338,6 +87429,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"fkk" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/security/vacantoffice) "fyr" = ( /obj/machinery/light{ dir = 4 @@ -87362,6 +87458,11 @@ dir = 8 }, /area/hallway/primary/fore) +"gmF" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/security/vacantoffice) "gnA" = ( /obj/machinery/airalarm{ dir = 1; @@ -87428,9 +87529,20 @@ /obj/structure/sign/departments/evac, /turf/closed/wall/rust, /area/hallway/secondary/exit/departure_lounge) +"gKu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/security/vacantoffice) "gMU" = ( /turf/closed/wall/r_wall/rust, /area/ai_monitored/turret_protected/ai_upload) +"gPA" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/security/vacantoffice) "hgW" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/chair/stool, @@ -87452,6 +87564,12 @@ "hAb" = ( /turf/closed/wall/r_wall/rust, /area/security/courtroom) +"hDh" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/closet/cardboard, +/obj/effect/spawner/bundle/costume/maid, +/turf/open/floor/wood, +/area/security/vacantoffice) "hNk" = ( /turf/closed/wall/r_wall/rust, /area/security/prison) @@ -87660,17 +87778,12 @@ /turf/closed/mineral/random/labormineral, /area/space/nearstation) "jQY" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/table/wood, +/obj/item/paper_bin, +/turf/open/floor/wood{ + icon_state = "wood-broken4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment, -/obj/item/clothing/under/costume/maid, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/starboard/aft) +/area/security/vacantoffice) "jRw" = ( /obj/structure/sign/poster/official/high_class_martini, /turf/closed/wall/r_wall, @@ -87753,6 +87866,18 @@ }, /turf/open/floor/wood, /area/maintenance/port/fore) +"jUX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/security/vacantoffice) "jUZ" = ( /obj/item/poster/random_contraband, /obj/item/poster/random_contraband, @@ -87773,6 +87898,10 @@ "khA" = ( /turf/closed/wall/rust, /area/construction/mining/aux_base) +"koc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/wood, +/area/security/vacantoffice) "krJ" = ( /turf/closed/wall/rust, /area/hallway/secondary/exit/departure_lounge) @@ -87794,6 +87923,12 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plating, /area/maintenance/port/fore) +"kzw" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) "kIJ" = ( /turf/open/floor/wood{ icon_state = "wood-broken7" @@ -87803,6 +87938,11 @@ /obj/structure/sign/nanotrasen, /turf/closed/wall, /area/maintenance/port/fore) +"kXo" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/turf/open/floor/wood, +/area/security/vacantoffice) "leX" = ( /obj/structure/chair/stool, /turf/open/floor/wood{ @@ -87883,6 +88023,17 @@ }, /turf/open/floor/plasteel/dark, /area/science/research) +"mKp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/security/vacantoffice) "mLN" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/mineral/random/labormineral, @@ -87953,6 +88104,19 @@ }, /turf/open/space/basic, /area/hallway/secondary/entry) +"oUc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table/wood, +/obj/item/folder/paperwork, +/turf/open/floor/wood, +/area/security/vacantoffice) +"ppP" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/security/vacantoffice) "pCe" = ( /obj/effect/decal/cleanable/glass, /turf/open/floor/plating/asteroid/airless, @@ -88190,12 +88354,11 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "uqy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/obj/machinery/light{ + dir = 1 }, -/area/maintenance/starboard/aft) +/turf/open/floor/wood, +/area/security/vacantoffice) "uxQ" = ( /obj/effect/decal/cleanable/ash, /turf/closed/mineral/random/labormineral, @@ -88203,9 +88366,20 @@ "uzR" = ( /turf/closed/wall/rust, /area/storage/primary) +"uGi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/security/vacantoffice) +"uRM" = ( +/turf/open/floor/wood, +/area/security/vacantoffice) "uWo" = ( /turf/closed/wall/rust, /area/security/checkpoint/medical) +"vle" = ( +/obj/structure/festivus, +/turf/open/floor/wood, +/area/security/vacantoffice) "vmu" = ( /obj/structure/table/wood, /obj/effect/turf_decal/tile/neutral{ @@ -88231,6 +88405,10 @@ /mob/living/simple_animal/pet/bumbles, /turf/open/floor/plasteel, /area/hydroponics) +"wiK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/wood, +/area/security/vacantoffice) "wmX" = ( /turf/closed/wall/rust, /area/quartermaster/qm) @@ -88328,6 +88506,10 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/security/prison) +"ykB" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/security/vacantoffice) (1,1,1) = {" aaa @@ -125762,7 +125944,7 @@ bOl bSJ bSI ukP -uqy +bGr bEg bAT bOC @@ -126016,10 +126198,10 @@ bNw bTP bUu bWh -bTy +cax cxB ceN -jQY +chZ cxB cjE bXb @@ -126270,15 +126452,15 @@ bOA bOH bSH bNw -bSr +bWx aEK -bSd -bUl -bSd -bUl -bSr bUt -bSd +bWx +bUt +bWx +bWx +bUt +bUt bXj ckS bUu @@ -126527,15 +126709,15 @@ bNM tYn aVM bNx -bSr +bWx cyG -cyG -cyG -cyG -cyG -cyG -cyG -bSr +mKp +oUc +eaJ +uRM +uRM +vle +bWx bXz ccB cgb @@ -126785,14 +126967,14 @@ bZW bWw bTq bSL -cyG -cyG -cyG -cyG -cyG -cyG -cyG -bSr +jQY +kzw +gmF +gKu +uRM +uRM +uRM +bWx bEg bEg bEg @@ -127041,15 +127223,15 @@ cad bhY car bTr -bSr -cyG -cyG -cyG -cyG -cyG -cyG -cyG -bSr +bWx +uqy +wiK +uGi +jUX +koc +dbY +dlg +bWx bYf ceU cgI @@ -127299,14 +127481,14 @@ bQQ bSN bTs cav -cyG -cyG -cyG -cyG -cyG -cyG -cyG -bSr +uRM +fkk +ppP +bTS +ykB +kXo +ykB +bWx bPJ bUN hxn @@ -127555,15 +127737,15 @@ bTk bXL bXx bPe -bSd -cyG -cyG -cyG +bUt +hDh +uRM +uRM bTS -cyG -cyG -cyG -bSr +uRM +ykB +gPA +bWx bPJ bQa hxn @@ -127815,12 +127997,12 @@ bTv krJ krJ krJ -bPe +bOc bWn bWx -bSr +bWx bSL -bSr +bWx bSr cgx hxn @@ -129096,7 +129278,7 @@ bMO bOR cak aIY -cmD +bTy bTe bXu bXn diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm index 30aeb69362..6d1469d483 100644 --- a/_maps/map_files/LambdaStation/lambda.dmm +++ b/_maps/map_files/LambdaStation/lambda.dmm @@ -133,8 +133,10 @@ /area/space/nearstation) "aaA" = ( /turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - name = "asteroid" + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid }, /area/asteroid/nearstation) "aaB" = ( @@ -814,7 +816,12 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "aco" = ( -/turf/closed/mineral/random/low_chance, +/turf/closed/mineral/random/low_chance{ + baseturfs = /turf/open/floor/plating/asteroid; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid + }, /area/asteroid/nearstation) "acp" = ( /turf/closed/wall/r_wall, @@ -1024,7 +1031,6 @@ "acK" = ( /obj/structure/sign/warning/vacuum/external{ pixel_x = 30; - pixel_y = 0 }, /turf/open/floor/plating, /area/science/mixing) @@ -1062,7 +1068,6 @@ desc = "In Space, no one can hear you scream, especially if the microphone has been disabled."; name = "Prison Intercom"; pixel_x = 32; - pixel_y = 0; prison_radio = 1 }, /turf/open/floor/plasteel/dark, @@ -1631,7 +1636,6 @@ "aeh" = ( /obj/structure/table, /obj/machinery/microwave{ - pixel_x = 0; pixel_y = 6 }, /turf/open/floor/plasteel, @@ -1992,7 +1996,6 @@ }, /obj/machinery/status_display/ai{ pixel_x = -32; - pixel_y = 0 }, /turf/open/floor/plasteel/white, /area/science/mixing) @@ -3030,7 +3033,7 @@ /turf/open/floor/plasteel, /area/security/prison) "agR" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/prison{ dir = 8 }, /turf/open/floor/plasteel/freezer, @@ -3136,7 +3139,6 @@ /obj/item/assembly/flash/handheld, /obj/item/reagent_containers/spray/pepper, /obj/item/radio/intercom{ - pixel_x = 0; pixel_y = 28 }, /obj/machinery/light/small{ @@ -3431,7 +3433,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -3482,7 +3483,6 @@ /obj/item/radio/intercom{ desc = "In Space, no one can hear you scream, especially if the microphone has been disabled."; name = "Prison Intercom"; - pixel_x = 0; pixel_y = -32; prison_radio = 1 }, @@ -4489,7 +4489,6 @@ department = "Robotics"; departmentType = 2; name = "Robotics RC"; - pixel_x = 0; pixel_y = 31; receive_ore_updates = 1 }, @@ -4500,7 +4499,6 @@ /obj/machinery/mecha_part_fabricator, /obj/item/radio/intercom{ dir = 2; - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/plasteel, @@ -4750,7 +4748,6 @@ icon_state = "sink_alt"; name = "old sink"; pixel_x = 15; - pixel_y = 0 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, @@ -5333,7 +5330,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -6014,7 +6010,6 @@ /obj/item/radio/intercom{ dir = 2; pixel_x = -29; - pixel_y = 0 }, /turf/open/floor/plasteel, /area/science/xenobiology) @@ -6480,7 +6475,6 @@ }, /obj/item/grenade/barrier{ pixel_x = 6; - pixel_y = 0 }, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -7562,7 +7556,6 @@ idDoor = "xeno_airlock_exterior"; idSelf = "xeno_airlock_control"; name = "Access Button"; - pixel_x = 0; pixel_y = 25 }, /obj/machinery/door/firedoor, @@ -8294,7 +8287,6 @@ dir = 4; name = "Xenobiology APC"; pixel_x = 24; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/purple/filled/line{ icon_state = "trimline_fill"; @@ -9273,7 +9265,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -9489,7 +9480,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/dark, @@ -9593,6 +9583,41 @@ /turf/open/floor/plasteel, /area/security/prison) "asd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid + }, +/area/asteroid/nearstation) +"ase" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/warden) +"asf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, @@ -9609,9 +9634,12 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/security/warden) -"ase" = ( +"asg" = ( /obj/machinery/door/airlock/security{ name = "Armory"; req_access_txt = "3" @@ -9639,9 +9667,25 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/dark, /area/security/armory) -"asf" = ( +"ash" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) +"asi" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -9662,59 +9706,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/security/armory) -"asg" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/security/armory) -"ash" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/armory) -"asi" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, /area/security/armory) "asj" = ( @@ -11032,7 +11026,6 @@ "aut" = ( /obj/item/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel, @@ -11104,49 +11097,47 @@ /turf/open/floor/plasteel/dark, /area/security/armory) "auA" = ( -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/power/apc{ - areastring = "/area/security/armory"; - dir = 2; - name = "Armoury APC"; - pixel_y = -26 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/effect/turf_decal/tile/red, -/obj/machinery/flasher/portable, -/turf/open/floor/plasteel/dark, -/area/security/armory) -"auB" = ( -/obj/structure/rack, -/obj/item/storage/box/rubbershot{ - pixel_x = -3; - pixel_y = 3 +/obj/effect/turf_decal/stripes/corner{ + dir = 1 }, -/obj/item/storage/box/rubbershot{ - pixel_x = -3; - pixel_y = 3 +/obj/effect/turf_decal/stripes/corner{ + dir = 4 }, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -3 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 9 }, -/obj/item/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) +"auB" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark, /area/security/armory) "auC" = ( @@ -11336,7 +11327,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/white, @@ -11554,7 +11544,6 @@ dir = 4; name = "Research Firing Range APC"; pixel_x = 28; - pixel_y = 0 }, /obj/item/target, /obj/item/target, @@ -11806,7 +11795,6 @@ }, /obj/machinery/status_display/ai{ pixel_x = 32; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ icon_state = "trimline_fill"; @@ -11841,10 +11829,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - icon_state = "scrub_map_on-3"; - dir = 8 +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "2-8" }, /turf/open/floor/plasteel/dark, /area/security/armory) @@ -12286,7 +12274,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -12770,7 +12757,6 @@ /obj/item/reagent_containers/syringe, /obj/machinery/newscaster{ pixel_x = -32; - pixel_y = 0 }, /turf/open/floor/plasteel/freezer, /area/security/prison) @@ -12896,7 +12882,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -12945,7 +12930,6 @@ /obj/machinery/requests_console{ department = "Security"; name = "Security RC"; - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plasteel, @@ -13192,7 +13176,6 @@ /obj/structure/bed, /obj/machinery/flasher{ id = "insaneflash"; - pixel_x = 0; pixel_y = -26 }, /turf/open/floor/plasteel/freezer, @@ -13653,26 +13636,26 @@ /turf/closed/wall, /area/crew_quarters/heads/hos) "ayk" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, +/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/security/warden) +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + icon_state = "scrub_map_on-3"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/armory) "ayl" = ( /obj/structure/table/wood, /obj/effect/turf_decal/tile/red{ @@ -13687,7 +13670,6 @@ areastring = "/area/crew_quarters/heads/hos"; dir = 1; name = "Head of Security's Office APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -13703,7 +13685,6 @@ }, /obj/machinery/recharger, /obj/structure/reagent_dispensers/peppertank{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/dark, @@ -13770,10 +13751,8 @@ id = "hosspace"; name = "Space Shutters Control"; pixel_x = 25; - pixel_y = 0 }, /obj/machinery/status_display/evac{ - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/dark, @@ -15650,7 +15629,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ @@ -15723,7 +15701,6 @@ /area/crew_quarters/heads/hor) "aBO" = ( /obj/item/storage/secure/safe{ - pixel_x = 0; pixel_y = -32 }, /obj/structure/table, @@ -16459,7 +16436,6 @@ /obj/machinery/iv_drip, /obj/structure/sign/poster/official/cleanliness{ pixel_x = 32; - pixel_y = 0 }, /turf/open/floor/plasteel/white, /area/security/brig) @@ -16617,7 +16593,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/status_display/evac{ pixel_x = 32; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/purple/filled/line{ icon_state = "trimline_fill"; @@ -16882,7 +16857,6 @@ }, /obj/machinery/status_display/evac{ pixel_x = 32; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ icon_state = "trimline_fill"; @@ -17999,7 +17973,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/white, @@ -18135,7 +18108,6 @@ }, /obj/machinery/status_display/evac{ pixel_x = 32; - pixel_y = 0 }, /turf/open/floor/plasteel/grimy, /area/hallway/primary/fore) @@ -20085,7 +20057,6 @@ /obj/machinery/requests_console{ department = "Law office"; pixel_x = 31; - pixel_y = 0 }, /turf/open/floor/plasteel/grimy, /area/lawoffice) @@ -21252,7 +21223,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -21539,11 +21509,11 @@ name = "Brig Blast door" }, /obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/red/corner{ icon_state = "warninglinecorner_red"; - dir = 4 + dir = 8 }, -/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/security/brig) "aLI" = ( @@ -21565,11 +21535,11 @@ name = "Brig Blast door" }, /obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/red/corner{ icon_state = "warninglinecorner_red"; - dir = 1 + dir = 4 }, -/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/security/brig) "aLK" = ( @@ -22094,7 +22064,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/light_switch{ pixel_x = -28; - pixel_y = 0 }, /turf/open/floor/plasteel/grimy, /area/lawoffice) @@ -22568,7 +22537,6 @@ /obj/structure/filingcabinet/chestdrawer, /obj/structure/sign/poster/official/enlist{ pixel_x = 32; - pixel_y = 0 }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/neutral{ @@ -22692,7 +22660,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -22718,7 +22685,6 @@ dir = 8; name = "Quartermaster's Office APC"; pixel_x = -25; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/yellow/filled/line{ icon_state = "trimline_fill"; @@ -23294,7 +23260,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -24474,7 +24439,6 @@ }, /obj/structure/sign/nanotrasen{ pixel_x = 32; - pixel_y = 0 }, /turf/open/floor/plasteel, /area/security/brig) @@ -24719,10 +24683,8 @@ /obj/machinery/computer/med_data/laptop, /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = -32; - pixel_y = 0 }, /obj/structure/extinguisher_cabinet{ - pixel_x = 0; pixel_y = 29 }, /obj/machinery/light/small{ @@ -25320,7 +25282,6 @@ /obj/structure/dresser, /obj/item/radio/intercom{ dir = 2; - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/carpet/blue, @@ -26514,7 +26475,6 @@ dir = 8; name = "Captain's Office APC"; pixel_x = -25; - pixel_y = 0 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -26861,9 +26821,12 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, +/obj/machinery/computer/bounty{ + icon_state = "computer"; + dir = 1 + }, /turf/open/floor/plasteel, /area/quartermaster/storage) "aVy" = ( @@ -27269,15 +27232,14 @@ /turf/open/floor/plasteel, /area/hydroponics) "aWq" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, /obj/effect/turf_decal/trimline/green/filled/line{ icon_state = "trimline_fill"; dir = 8 }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, /turf/open/floor/plasteel, /area/hydroponics) "aWr" = ( @@ -27490,7 +27452,7 @@ req_access_txt = "19" }, /obj/machinery/door/poddoor/preopen{ - id = "bridgedoors"; + id = "bridgemaintenance"; name = "Bridge Access Blast door" }, /obj/effect/turf_decal/delivery, @@ -27813,7 +27775,6 @@ /obj/machinery/power/apc/highcap/five_k{ dir = 1; name = "Hydroponics APC"; - pixel_x = 0; pixel_y = 23 }, /obj/effect/turf_decal/trimline/green/filled/line{ @@ -28204,7 +28165,9 @@ "aYd" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/eastright, -/obj/machinery/door/window/brigdoor/westright, +/obj/machinery/door/window/brigdoor/westright{ + req_access_txt = "57" + }, /obj/machinery/door/poddoor/shutters/preopen{ id = "hop"; name = "Privacy Shutters" @@ -28314,23 +28277,6 @@ /area/crew_quarters/bar/atrium) "aYk" = ( /obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ - dir = 4 - }, -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/crew_quarters/bar/atrium) -"aYl" = ( -/obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 }, @@ -28347,8 +28293,22 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, +/obj/machinery/airalarm/directional/south, /turf/open/floor/plasteel, /area/crew_quarters/bar) +"aYl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + icon_state = "trimline_fill"; + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hydroponics) "aYm" = ( /obj/structure/chair{ dir = 8 @@ -28398,12 +28358,14 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar) "aYp" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/turf_decal/trimline/green/filled/line{ icon_state = "trimline_fill"; - dir = 1 + dir = 8 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 }, /turf/open/floor/plasteel, /area/hydroponics) @@ -28441,10 +28403,6 @@ /turf/open/floor/plasteel, /area/hydroponics) "aYv" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 9 }, @@ -28455,6 +28413,10 @@ icon_state = "trimline_fill"; dir = 4 }, +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, /turf/open/floor/plasteel, /area/hydroponics) "aYw" = ( @@ -28503,7 +28465,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -29159,7 +29120,6 @@ frequency = 1423; listening = 0; name = "Interrogation Intercom"; - pixel_x = 0; pixel_y = -24 }, /obj/effect/turf_decal/tile/neutral{ @@ -29300,7 +29260,6 @@ }, /obj/machinery/newscaster{ pixel_x = 32; - pixel_y = 0 }, /turf/open/floor/plasteel, /area/crew_quarters/bar) @@ -29403,19 +29362,27 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/button{ +/obj/machinery/button/door{ id = "bridgespace"; name = "Bridge External Shutters"; pixel_x = -25; - pixel_y = 35 + pixel_y = 35; + req_access_txt = "19" }, -/obj/machinery/button{ - id = "bridgespace"; - name = "Bridge Access Shutters"; +/obj/machinery/button/door{ + id = "bridgedoors"; + name = "Bridge Access Blastdoors"; pixel_x = -25; pixel_y = 26; req_access_txt = "19" }, +/obj/machinery/button/door{ + id = "bridgemaintenance"; + name = "Bridge Maintenance Blastdoor"; + pixel_x = -35; + pixel_y = 30; + req_access_txt = "19" + }, /turf/open/floor/plasteel/dark, /area/bridge) "bag" = ( @@ -29820,7 +29787,9 @@ name = "Cargo Desk"; req_access_txt = "50" }, -/obj/machinery/door/window/brigdoor/eastright, +/obj/machinery/door/window/brigdoor/eastright{ + req_access_txt = "31" + }, /obj/structure/table/reinforced, /turf/open/floor/plating, /area/hallway/primary/central) @@ -30369,7 +30338,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/bar/atrium) "bbF" = ( -/obj/structure/piano, +/obj/structure/musician/piano, /obj/structure/window/reinforced{ dir = 8 }, @@ -31336,6 +31305,7 @@ /area/security/vacantoffice/b) "bdG" = ( /obj/machinery/airalarm/directional/north, +/obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/grimy, /area/security/vacantoffice/b) "bdH" = ( @@ -31389,7 +31359,6 @@ "bdK" = ( /obj/machinery/requests_console{ department = "EVA"; - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel, @@ -31895,7 +31864,6 @@ dir = 8; name = "Council Chambers APC"; pixel_x = -25; - pixel_y = 0 }, /turf/open/floor/carpet, /area/bridge/meeting_room) @@ -32271,7 +32239,6 @@ dir = 8; name = "Cargo Security APC"; pixel_x = -25; - pixel_y = 0 }, /obj/machinery/camera{ c_tag = "Security Post - Cargo"; @@ -33377,7 +33344,6 @@ /area/crew_quarters/cafeteria) "bhD" = ( /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel, @@ -33576,14 +33542,20 @@ /turf/open/floor/plating, /area/maintenance/disposal) "bhX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/turf/closed/mineral{ - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - name = "asteroid" +/obj/machinery/power/apc{ + areastring = "/area/security/armory"; + dir = 2; + name = "Armoury APC"; + pixel_y = -26 }, -/area/asteroid/nearstation) +/obj/effect/turf_decal/tile/red, +/obj/machinery/flasher/portable, +/obj/structure/cable, +/turf/open/floor/plasteel/dark, +/area/security/armory) "bhY" = ( /obj/effect/landmark/event_spawn, /obj/structure/disposalpipe/segment, @@ -33754,8 +33726,22 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/cafeteria) "bip" = ( -/turf/closed/wall, -/area/maintenance/central) +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/recharger, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "biq" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -33842,14 +33828,31 @@ /turf/closed/wall, /area/maintenance/department/cargo) "biA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 +/obj/structure/rack, +/obj/item/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 }, -/turf/closed/mineral{ - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - name = "asteroid" +/obj/item/storage/box/rubbershot{ + pixel_x = -3; + pixel_y = 3 }, -/area/asteroid/nearstation) +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/storage/box/rubbershot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/dark, +/area/security/armory) "biB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -36398,7 +36401,6 @@ dir = 8; name = "Gateway APC"; pixel_x = -25; - pixel_y = 0 }, /obj/effect/turf_decal/stripes/end{ dir = 8 @@ -36928,7 +36930,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/cable, /obj/machinery/power/apc{ - areastring = "/area/vacant_room/office"; + areastring = "/area/secuirty/vacantoffice/b"; dir = 4; name = "Vacant Office APC"; pixel_x = 27 @@ -37438,7 +37440,6 @@ dir = 1 }, /obj/item/radio/intercom{ - pixel_x = 0; pixel_y = -29 }, /turf/open/floor/plasteel, @@ -37962,22 +37963,17 @@ /turf/open/floor/plating, /area/hallway/secondary/exit/departure_lounge) "bpP" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 2; + name = "Fuel Pipe to Incinerator" }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/recharger, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "1-8" }, +/obj/machinery/airalarm/directional/east, /turf/open/floor/plasteel, -/area/hallway/secondary/exit/departure_lounge) +/area/maintenance/disposal/incinerator) "bpQ" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -38110,7 +38106,6 @@ departmentType = 0; name = "Genetics Requests Console"; pixel_x = -32; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/blue/filled/line{ icon_state = "trimline_fill"; @@ -38250,13 +38245,18 @@ /turf/open/floor/plasteel/freezer, /area/medical/abandoned) "bqt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/trimline/green/filled/line{ + icon_state = "trimline_fill"; + dir = 8 }, -/obj/machinery/airalarm/directional/south, -/obj/item/twohanded/required/kirbyplants/random, +/obj/item/radio/intercom{ + dir = 8; + pixel_x = -28 + }, +/obj/structure/table, +/obj/machinery/smartfridge/disks, /turf/open/floor/plasteel, -/area/crew_quarters/cafeteria) +/area/hydroponics) "bqu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -39317,7 +39317,6 @@ }, /obj/structure/chair, /obj/item/radio/intercom{ - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel, @@ -40717,7 +40716,6 @@ departmentType = 2; name = "Science Requests Console"; pixel_x = -32; - pixel_y = 0; receive_ore_updates = 1 }, /obj/machinery/camera/autoname{ @@ -41407,7 +41405,6 @@ /obj/structure/table/wood, /obj/machinery/newscaster{ pixel_x = 32; - pixel_y = 0 }, /obj/item/folder, /obj/item/folder, @@ -41439,9 +41436,6 @@ /turf/open/floor/plasteel/white, /area/medical/chemistry) "bwe" = ( -/obj/machinery/door/airlock/medical{ - name = "Medical Storage" - }, /obj/machinery/door/firedoor, /obj/structure/cable{ icon_state = "1-2" @@ -41458,6 +41452,10 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Storage"; + req_access_txt = "5" + }, /turf/open/floor/plasteel/white, /area/medical/storage) "bwf" = ( @@ -43735,7 +43733,6 @@ dir = 8; name = "Cloning Lab APC"; pixel_x = -25; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/blue/filled/line{ icon_state = "trimline_fill"; @@ -44590,7 +44587,6 @@ dir = 4 }, /obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 0; pixel_y = 30 }, /turf/open/floor/plasteel/cult{ @@ -44828,11 +44824,18 @@ /turf/closed/wall, /area/medical/medbay/front_office) "bCr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/trimline/green/filled/line{ icon_state = "trimline_fill"; dir = 4 }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ + icon_state = "scrub_map_on-3"; + dir = 1 + }, /turf/open/floor/plasteel/white, /area/medical/virology) "bCs" = ( @@ -44874,7 +44877,6 @@ id = "cmoshutter"; name = "CMO Office Shutters"; pixel_x = -25; - pixel_y = 0; req_access_txt = "40" }, /turf/open/floor/plasteel/white, @@ -45198,7 +45200,7 @@ }, /obj/effect/turf_decal/trimline/green/filled/line{ icon_state = "trimline_fill"; - dir = 8 + dir = 10 }, /turf/open/floor/plasteel/white, /area/medical/virology) @@ -46317,8 +46319,12 @@ /turf/open/floor/plasteel, /area/security/checkpoint/engineering) "bEP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + icon_state = "trimline_fill"; + dir = 8 }, /turf/open/floor/plasteel/white, /area/medical/virology) @@ -46399,13 +46405,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - icon_state = "trimline_fill"; - dir = 8 - }, /turf/open/floor/plasteel/white, /area/medical/virology) "bEY" = ( @@ -46766,9 +46765,8 @@ /turf/open/floor/plasteel, /area/security/checkpoint/engineering) "bFF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/white, -/area/medical/virology) +/turf/open/floor/plating/asteroid, +/area/space) "bFG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -46867,20 +46865,29 @@ /turf/open/floor/plating/asteroid, /area/hydroponics/garden/abandoned) "bFS" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/green/filled/line{ - icon_state = "trimline_fill"; - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - icon_state = "scrub_map_on-3"; +/obj/effect/turf_decal/tile/blue{ dir = 1 }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/door/airlock/medical{ + name = "Medbay Break Room"; + req_access_txt = "5" + }, /turf/open/floor/plasteel/white, -/area/medical/virology) +/area/medical) "bFT" = ( /obj/item/seeds/berry, /turf/open/floor/plating, @@ -46933,7 +46940,6 @@ department = "Security"; departmentType = 5; pixel_x = -30; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/red/filled/line{ icon_state = "trimline_fill"; @@ -47010,7 +47016,6 @@ /obj/machinery/power/apc/highcap/five_k{ dir = 1; name = "Central Hall APC"; - pixel_x = 0; pixel_y = 25 }, /obj/structure/cable{ @@ -47091,12 +47096,23 @@ /area/medical/medbay/central) "bGn" = ( /obj/structure/table, -/obj/effect/turf_decal/trimline/green/filled/line{ +/obj/item/circular_saw{ + pixel_y = 2 + }, +/obj/item/scalpel{ + pixel_y = 15 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ icon_state = "trimline_fill"; - dir = 4 + dir = 9 + }, +/obj/item/radio/intercom{ + frequency = 1485; + name = "Station Intercom (Medbay)"; + pixel_x = -30 }, /turf/open/floor/plasteel/white, -/area/medical/virology) +/area/medical/surgery) "bGo" = ( /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ @@ -47829,7 +47845,6 @@ icon_state = "sink_alt"; name = "old sink"; pixel_x = 15; - pixel_y = 0 }, /turf/open/floor/wood, /area/maintenance/bar) @@ -48899,26 +48914,21 @@ /turf/open/floor/plasteel/white, /area/medical/surgery) "bJE" = ( -/obj/machinery/door/airlock/medical{ - name = "Medical Break Room"; - req_one_access_txt = "47" - }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 5 + }, /obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/effect/turf_decal/trimline/blue/filled/line{ + icon_state = "trimline_fill"; + dir = 9 }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24 }, /turf/open/floor/plasteel/white, /area/medical) @@ -49046,19 +49056,14 @@ /turf/open/floor/plasteel/white, /area/medical/surgery) "bJN" = ( -/obj/structure/table, -/obj/item/circular_saw{ - pixel_y = 2 - }, -/obj/item/scalpel{ - pixel_y = 15 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, +/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/blue/filled/line{ icon_state = "trimline_fill"; - dir = 9 + dir = 8 }, /turf/open/floor/plasteel/white, -/area/medical/surgery) +/area/medical) "bJO" = ( /obj/structure/cable{ icon_state = "2-4" @@ -49312,20 +49317,17 @@ /turf/open/floor/plating, /area/maintenance/port) "bKk" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/vacantoffice/a"; + dir = 8; + name = "Vacant Office APC"; + pixel_x = -25 + }, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 5 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line{ - icon_state = "trimline_fill"; - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/medical) +/turf/open/floor/wood, +/area/security/vacantoffice/a) "bKl" = ( /obj/structure/cable{ icon_state = "2-8" @@ -49665,18 +49667,12 @@ /turf/open/floor/plating, /area/hydroponics/garden/abandoned) "bKT" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/disposalpipe/segment, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24 +/obj/item/poster/random_contraband, +/turf/open/floor/plating, +/turf/open/floor/plating{ + icon_state = "platingdmg2" }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - icon_state = "trimline_fill"; - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical) +/area/maintenance/aft) "bKU" = ( /obj/effect/landmark/start/medical_doctor, /turf/open/floor/plasteel/white, @@ -49983,7 +49979,6 @@ /obj/machinery/light/small, /obj/machinery/vending/wallmed{ pixel_x = -28; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/blue/filled/line{ icon_state = "trimline_fill"; @@ -50693,7 +50688,6 @@ areastring = "/area/ai_monitored/turret_protected/aisat_interior"; dir = 1; name = "MiniSat Antechamber APC"; - pixel_x = 0; pixel_y = 29 }, /obj/effect/turf_decal/tile/blue{ @@ -52868,7 +52862,6 @@ dir = 2; name = "MiniSat Foyer APC"; pixel_x = -29; - pixel_y = 0 }, /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -52936,7 +52929,6 @@ dir = 8; name = "MiniSat Exterior APC"; pixel_x = -24; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/blue/filled/line{ icon_state = "trimline_fill"; @@ -53390,23 +53382,25 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bQO" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/chair/comfy/black{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark/telecomms, -/area/ai_monitored/turret_protected/aisat/foyer) +/obj/machinery/button/door{ + id = "bridgedoors"; + name = "Bridge Access Blastdoors"; + pixel_x = 26; + pixel_y = 32; + req_access_txt = "19" + }, +/obj/machinery/button/door{ + id = "bridgespace"; + name = "Bridge External Shutters"; + pixel_x = 36; + pixel_y = 32; + req_access_txt = "19" + }, +/turf/open/floor/carpet, +/area/bridge) "bQP" = ( /obj/machinery/light{ dir = 8; @@ -53596,7 +53590,6 @@ /obj/machinery/requests_console{ department = "Tool Storage"; departmentType = 0; - pixel_x = 0; pixel_y = 30 }, /obj/item/folder/yellow, @@ -53757,7 +53750,6 @@ }, /obj/effect/turf_decal/tile/neutral, /obj/machinery/newscaster{ - pixel_x = 0; pixel_y = 32 }, /obj/effect/turf_decal/loading_area{ @@ -54779,10 +54771,14 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "bTy" = ( -/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ + dir = 4 + }, /turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - name = "asteroid" + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid }, /area/asteroid/nearstation) "bTz" = ( @@ -55102,7 +55098,6 @@ dir = 8; name = "Tool Storage APC"; pixel_x = -25; - pixel_y = 0 }, /obj/effect/turf_decal/tile/brown{ dir = 1 @@ -55550,7 +55545,6 @@ dir = 4; name = "Fore Maintenance APC"; pixel_x = 24; - pixel_y = 0 }, /turf/open/floor/plating, /area/maintenance/fore) @@ -55857,7 +55851,6 @@ }, /obj/structure/sign/directions/evac{ dir = 4; - pixel_x = 0; pixel_y = 24 }, /turf/open/floor/plasteel, @@ -55985,7 +55978,6 @@ /obj/machinery/announcement_system, /obj/machinery/status_display/ai{ pixel_x = 31; - pixel_y = 0 }, /turf/open/floor/carpet, /area/tcommsat/computer) @@ -57037,7 +57029,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -57319,7 +57310,6 @@ }, /obj/machinery/status_display/evac{ pixel_x = 31; - pixel_y = 0 }, /turf/open/floor/carpet, /area/tcommsat/computer) @@ -57473,7 +57463,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -57505,7 +57494,6 @@ id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -38; - pixel_y = 0; req_access_txt = "24" }, /turf/open/floor/plasteel, @@ -57775,7 +57763,6 @@ freerange = 1; name = "Station Intercom (Telecomms)"; pixel_x = 30; - pixel_y = 0 }, /turf/open/floor/carpet, /area/tcommsat/computer) @@ -58585,7 +58572,6 @@ dir = 4; name = "Chief Engineer's APC"; pixel_x = 26; - pixel_y = 0 }, /obj/structure/cable{ icon_state = "0-2"; @@ -58710,7 +58696,6 @@ dir = 8; name = "Locker Room APC"; pixel_x = -28; - pixel_y = 0 }, /turf/open/floor/plasteel, /area/crew_quarters/locker) @@ -59321,7 +59306,6 @@ dir = 4; name = "Dormitories APC"; pixel_x = 24; - pixel_y = 0 }, /obj/structure/cable{ icon_state = "0-8" @@ -59820,11 +59804,14 @@ /turf/closed/wall/r_wall, /area/engine/break_room) "cce" = ( +/obj/structure/lattice, /turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - name = "asteroid" + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid }, -/area/maintenance/department/cargo) +/area/asteroid/nearstation) "ccf" = ( /turf/closed/wall/r_wall, /area/maintenance/starboard/aft) @@ -60001,7 +59988,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "ccw" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 4 }, /obj/machinery/light/small{ @@ -60258,7 +60245,6 @@ dir = 4; name = "Chief Medical Officer's Quarters APC"; pixel_x = 24; - pixel_y = 0 }, /obj/structure/cable{ icon_state = "0-8" @@ -60537,7 +60523,7 @@ /turf/open/floor/plating, /area/maintenance/fore) "cdE" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 4 }, /obj/effect/landmark/blobstart, @@ -60571,7 +60557,7 @@ /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet) "cdH" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /obj/machinery/light/small{ @@ -60583,7 +60569,6 @@ name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 25; - pixel_y = 0; specialfunctions = 4 }, /obj/machinery/newscaster{ @@ -61003,7 +60988,6 @@ /area/maintenance/department/crew_quarters/dorms) "ceK" = ( /obj/structure/sign/warning/radiation/rad_area{ - pixel_x = 0; pixel_y = -32 }, /turf/open/floor/plating, @@ -61051,7 +61035,6 @@ /obj/structure/bed, /obj/machinery/status_display/ai{ pixel_x = -32; - pixel_y = 0 }, /turf/open/floor/carpet/blue, /area/crew_quarters/heads/cmo/private) @@ -61524,7 +61507,6 @@ areastring = "/area/chapel/main"; dir = 1; name = "Chapel APC"; - pixel_x = 0; pixel_y = 24 }, /obj/structure/cable{ @@ -62486,7 +62468,6 @@ "cig" = ( /obj/structure/sign/warning/radiation/rad_area{ pixel_x = -32; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/yellow/filled/line{ icon_state = "trimline_fill"; @@ -62847,7 +62828,7 @@ }, /area/maintenance/aft) "ciL" = ( -/obj/structure/piano, +/obj/structure/musician/piano, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -63236,7 +63217,6 @@ /area/maintenance/aft) "cjC" = ( /obj/structure/mirror{ - pixel_x = 0; pixel_y = -28 }, /obj/item/lipstick/black, @@ -63575,7 +63555,6 @@ /obj/machinery/vending/coffee, /obj/machinery/newscaster{ pixel_x = 30; - pixel_y = 0 }, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) @@ -63872,7 +63851,6 @@ }, /obj/machinery/newscaster{ pixel_x = -32; - pixel_y = 0 }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) @@ -64015,7 +63993,6 @@ dir = 1; name = "SMES room APC"; pixel_x = -26; - pixel_y = 0 }, /obj/structure/cable{ icon_state = "0-2"; @@ -64341,7 +64318,6 @@ broadcasting = 1; frequency = 1481; name = "Confessional Intercom"; - pixel_x = 0; pixel_y = -30 }, /obj/machinery/light/small{ @@ -64362,7 +64338,6 @@ broadcasting = 1; frequency = 1481; name = "Confessional Intercom"; - pixel_x = 0; pixel_y = 30 }, /obj/machinery/light/small{ @@ -64533,14 +64508,13 @@ /turf/open/floor/plasteel, /area/engine/atmos) "cmq" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, /turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - name = "asteroid" + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid }, -/area/asteroid/nearstation) +/area/maintenance/department/cargo) "cmr" = ( /obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 5 @@ -64819,24 +64793,9 @@ /turf/open/floor/plating, /area/chapel/main) "cmT" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/obj/machinery/button{ - id = "bridgespace"; - name = "Bridge External Shutters"; - pixel_x = 36; - pixel_y = 30 - }, -/obj/machinery/button{ - id = "bridgespace"; - name = "Bridge Access Shutters"; - pixel_x = 26; - pixel_y = 30; - req_access_txt = "19" - }, -/turf/open/floor/carpet, -/area/bridge) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall/r_wall, +/area/maintenance/disposal/incinerator) "cmU" = ( /obj/structure/flora/ausbushes/ppflowers, /turf/open/floor/grass, @@ -64890,7 +64849,6 @@ dir = 1; name = "Atmospherics APC"; pixel_x = -27; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ icon_state = "trimline_fill"; @@ -65489,17 +65447,14 @@ /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "coh" = ( -/obj/machinery/power/apc{ - areastring = "/area/vacant_room/office/a"; - dir = 8; - name = "Vacant Office APC"; - pixel_x = -25 - }, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "0-4" }, -/turf/open/floor/wood, -/area/security/vacantoffice/a) +/turf/open/floor/plating, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/department/electrical) "coi" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/dark/visible{ @@ -66985,13 +66940,14 @@ /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) "crd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/power/apc/auto_name/north, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) +/turf/open/floor/plating, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/aft) "cre" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ @@ -67020,17 +66976,6 @@ }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) -"crh" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 2; - name = "Fuel Pipe to Incinerator" - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/disposal/incinerator) "cri" = ( /obj/structure/cable{ icon_state = "1-2" @@ -68564,7 +68509,6 @@ areastring = "/area/hydroponics/garden"; dir = 2; name = "Garden APC"; - pixel_x = 0; pixel_y = -26 }, /obj/structure/cable{ @@ -68773,10 +68717,6 @@ /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) -"cuO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/visible, -/turf/closed/wall/r_wall, -/area/maintenance/disposal/incinerator) "cuP" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -69010,7 +68950,8 @@ /turf/open/floor/plating, /area/engine/atmos) "cvr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + icon_state = "pipe11-2"; dir = 5 }, /turf/closed/wall/r_wall, @@ -69033,7 +68974,7 @@ /turf/open/space, /area/engine/atmos) "cvu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/closed/wall/r_wall, @@ -69275,7 +69216,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /obj/machinery/camera/autoname{ @@ -69326,7 +69266,6 @@ dir = 4; name = "Auxillary Base Construction APC"; pixel_x = 24; - pixel_y = 0 }, /obj/structure/cable{ icon_state = "0-2" @@ -70259,14 +70198,9 @@ }, /turf/open/floor/plating, /area/hallway/primary/fore) -"cyf" = ( -/obj/machinery/the_singularitygen/tesla, -/turf/open/floor/plating, -/area/engine/engineering) "cyg" = ( -/obj/effect/turf_decal/box, -/obj/machinery/the_singularitygen, -/turf/open/floor/plasteel, +/obj/machinery/the_singularitygen/tesla, +/turf/open/floor/plating/airless, /area/engine/engineering) "cyh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -70333,7 +70267,6 @@ }, /obj/item/radio/intercom{ pixel_x = -26; - pixel_y = 0 }, /obj/item/stack/cable_coil/white{ pixel_x = 3; @@ -71924,22 +71857,6 @@ /obj/structure/grille, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"cAV" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - icon_state = "trimline_fill"; - dir = 8 - }, -/obj/item/radio/intercom{ - dir = 8; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/hydroponics) "cAW" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -72099,7 +72016,6 @@ }, /obj/item/radio/intercom{ pixel_x = 26; - pixel_y = 0 }, /turf/open/floor/plasteel/dark/corner, /area/engine/atmos) @@ -72243,7 +72159,6 @@ dir = 4; name = "Starboard Hallway APC"; pixel_x = 24; - pixel_y = 0 }, /obj/structure/cable{ icon_state = "0-8" @@ -72696,7 +72611,6 @@ name = "Auxillary Base Monitor"; network = list("auxbase"); pixel_x = 25; - pixel_y = 0 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/cable{ @@ -73558,7 +73472,6 @@ /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, /obj/item/radio/intercom{ - pixel_x = 0; pixel_y = 23 }, /turf/open/floor/plasteel/dark, @@ -74001,7 +73914,6 @@ light_color = "#cee5d2" }, /obj/machinery/status_display/evac{ - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel/white, @@ -74571,7 +74483,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/structure/fireaxecabinet{ pixel_x = -31; - pixel_y = 0 }, /obj/effect/turf_decal/trimline/neutral/filled/line{ icon_state = "trimline_fill"; @@ -75429,7 +75340,6 @@ id = "aux_base_shutters"; name = "Public Shutters Control"; pixel_x = 24; - pixel_y = 0; req_one_access_txt = "32;47;48" }, /obj/machinery/camera{ @@ -76487,7 +76397,6 @@ /obj/machinery/flasher{ id = "brigflashdoor"; pixel_x = -26; - pixel_y = 0 }, /turf/open/floor/plasteel, /area/security/brig) @@ -77106,7 +77015,6 @@ /obj/effect/turf_decal/tile/red, /obj/item/storage/secure/safe/HoS{ pixel_x = 36; - pixel_y = 0 }, /obj/machinery/status_display/ai{ pixel_y = -32 @@ -78598,7 +78506,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel, @@ -78632,7 +78539,6 @@ freerange = 1; name = "Station Intercom (Telecomms)"; pixel_x = 30; - pixel_y = 0 }, /turf/open/floor/plasteel/white, /area/science/xenobiology) @@ -78643,7 +78549,6 @@ /obj/item/radio/intercom{ dir = 1; name = "Station Intercom"; - pixel_x = 0; pixel_y = -28 }, /turf/open/floor/plasteel/dark, @@ -79436,11 +79341,16 @@ /turf/open/floor/engine, /area/engine/engineering) "cNv" = ( -/turf/closed/mineral{ - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - name = "asteroid" +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 }, -/area/maintenance/department/crew_quarters/dorms) +/turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid + }, +/area/asteroid/nearstation) "cNw" = ( /obj/structure/cable{ icon_state = "1-2" @@ -79486,7 +79396,6 @@ id = "ewradiation"; name = "Shutters Control"; pixel_x = 33; - pixel_y = 0; req_access_txt = "11" }, /turf/open/floor/plasteel, @@ -81797,7 +81706,6 @@ /obj/structure/bed/dogbed/ian, /obj/item/radio/intercom{ dir = 2; - pixel_x = 0; pixel_y = 28 }, /turf/open/floor/wood, @@ -83777,7 +83685,6 @@ dir = 1 }, /obj/structure/sign/warning/securearea{ - pixel_x = 0; pixel_y = 32 }, /turf/open/floor/plasteel, @@ -83795,7 +83702,6 @@ areastring = "/area/engine/storage"; dir = 2; name = "Engineering Storage APC"; - pixel_x = 0; pixel_y = -26 }, /obj/structure/cable, @@ -84016,7 +83922,7 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "cXf" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /obj/machinery/light/small{ @@ -84182,7 +84088,6 @@ dir = 4; name = "Electrical Maintenance APC"; pixel_x = 24; - pixel_y = 0 }, /obj/structure/cable{ icon_state = "0-8" @@ -84364,7 +84269,6 @@ "cXO" = ( /obj/machinery/status_display/ai{ pixel_x = -32; - pixel_y = 0 }, /obj/machinery/power/apc/highcap/ten_k{ areastring = "/area/crew_quarters/heads/chief/private"; @@ -84400,18 +84304,6 @@ }, /turf/open/floor/plasteel, /area/quartermaster/qm/private) -"cXS" = ( -/obj/item/coin/twoheaded{ - name = "quarter" - }, -/turf/closed/wall, -/area/quartermaster/sorting) -"cXT" = ( -/obj/item/coin/twoheaded{ - name = "quarter" - }, -/turf/closed/wall, -/area/janitor) "cXU" = ( /obj/structure/cable/yellow{ icon_state = "2-8" @@ -84468,7 +84360,6 @@ /obj/machinery/camera/autoname, /obj/item/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/cafeteria, @@ -84492,7 +84383,6 @@ }, /obj/item/radio/intercom{ name = "Station Intercom"; - pixel_x = 0; pixel_y = 26 }, /turf/open/floor/plasteel/cafeteria, @@ -84583,30 +84473,18 @@ /turf/open/floor/plasteel, /area/engine/engineering) "cYi" = ( -/obj/item/poster/random_contraband, -/turf/open/floor/plating, -/turf/open/floor/plating{ - icon_state = "platingdmg2" +/turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid }, -/area/maintenance/aft) +/area/maintenance/department/crew_quarters/dorms) "cYj" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/department/electrical) -"cYk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/maintenance/aft) +/obj/effect/turf_decal/box, +/obj/machinery/the_singularitygen, +/turf/open/floor/plasteel/airless, +/area/engine/engineering) "cYl" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -95221,7 +95099,7 @@ aaA abY aeG abY -bhX +asd aaA aaA aaA @@ -95478,7 +95356,7 @@ aaA abY aeG abY -bhX +asd aaA aaA aaA @@ -95735,7 +95613,7 @@ aaA abY aeG abY -bhX +asd aaA aaA aaA @@ -95992,7 +95870,7 @@ aaA abY aeG abY -bhX +asd aaA aaA aco @@ -96249,7 +96127,7 @@ aaA abY aeG abY -bhX +asd aaA aaA aco @@ -96506,7 +96384,7 @@ aaA abY aeG abY -bhX +asd aaA aaA aco @@ -96763,7 +96641,7 @@ aaA abY aeG abY -bhX +asd aaA aaA aco @@ -96781,7 +96659,7 @@ aaA aco aco aaA -biA +bTy aaR aaR aaR @@ -97020,7 +96898,7 @@ aaA abY aeG abY -bhX +asd aaA aaA aaA @@ -97038,7 +96916,7 @@ aaA aaA aaA aaA -biA +bTy aaA aaR aaR @@ -97277,7 +97155,7 @@ aaA abY aeG abY -bhX +asd aaA aaA aaA @@ -97295,7 +97173,7 @@ aaA aaA aaA aaA -biA +bTy aaA aaA aaR @@ -100208,7 +100086,7 @@ bNs bOm bPF bQn -bQO +bQn bRC bSj bTa @@ -110692,7 +110570,7 @@ aab aab bba bcg -cmT +bQO bcg bba aab @@ -117713,7 +117591,7 @@ cjy cfQ cCG cqg -coh +bKk clM cWn cnw @@ -119979,7 +119857,7 @@ bwR bAY bwR bCT -bwR +bsN bsN aaA bDK @@ -120236,13 +120114,13 @@ bAy bWT bAy bDa -bwi bsN aaA aaA aaA aaA aaA +aaA bDK bDK bDK @@ -120492,7 +120370,6 @@ bAl bAz bBx bCr -bFS bwr bsN aaA @@ -120502,6 +120379,7 @@ aaA aaA aaA aaA +aaA bFH cUu bJs @@ -120750,7 +120628,6 @@ bAA bBy bwR bwR -bwR bsN bsN bsN @@ -120759,6 +120636,7 @@ aaA aaA aaA aaA +aaA bFH bIt cPz @@ -121008,14 +120886,14 @@ bBz bFc bwR bDP -bEX -btT +bEP bGr bsN bsN bsN bsN aaA +aaA bFH cTt bJs @@ -121265,14 +121143,14 @@ bBd bwo bwR bDX -bEP -bum +bEX bGs bsN bHy cbi bsN aaA +aaA bFH bFI bJs @@ -121523,13 +121401,13 @@ bwq cEF bDY bEQ -bFF bGP bGN bHA bIs bsN aaA +aaA bFH cOB bLQ @@ -121780,13 +121658,13 @@ bXr bwR bXU bER -bER bHd bsN bsN bsN bsN aaA +aaA bFH bFI bJr @@ -122037,12 +121915,12 @@ bwr bsN bEa bEY -bGn bHB bsN aaA aaA aaA +aaA bFH bFH bFH @@ -122296,7 +122174,7 @@ bsN bsN bsN bsN -bsN +aaA aaA aaA bFH @@ -124406,7 +124284,7 @@ bYa bYa bYa bYa -cYi +bKT bYa bYa ceG @@ -124836,7 +124714,7 @@ bgr bjL bgr bgr -bqt +bqu bgp bnu bAs @@ -125079,7 +124957,7 @@ aTX aSK aSK aSK -aYk +aYj aRH bax bbI @@ -125336,7 +125214,7 @@ aZV aVh aWe aZW -aYl +aYk aRN aRN aRN @@ -126723,11 +126601,11 @@ cmd aaA cSc cVT -cYj +coh cXu cXz ceG -cYk +crd cTU cyo aab @@ -126879,10 +126757,10 @@ aRO cJN aSY aWq -aVs +aYp aYw cMT -cAV +bqt aVs bcK bgp @@ -128724,7 +128602,7 @@ bwC bGZ bJe bIy -bJN +bGn bKR bLr bLD @@ -129155,7 +129033,7 @@ amV aoi atL aqL -ayk +ase aza auv avq @@ -129270,7 +129148,7 @@ bSa ccX cUQ bRA -cNv +cYi cfv chd cqp @@ -129412,7 +129290,7 @@ alC aqA atV aqL -asd +asf aCp auw avr @@ -129669,7 +129547,7 @@ amg aok apC amg -ase +asg aET aPK amg @@ -129926,7 +129804,7 @@ amW aol apD aGS -asf +asi atv aux amg @@ -129962,7 +129840,7 @@ cAS aUm aWm aRO -aYp +aYl aZn aSX aSX @@ -130183,7 +130061,7 @@ amX aom apE aqO -asg +auA atw auy amg @@ -130265,9 +130143,9 @@ bBI bHL bIA bJB +bFS bJE -bKk -bKT +bJN bLt bMb bKA @@ -130440,7 +130318,7 @@ amY aon apF aqP -ash +auB atx auz amg @@ -130697,9 +130575,9 @@ amZ apq apG aqQ -asi avI -auA +ayk +bhX amg aAu aAu @@ -130956,7 +130834,7 @@ apF aqR ash atz -auB +biA amg aaA aaA @@ -131241,7 +131119,7 @@ aHM bgo aQj boh -aRO +aRZ aTa aUo aZO @@ -131776,7 +131654,7 @@ bit bit bla bit -cXT +bit bvp bns bmq @@ -131863,9 +131741,9 @@ cwT cwp cwS cwT -ctE -cyf -ctE +cwS +cyg +cwS cwT cwS cWG @@ -132120,9 +131998,9 @@ cwT cwp cwS cwU -ctE -cyg -ctE +cwS +cYj +cwS cwU cwS cWG @@ -132377,9 +132255,9 @@ cwT cwp cwS cwT -ctE -ctE -ctE +cwS +cwS +cwS cwT cwS cWG @@ -132796,8 +132674,8 @@ bbV cIT cIZ bbV -bip -bip +aRZ +aRZ bit bjl bkb @@ -132831,7 +132709,7 @@ bCE bDx cBs aaR -aaR +bFF aaR aaR bpe @@ -135368,8 +135246,8 @@ ber ber bgH bda -cce -cce +cmq +cmq aQz bjo aYM @@ -135625,8 +135503,8 @@ bem bfA bgJ bda -cce -cce +cmq +cmq aQz cnu aRj @@ -135690,7 +135568,7 @@ aaA aaA aaA aaA -cmq +cNv cds cfA cdX @@ -135882,8 +135760,8 @@ bfT bfA bhS bda -cce -cce +cmq +cmq aQz aQz aQz @@ -136139,8 +136017,8 @@ beo bgG bhT bda -cce -cce +cmq +cmq aQz cSX cTb @@ -136395,9 +136273,9 @@ bcY cXY bfC bhT -cXS -cce -cce +bda +cmq +cmq aQz cSY cTc @@ -136653,8 +136531,8 @@ beq bfD bgK bda -cce -cce +cmq +cmq aQz cSZ cTd @@ -137681,7 +137559,7 @@ aQz aaA aaA aaA -bhX +asd aaA aaA aQz @@ -139993,7 +139871,7 @@ aaA aaA aaA aaA -bTy +cce aaA aaa aaa @@ -140006,7 +139884,7 @@ bnL bot boK bpl -bpP +bip bqH brn brG @@ -142645,7 +142523,7 @@ aaA aaA aaA cnp -crd +cog cpi cqc cre @@ -143419,7 +143297,7 @@ cnp cnp cpl cqf -crh +bpP cSf csV ctS @@ -143680,7 +143558,7 @@ cnp csf csW ctT -cuO +cmT cvz aab aab diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index db9a620ad6..e6eddb2777 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -1028,7 +1028,7 @@ /obj/machinery/light/small{ dir = 4 }, -/obj/structure/toilet{ +/obj/structure/toilet/secret/prison{ dir = 4 }, /turf/open/floor/plasteel/freezer, @@ -2291,6 +2291,10 @@ }, /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) +"aeD" = ( +/obj/machinery/door/airlock/external, +/turf/open/floor/plating, +/area/hallway/primary/port) "aeE" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -3112,6 +3116,9 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"afQ" = ( +/turf/open/floor/plating, +/area/hallway/primary/port) "afR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -3180,6 +3187,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) +"afZ" = ( +/obj/structure/girder, +/turf/open/floor/plating, +/area/hallway/primary/port) "aga" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -3658,6 +3669,10 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) +"agQ" = ( +/obj/item/electronics/airlock, +/turf/open/floor/plating, +/area/hallway/primary/port) "agR" = ( /obj/machinery/airalarm{ dir = 4; @@ -4264,6 +4279,11 @@ icon_state = "platingdmg1" }, /area/maintenance/fore) +"ahT" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/hallway/primary/port) "ahU" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/table, @@ -4780,6 +4800,14 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) +"aiT" = ( +/obj/effect/decal/cleanable/oil{ + icon_state = "floor5" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/hallway/primary/port) "aiU" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/tile/neutral{ @@ -4800,6 +4828,11 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) +"aiW" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/hallway/primary/port) "aiX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -4901,6 +4934,14 @@ /obj/item/restraints/handcuffs/cable/pink, /turf/open/floor/plating, /area/maintenance/port/fore) +"ajk" = ( +/obj/structure/shuttle/engine/propulsion/right{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/hallway/primary/port) "ajl" = ( /obj/item/soap/deluxe, /obj/item/storage/secure/safe{ @@ -4992,6 +5033,10 @@ }, /turf/open/floor/plasteel/dark, /area/security/warden) +"ajs" = ( +/obj/item/stack/sheet/metal/ten, +/turf/open/floor/plating, +/area/hallway/primary/port) "ajt" = ( /obj/structure/closet{ name = "Evidence Closet 5" @@ -5012,6 +5057,10 @@ }, /turf/open/floor/plasteel/dark, /area/security/warden) +"aju" = ( +/obj/item/stack/sheet/mineral/wood/twenty, +/turf/open/floor/plating, +/area/hallway/primary/port) "ajv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -6872,6 +6921,11 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/fore) +"amv" = ( +/obj/item/stack/sheet/metal/ten, +/obj/item/wrench, +/turf/open/floor/plating, +/area/hallway/primary/port) "amw" = ( /obj/structure/window/reinforced, /obj/machinery/door/window/eastright{ @@ -6908,6 +6962,10 @@ /obj/structure/window/reinforced, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) +"amB" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/hallway/primary/port) "amC" = ( /obj/structure/chair{ dir = 4 @@ -15438,7 +15496,7 @@ }, /area/maintenance/fore) "aDP" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ pixel_y = 8 }, /obj/machinery/light/small{ @@ -16832,7 +16890,7 @@ /turf/open/floor/plating, /area/maintenance/fore) "aGz" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ pixel_y = 8 }, /obj/machinery/light/small{ @@ -18115,7 +18173,7 @@ /turf/open/floor/plating, /area/maintenance/fore) "aJa" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ pixel_y = 8 }, /obj/machinery/light/small{ @@ -18142,7 +18200,7 @@ /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/restrooms) "aJc" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 4 }, /obj/machinery/light/small{ @@ -32222,7 +32280,7 @@ /turf/open/floor/plasteel/white, /area/crew_quarters/heads/captain/private) "bkL" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ pixel_y = 13 }, /obj/machinery/light, @@ -33789,16 +33847,6 @@ }, /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) -"bnM" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/hallway/primary/port) -"bnP" = ( -/obj/machinery/door/airlock/external{ - name = "Common Mining Dock" - }, -/turf/open/floor/plating, -/area/hallway/primary/port) "bnR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -34933,25 +34981,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/port) -"bqf" = ( -/turf/open/floor/plating, -/area/hallway/primary/port) -"bqg" = ( -/obj/docking_port/stationary{ - dir = 2; - dwidth = 3; - height = 5; - id = "commonmining_home"; - name = "SS13: Common Mining Dock"; - roundstart_template = /datum/map_template/shuttle/mining_common/meta; - width = 7 - }, -/turf/open/floor/plating, -/area/hallway/primary/port) -"bqi" = ( -/obj/structure/sign/warning/docking, -/turf/closed/wall, -/area/hallway/primary/port) "bqj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment, @@ -40332,7 +40361,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/toilet/auxiliary) "bBp" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ pixel_y = 8 }, /obj/machinery/light/small{ @@ -41803,7 +41832,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/toilet/auxiliary) "bEv" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ pixel_y = 8 }, /obj/machinery/light/small{ @@ -43508,7 +43537,7 @@ /turf/open/floor/plating, /area/crew_quarters/toilet/auxiliary) "bHQ" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ pixel_y = 8 }, /obj/machinery/light/small{ @@ -44116,20 +44145,20 @@ /obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "N2O to Pure" - }, /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel/cafeteria, /area/engine/atmos) "bIZ" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 4 +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "N2O to Pure" }, /turf/open/floor/plasteel/dark, /area/engine/atmos) @@ -47280,10 +47309,6 @@ /area/engine/atmos) "bPw" = ( /obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Plasma to Pure" - }, /obj/structure/window/reinforced{ dir = 4 }, @@ -47301,6 +47326,9 @@ /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bPx" = ( @@ -49746,10 +49774,6 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bUH" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "CO2 to Pure" - }, /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/structure/window/reinforced{ dir = 4 @@ -49768,6 +49792,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "bUI" = ( @@ -53170,13 +53197,10 @@ name = "Inner Pipe Access"; req_access_txt = "24" }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "O2 to Pure" - }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/yellow/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "cbl" = ( @@ -79550,7 +79574,7 @@ /turf/closed/wall, /area/crew_quarters/bar) "dhU" = ( -/obj/structure/piano, +/obj/structure/musician/piano, /obj/structure/window/reinforced{ dir = 8 }, @@ -81712,19 +81736,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/plating, /area/crew_quarters/cryopod) -"eQf" = ( -/obj/machinery/computer/shuttle/mining/common{ - dir = 1 +"eJq" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "CO2 to Pure" }, -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating, -/area/hallway/primary/port) +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "eZe" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -82112,6 +82131,13 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"kJW" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "O2 to Pure" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "kOt" = ( /obj/item/multitool, /obj/item/screwdriver, @@ -82335,6 +82361,14 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/port) +"njd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Plasma to Pure" + }, +/turf/open/floor/plasteel/dark, +/area/engine/atmos) "nnK" = ( /obj/item/stack/sheet/glass/fifty, /obj/item/paper_bin, @@ -97318,9 +97352,9 @@ bjX blU baE baE -bnM -bnM -bnM +baE +baE +baE baE baE jPu @@ -97573,13 +97607,13 @@ bgw bix bjY blV -bqi -bqf -bqf -bqf -bqf -bqf -bqi +baE +afQ +afQ +afQ +afZ +afQ +baE djW bNd alK @@ -97830,13 +97864,13 @@ bgx biy bjZ blW -bnM -bqf -bqf -bqf -bqf -bqf -bnM +baE +afZ +afQ +ajs +afQ +afQ +baE bBf kQP bzx @@ -98087,13 +98121,13 @@ bgy biz bka blX -bnM -bqf -bqf -bqf -bqf -bqf -bnM +baE +afQ +afQ +afQ +afQ +afQ +baE bBf bCL bEq @@ -98344,13 +98378,13 @@ bgz biA bnR blY -bnP -bqg -bqf -bqf -bqf -bqf -bnM +aeD +agQ +afQ +afQ +afQ +afQ +baE rNX jBe bzx @@ -98601,13 +98635,13 @@ bgA biz bkb blZ -eQf -bqf -bqf -bqf -bqf -bqf -bnM +baE +ahT +afQ +afQ +aju +afQ +baE bBh xmb iSt @@ -98858,13 +98892,13 @@ bpt bcW bkc bma -bnM -bqf -bqf -bqf -bqf -bqf -bnM +baE +ahT +aiW +afQ +amv +afQ +baE bBf bCM bzx @@ -99115,13 +99149,13 @@ bbK bcW dhP bqd -bqi -bqf -bqf -bqf -bqf -bqf -bqi +baE +aiT +ajk +afQ +amB +afQ +baE djW bsx xfI @@ -99374,9 +99408,9 @@ bkd bmb baE baE -bnM baE -bnM +baE +baE baE baE bBf @@ -126382,7 +126416,7 @@ dDm bIS bZK cbk -ccP +kJW ceh cfx bAR @@ -127657,11 +127691,11 @@ bIZ bKG bMl dhj -bIZ +njd bKG bMl bKG -bIZ +eJq bKG bMl bYB diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 2ca3c3deee..8a951881f9 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -11768,7 +11768,7 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/theatre) "atY" = ( -/obj/structure/piano{ +/obj/structure/musician/piano{ icon_state = "piano" }, /obj/machinery/light{ diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index fc5f6e9778..bdbce36c9c 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -2285,7 +2285,7 @@ /turf/open/floor/plasteel, /area/security/prison) "ahb" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/prison{ dir = 8 }, /turf/open/floor/plasteel/freezer, @@ -9106,7 +9106,7 @@ /turf/open/floor/plasteel/freezer, /area/crew_quarters/heads/captain) "avK" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /turf/open/floor/plasteel/freezer, @@ -14667,7 +14667,7 @@ /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet/restrooms) "aIl" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 8 }, /obj/machinery/light/small{ @@ -16490,7 +16490,7 @@ /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/cafeteria/lunchroom) "aNc" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 4 }, /obj/effect/landmark/start/assistant, @@ -21324,7 +21324,7 @@ "aYm" = ( /obj/structure/closet/crate/wooden/toy, /obj/item/lipstick/random, -/obj/item/clothing/gloves/color/rainbow/clown, +/obj/item/clothing/gloves/color/rainbow, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -43015,7 +43015,7 @@ /area/maintenance/department/engine) "bUb" = ( /obj/structure/grille/broken, -/obj/structure/piano, +/obj/structure/musician/piano, /turf/open/floor/plating, /area/maintenance/department/engine) "bUc" = ( @@ -47393,7 +47393,7 @@ /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) "cgO" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ pixel_y = 8 }, /obj/machinery/light/small{ @@ -47734,7 +47734,7 @@ /turf/open/floor/plasteel/grimy, /area/chapel/main/monastery) "ciq" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ pixel_y = 8 }, /turf/open/floor/plasteel/showroomfloor, @@ -55939,7 +55939,7 @@ /turf/open/floor/carpet, /area/chapel/office) "kgR" = ( -/obj/structure/toilet{ +/obj/structure/toilet/secret/low_loot{ dir = 4 }, /turf/open/floor/plating, @@ -58271,7 +58271,7 @@ /turf/open/floor/plating, /area/chapel/office) "plA" = ( -/obj/structure/piano, +/obj/structure/musician/piano, /turf/open/floor/plasteel/dark, /area/maintenance/department/crew_quarters/dorms) "pmB" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index f9c3653b35..c9b81cefd9 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -10005,6 +10005,12 @@ /obj/structure/chair/stool, /turf/open/floor/plasteel, /area/syndicate_mothership) +"wZ" = ( +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/obj/effect/landmark/holding_facility, +/turf/open/indestructible/hotelwood, +/area/centcom/holding) "xa" = ( /obj/machinery/door/window/northright{ dir = 4; @@ -12452,6 +12458,13 @@ }, /turf/open/floor/plasteel/dark, /area/centcom/evac) +"CQ" = ( +/obj/effect/landmark/holding_facility, +/mob/living/simple_animal/bot/medbot{ + name = "Syndicate Hospitality Drone" + }, +/turf/open/indestructible/hotelwood, +/area/centcom/holding) "CR" = ( /obj/machinery/computer/security{ dir = 8 @@ -14407,7 +14420,7 @@ /obj/machinery/light{ dir = 8 }, -/obj/structure/piano, +/obj/structure/musician/piano, /turf/open/indestructible/hotelwood, /area/centcom/holding) "Hk" = ( @@ -17251,10 +17264,21 @@ /obj/structure/window/reinforced/fulltile, /turf/open/indestructible/hotelwood, /area/centcom/holding) +"Ql" = ( +/obj/machinery/light, +/obj/effect/landmark/holding_facility, +/turf/open/indestructible/hotelwood, +/area/centcom/holding) "Qm" = ( /obj/singularity/wizard/mapped, /turf/open/indestructible/binary, /area/fabric_of_reality) +"Qn" = ( +/obj/machinery/vr_sleeper/hugbox{ + dir = 8 + }, +/turf/open/indestructible/hotelwood, +/area/centcom/holding) "Qo" = ( /turf/open/floor/mineral/plastitanium/red, /area/centcom/evac) @@ -17794,7 +17818,7 @@ /area/syndicate_mothership) "Tn" = ( /obj/structure/table/wood/fancy, -/obj/item/candle/infinite{ +/obj/item/candle/infinite/hugbox{ pixel_y = 6 }, /turf/open/indestructible/hotelwood, @@ -17820,7 +17844,6 @@ dir = 4 }, /obj/structure/window/reinforced/tinted{ - icon_state = "twindow"; dir = 1 }, /turf/open/floor/plasteel/white, @@ -17897,7 +17920,6 @@ dir = 8 }, /obj/structure/window/reinforced/tinted{ - icon_state = "twindow"; dir = 1 }, /obj/machinery/washing_machine, @@ -17939,10 +17961,13 @@ /obj/vehicle/ridden/janicart, /turf/open/indestructible/hotelwood, /area/centcom/holding) -"Ud" = ( -/obj/effect/landmark/holding_facility, +"Uc" = ( +/obj/machinery/vending/sustenance, /turf/open/indestructible/hotelwood, /area/centcom/holding) +"Ud" = ( +/turf/closed/indestructible/wood, +/area/centcom/holding) "Ug" = ( /obj/machinery/door/poddoor/shuttledock{ checkdir = 1; @@ -17962,6 +17987,11 @@ }, /turf/open/indestructible/hotelwood, /area/centcom/holding) +"Ui" = ( +/obj/structure/table, +/obj/item/clothing/mask/luchador/tecnicos, +/turf/open/floor/holofloor/wood, +/area/holodeck/rec_center/wrestlingarena) "Uj" = ( /obj/machinery/door/airlock/centcom{ name = "Restroom"; @@ -18204,6 +18234,11 @@ /obj/structure/window/reinforced/tinted, /turf/open/floor/plasteel/freezer, /area/syndicate_mothership) +"Vk" = ( +/obj/structure/table, +/obj/item/storage/belt/champion/wrestling/holodeck, +/turf/open/floor/holofloor/wood, +/area/holodeck/rec_center/wrestlingarena) "Vt" = ( /obj/item/paper/fluff/stations/centcom/disk_memo, /obj/structure/noticeboard{ @@ -18368,6 +18403,11 @@ }, /turf/open/indestructible/hotelwood, /area/centcom/holding) +"Wx" = ( +/obj/structure/table, +/obj/item/clothing/mask/luchador, +/turf/open/floor/holofloor/wood, +/area/holodeck/rec_center/wrestlingarena) "Wz" = ( /obj/structure/table, /obj/item/storage/backpack/duffelbag/med/surgery, @@ -18741,6 +18781,11 @@ }, /turf/open/floor/plasteel/cafeteria, /area/centcom/holding) +"Yv" = ( +/obj/structure/table, +/obj/item/clothing/mask/luchador/rudos, +/turf/open/floor/holofloor/wood, +/area/holodeck/rec_center/wrestlingarena) "Yw" = ( /turf/closed/indestructible/fakedoor{ name = "External Access" @@ -18750,6 +18795,9 @@ /obj/machinery/door/airlock/titanium, /turf/open/floor/mineral/titanium, /area/centcom/evac) +"YC" = ( +/turf/open/floor/holofloor/wood, +/area/holodeck/rec_center/wrestlingarena) "YJ" = ( /obj/item/reagent_containers/food/condiment/enzyme, /obj/item/reagent_containers/food/drinks/shaker, @@ -18822,6 +18870,14 @@ }, /turf/open/floor/plasteel, /area/centcom/supplypod) +"Zl" = ( +/obj/structure/table, +/obj/item/clothing/gloves/boxing, +/obj/item/clothing/gloves/boxing/blue, +/obj/item/clothing/gloves/boxing/green, +/obj/item/clothing/gloves/boxing/yellow, +/turf/open/floor/holofloor/wood, +/area/holodeck/rec_center/wrestlingarena) "Zr" = ( /obj/machinery/light, /turf/open/floor/plasteel/dark, @@ -18844,6 +18900,10 @@ /obj/effect/landmark/start/nukeop_leader, /turf/open/floor/wood, /area/syndicate_mothership) +"ZB" = ( +/obj/effect/landmark/holding_facility, +/turf/open/indestructible/hotelwood, +/area/centcom/holding) "ZE" = ( /obj/structure/sink{ dir = 4; @@ -43829,11 +43889,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +Ud +Ud +Ud +Ud +Ud aa aa aa @@ -44086,11 +44146,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +Ud +Uc +ZB +ZB +Ud aa aa aa @@ -44343,11 +44403,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +Ud +ZB +CQ +Ql +Ud aa aa aa @@ -44600,11 +44660,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +Ud +wZ +ZB +Qn +Ud aa aa aa @@ -44857,11 +44917,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +Ud +Ud +Ud +Ud +Ud aa aa aa @@ -46174,8 +46234,8 @@ Sd HH Nd WM -Ud -Ud +Sd +Sd NT Nj Po @@ -46431,8 +46491,8 @@ Sd XM NT Sd -Ud -Ud +Sd +Sd NT YU zT @@ -46688,8 +46748,8 @@ Sd Tn NT Sd -Ud -Ud +Sd +Sd NT YU zT @@ -46945,8 +47005,8 @@ Sd GY NT Sd -Ud -Ud +Sd +Sd NT YU zT @@ -47202,8 +47262,8 @@ Qk Vu Nd Gs -Ud -Ud +Sd +Sd NT Mt PA @@ -71951,18 +72011,18 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ab +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ab aa aa aa @@ -72208,18 +72268,18 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bj +YC +YC +YC +YC +YC +YC +YC +YC +YC +YC +fx aa aa aa @@ -72465,18 +72525,18 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bj +Vk +YC +YC +YC +YC +YC +YC +YC +YC +Vk +fx aa aa aa @@ -72722,18 +72782,18 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bj +Vk +YC +YC +YC +YC +YC +YC +YC +YC +Vk +fx aa aa aa @@ -72979,18 +73039,18 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bj +Vk +YC +YC +YC +YC +YC +YC +YC +YC +Vk +fx aa aa aa @@ -73236,18 +73296,18 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bj +YC +YC +Wx +YC +Yv +Ui +YC +Zl +YC +YC +fx aa aa aa @@ -73494,16 +73554,16 @@ ae ae ae ab -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag ab aa aa diff --git a/_maps/shuttles/emergency_bar.dmm b/_maps/shuttles/emergency_bar.dmm index 7c14d9ebd0..7bc7de9bf1 100644 --- a/_maps/shuttles/emergency_bar.dmm +++ b/_maps/shuttles/emergency_bar.dmm @@ -197,7 +197,7 @@ /turf/open/floor/plasteel, /area/shuttle/escape) "aF" = ( -/obj/structure/piano{ +/obj/structure/musician/piano{ icon_state = "piano" }, /turf/open/floor/plasteel/grimy, diff --git a/_maps/shuttles/mining_common_meta.dmm b/_maps/shuttles/mining_common_meta.dmm deleted file mode 100644 index f04f8e1a3b..0000000000 --- a/_maps/shuttles/mining_common_meta.dmm +++ /dev/null @@ -1,124 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/closed/wall/mineral/titanium, -/area/shuttle/mining) -"b" = ( -/obj/effect/spawner/structure/window/shuttle, -/turf/open/floor/plating, -/area/shuttle/mining) -"c" = ( -/obj/structure/table, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/mining) -"d" = ( -/obj/machinery/computer/shuttle/mining/common, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/mining) -"e" = ( -/turf/open/floor/mineral/titanium, -/area/shuttle/mining) -"f" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 1 - }, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/mining) -"g" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/mining) -"h" = ( -/obj/machinery/door/airlock/titanium{ - name = "Lavaland Shuttle Airlock" - }, -/obj/docking_port/mobile{ - dir = 8; - dwidth = 3; - height = 5; - id = "mining_common"; - name = "lavaland shuttle"; - port_direction = 4; - width = 7 - }, -/turf/open/floor/plating, -/area/shuttle/mining) -"i" = ( -/obj/structure/closet/crate, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/mining) -"j" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plating, -/area/shuttle/mining) -"k" = ( -/obj/structure/ore_box, -/turf/open/floor/mineral/titanium/blue, -/area/shuttle/mining) -"l" = ( -/obj/structure/shuttle/engine/propulsion/burst, -/turf/open/floor/plating/airless, -/area/shuttle/mining) -"Q" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 1 - }, -/turf/open/floor/mineral/titanium, -/area/shuttle/mining) - -(1,1,1) = {" -a -a -b -a -b -a -a -"} -(2,1,1) = {" -a -c -e -g -f -i -a -"} -(3,1,1) = {" -b -d -Q -e -f -j -l -"} -(4,1,1) = {" -a -c -e -e -f -k -a -"} -(5,1,1) = {" -a -a -b -h -b -a -a -"} diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index 174b44c6fc..578255d086 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -25,6 +25,7 @@ #define GENITAL_CAN_AROUSE (1<<8) #define GENITAL_UNDIES_HIDDEN (1<<9) #define UPDATE_OWNER_APPEARANCE (1<<10) +#define GENITAL_CAN_TAUR (1<<11) #define DEF_VAGINA_SHAPE "Human" diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index be0a4d0f59..14c78f90d0 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -114,12 +114,17 @@ //slowdown when in softcrit #define SOFTCRIT_ADD_SLOWDOWN 6 -//Attack types for checking shields/hit reactions -#define MELEE_ATTACK 1 -#define UNARMED_ATTACK 2 -#define PROJECTILE_ATTACK 3 -#define THROWN_PROJECTILE_ATTACK 4 -#define LEAP_ATTACK 5 +/// Attack types for check_block()/run_block(). Flags, combinable. +/// Attack was melee, whether or not armed. +#define ATTACK_TYPE_MELEE (1<<0) +/// Attack was with a gun or something that should count as a gun (but not if a gun shouldn't count for a gun, crazy right?) +#define ATTACK_TYPE_PROJECTILE (1<<1) +/// Attack was unarmed.. this usually means hand to hand combat. +#define ATTACK_TYPE_UNARMED (1<<2) +/// Attack was a thrown atom hitting the victim. +#define ATTACK_TYPE_THROWN (1<<3) +/// Attack was a bodyslam/leap/tackle. See: Xenomorph leap tackles. +#define ATTACK_TYPE_TACKLE (1<<4) //attack visual effects #define ATTACK_EFFECT_PUNCH "punch" @@ -252,4 +257,53 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( #define BULLET_ACT_FORCE_PIERCE "PIERCE" //It pierces through the object regardless of the bullet being piercing by default. #define BULLET_ACT_TURF "TURF" //It hit us but it should hit something on the same turf too. Usually used for turfs. +/// Bitflags for check_block() and handle_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS. +/// Attack was not blocked +#define BLOCK_NONE NONE +/// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION! +#define BLOCK_SUCCESS (1<<1) +/// The below are for "metadata" on "how" the attack was blocked. + +/// Attack was and should be redirected according to list argument REDIRECT_METHOD (NOTE: the SHOULD here is important, as it says "the thing blocking isn't handling the reflecting for you so do it yourself"!) +#define BLOCK_SHOULD_REDIRECT (1<<2) +/// Attack was redirected (whether by us or by SHOULD_REDIRECT flagging for automatic handling) +#define BLOCK_REDIRECTED (1<<3) +/// Attack was blocked by something like a shield. +#define BLOCK_PHYSICAL_EXTERNAL (1<<4) +/// Attack was blocked by something worn on you. +#define BLOCK_PHYSICAL_INTERNAL (1<<5) +/// Attack outright missed because the target dodged. Should usually be combined with redirection passthrough or something (see martial arts) +#define BLOCK_TARGET_DODGED (1<<7) +/// Meta-flag for run_block/do_run_block : By default, BLOCK_SUCCESS tells do_run_block() to assume the attack is completely blocked and not continue the block chain. If this is present, it will continue to check other items in the chain rather than stopping. +#define BLOCK_CONTINUE_CHAIN (1<<8) + +/// For keys in associative list/block_return as we don't want to saturate our (somewhat) limited flags. +#define BLOCK_RETURN_REDIRECT_METHOD "REDIRECT_METHOD" + /// Pass through victim + #define REDIRECT_METHOD_PASSTHROUGH "passthrough" + /// Deflect at randomish angle + #define REDIRECT_METHOD_DEFLECT "deflect" + /// reverse 180 angle, basically (as opposed to "realistic" wall reflections) + #define REDIRECT_METHOD_REFLECT "reflect" + /// "do not taser the bad man with the desword" - actually aims at the firer/attacker rather than just reversing + #define REDIRECT_METHOD_RETURN_TO_SENDER "no_you" + +/// These keys are generally only applied to the list if real_attack is FALSE. Used incase we want to make "smarter" mob AI in the future or something. +/// Tells the caller how likely from 0 (none) to 100 (always) we are to reflect energy projectiles +#define BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE "reflect_projectile_chance" +/// Tells the caller how likely we are to block attacks from 0 to 100 in general +#define BLOCK_RETURN_NORMAL_BLOCK_CHANCE "normal_block_chance" +/// Tells the caller about how many hits we can soak on average before our blocking fails. +#define BLOCK_RETURN_BLOCK_CAPACITY "block_capacity" + +/// Default if the above isn't set in the list. +#define DEFAULT_REDIRECT_METHOD_PROJECTILE REDIRECT_METHOD_DEFLECT + +/// Block priorities +#define BLOCK_PRIORITY_HELD_ITEM 100 +#define BLOCK_PRIORITY_CLOTHING 50 +#define BLOCK_PRIORITY_WEAR_SUIT 75 +#define BLOCK_PRIORITY_UNIFORM 25 + +#define BLOCK_PRIORITY_DEFAULT BLOCK_PRIORITY_HELD_ITEM diff --git a/code/__DEFINES/dcs/flags.dm b/code/__DEFINES/dcs/flags.dm index 128c9f1938..3210341cc3 100644 --- a/code/__DEFINES/dcs/flags.dm +++ b/code/__DEFINES/dcs/flags.dm @@ -39,3 +39,17 @@ //Ouch my toes! #define CALTROP_BYPASS_SHOES 1 #define CALTROP_IGNORE_WALKERS 2 + +#define SPELL_SKIP_ALL_REQS (1<<0) +#define SPELL_SKIP_CENTCOM (1<<1) +#define SPELL_SKIP_STAT (1<<2) +#define SPELL_SKIP_CLOTHES (1<<3) +#define SPELL_SKIP_ANTIMAGIC (1<<4) +#define SPELL_SKIP_VOCAL (1<<5) +#define SPELL_SKIP_MOBTYPE (1<<6) +#define SPELL_WIZARD_HAT (1<<7) +#define SPELL_WIZARD_ROBE (1<<8) +#define SPELL_CULT_HELMET (1<<9) +#define SPELL_CULT_ARMOR (1<<10) +#define SPELL_WIZARD_GARB (SPELL_WIZARD_HAT|SPELL_WIZARD_ROBE) +#define SPELL_CULT_GARB (SPELL_CULT_HELMET|SPELL_CULT_ARMOR) diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index bd77e374aa..e0f7457a4a 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -149,7 +149,9 @@ #define COMSIG_MOB_DEATH "mob_death" //from base of mob/death(): (gibbed) #define COMPONENT_BLOCK_DEATH_BROADCAST 1 //stops the death from being broadcasted in deadchat. #define COMSIG_MOB_GHOSTIZE "mob_ghostize" //from base of mob/Ghostize(): (can_reenter_corpse, special, penalize) - #define COMPONENT_BLOCK_GHOSTING 1 + #define COMPONENT_BLOCK_GHOSTING (1<<0) + #define COMPONENT_DO_NOT_PENALIZE_GHOSTING (1<<1) + #define COMPONENT_FREE_GHOSTING (1<<2) #define COMSIG_MOB_ALLOWED "mob_allowed" //from base of obj/allowed(mob/M): (/obj) returns bool, if TRUE the mob has id access to the obj #define COMSIG_MOB_RECEIVE_MAGIC "mob_receive_magic" //from base of mob/anti_magic_check(): (mob/user, magic, holy, tinfoil, chargecost, self, protection_sources) #define COMPONENT_BLOCK_MAGIC 1 @@ -177,6 +179,8 @@ // #define SPEECH_FORCED 7 #define COMSIG_MOB_ANTAG_ON_GAIN "mob_antag_on_gain" //from base of /datum/antagonist/on_gain(): (antag_datum) +#define COMSIG_MOB_SPELL_CAN_CAST "mob_spell_can_cast" //called from base of /obj/effect/proc_holder/spell/can_cast(): (spell) + // /mob/living signals #define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) #define COMSIG_LIVING_RESIST "living_resist" //from base of mob/living/resist() (/mob/living) @@ -188,6 +192,8 @@ #define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" //sent when a mob/login() finishes: (client) #define COMSIG_MOB_CLIENT_MOVE "comsig_mob_client_move" //sent when client/Move() finishes with no early returns: (client, direction, n, oldloc) #define COMSIG_LIVING_GUN_PROCESS_FIRE "living_gun_process_fire" //from base of /obj/item/gun/proc/process_fire(): (atom/target, params, zone_override) +// This returns flags as defined for block in __DEFINES/combat.dm! +#define COMSIG_LIVING_RUN_BLOCK "living_do_run_block" //from base of mob/living/do_run_block(): (real_attack, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone) #define COMSIG_LIVING_COMBAT_ENABLED "combatmode_enabled" //from base of mob/living/enable_combat_mode() (was_forced) #define COMSIG_LIVING_COMBAT_DISABLED "combatmode_disabled" //from base of mob/living/disable_combat_mode() (was_forced) @@ -236,9 +242,14 @@ #define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user) #define COMSIG_ITEM_HIT_REACT "item_hit_react" //from base of obj/item/hit_reaction(): (list/args) #define COMSIG_ITEM_WEARERCROSSED "wearer_crossed" //called on item when crossed by something (): (/atom/movable) +#define COMSIG_ITEM_WORN_OVERLAYS "item_worn_overlays" //from base of obj/item/worn_overlays(): (isinhands, icon_file, used_state, style_flags, list/overlays) +// THE FOLLOWING TWO BLOCKS SHOULD RETURN BLOCK FLAGS AS DEFINED IN __DEFINES/combat.dm! +#define COMSIG_ITEM_CHECK_BLOCK "check_block" //from base of obj/item/check_block(): (mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) +#define COMSIG_ITEM_RUN_BLOCK "run_block" //from base of obj/item/run_block(): (mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) // /obj/item/clothing signals #define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): () +#define COMSIG_SUIT_MADE_HELMET "suit_made_helmet" //from base of obj/item/clothing/suit/MakeHelmet(): (helmet) // /obj/item/implant signals #define COMSIG_IMPLANT_ACTIVATED "implant_activated" //from base of /obj/item/implant/proc/activate(): () diff --git a/code/__DEFINES/dye_keys.dm b/code/__DEFINES/dye_keys.dm new file mode 100644 index 0000000000..133f9c47d3 --- /dev/null +++ b/code/__DEFINES/dye_keys.dm @@ -0,0 +1,28 @@ +#define DYE_REGISTRY_UNDER "under" +#define DYE_REGISTRY_JUMPSKIRT "jumpskirt" +#define DYE_REGISTRY_GLOVES "gloves" +#define DYE_REGISTRY_SNEAKERS "sneakers" +#define DYE_REGISTRY_FANNYPACK "fannypack" +#define DYE_REGISTRY_BEDSHEET "bedsheet" + +#define DYE_RED "red" +#define DYE_ORANGE "orange" +#define DYE_YELLOW "yellow" +#define DYE_GREEN "green" +#define DYE_BLUE "blue" +#define DYE_PURPLE "purple" +#define DYE_BLACK "black" +#define DYE_WHITE "white" +#define DYE_RAINBOW "rainbow" +#define DYE_MIME "mime" +#define DYE_COSMIC "cosmic" +#define DYE_QM "qm" +#define DYE_LAW "law" +#define DYE_CAPTAIN "captain" +#define DYE_HOP "hop" +#define DYE_HOS "hos" +#define DYE_CE "ce" +#define DYE_RD "rd" +#define DYE_CMO "cmo" +#define DYE_REDCOAT "redcoat" +#define DYE_CLOWN "clown" diff --git a/code/__DEFINES/dynamic.dm b/code/__DEFINES/dynamic.dm index ae5b031c8b..da8a76e71e 100644 --- a/code/__DEFINES/dynamic.dm +++ b/code/__DEFINES/dynamic.dm @@ -7,6 +7,7 @@ #define WAROPS_ALWAYS_ALLOWED (1<<1) #define USE_PREF_WEIGHTS (1<<2) #define FORCE_IF_WON (1<<3) +#define USE_PREV_ROUND_WEIGHTS (1<<4) #define ONLY_RULESET (1<<0) #define HIGHLANDER_RULESET (1<<1) diff --git a/code/__DEFINES/instruments.dm b/code/__DEFINES/instruments.dm new file mode 100644 index 0000000000..3c414f87f4 --- /dev/null +++ b/code/__DEFINES/instruments.dm @@ -0,0 +1,29 @@ +#define INSTRUMENT_MIN_OCTAVE 1 +#define INSTRUMENT_MAX_OCTAVE 9 +#define INSTRUMENT_MIN_KEY 0 +#define INSTRUMENT_MAX_KEY 127 + +/// Max number of playing notes per instrument. +#define CHANNELS_PER_INSTRUMENT 128 + +/// Distance multiplier that makes us not be impacted by 3d sound as much. This is a multiplier so lower it is the closer we will pretend to be to people. +#define INSTRUMENT_DISTANCE_FALLOFF_BUFF 0.2 +/// How many tiles instruments have no falloff for +#define INSTRUMENT_DISTANCE_NO_FALLOFF 3 + +/// Maximum length a note should ever go for +#define INSTRUMENT_MAX_TOTAL_SUSTAIN (5 SECONDS) + +/// These are per decisecond. +#define INSTRUMENT_EXP_FALLOFF_MIN 1.025 //100/(1.025^50) calculated for [INSTRUMENT_MIN_SUSTAIN_DROPOFF] to be 30. +#define INSTRUMENT_EXP_FALLOFF_MAX 10 + +/// Minimum volume for when the sound is considered dead. +#define INSTRUMENT_MIN_SUSTAIN_DROPOFF 0 + +#define SUSTAIN_LINEAR 1 +#define SUSTAIN_EXPONENTIAL 2 + +// /datum/instrument instrument_flags +#define INSTRUMENT_LEGACY (1<<0) //Legacy instrument. Implies INSTRUMENT_DO_NOT_AUTOSAMPLE +#define INSTRUMENT_DO_NOT_AUTOSAMPLE (1<<1) //Do not automatically sample diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 9efffefce5..3fb149d071 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -465,7 +465,7 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S #define EGG_LAYING_MESSAGES list("lays an egg.","squats down and croons.","begins making a huge racket.","begins clucking raucously.") // list of all null rod weapons -#define HOLY_WEAPONS /obj/item/nullrod, /obj/item/twohanded/dualsaber/hypereutactic/chaplain, /obj/item/gun/energy/laser/redtag/hitscan/chaplain, /obj/item/multitool/chaplain, /obj/item/melee/baseball_bat/chaplain +#define HOLY_WEAPONS /obj/item/nullrod, /obj/item/twohanded/dualsaber/hypereutactic/chaplain, /obj/item/gun/energy/laser/redtag/hitscan/chaplain, /obj/item/multitool/chaplain, /obj/item/clothing/gloves/fingerless/pugilist/chaplain, /obj/item/melee/baseball_bat/chaplain // Used by PDA and cartridge code to reduce repetitiveness of spritesheets #define PDAIMG(what) {""} diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm index 76c326cec0..bc1e6f7d5f 100644 --- a/code/__DEFINES/movespeed_modification.dm +++ b/code/__DEFINES/movespeed_modification.dm @@ -78,4 +78,6 @@ #define MOVESPEED_ID_COLD "COLD" #define MOVESPEED_ID_HUNGRY "HUNGRY" #define MOVESPEED_ID_DAMAGE_SLOWDOWN "DAMAGE" -#define MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING "FLYING" \ No newline at end of file +#define MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING "FLYING" + +#define MOVESPEED_ID_CIRRHOSIS "CIRRHOSIS" \ No newline at end of file diff --git a/code/__DEFINES/radiation.dm b/code/__DEFINES/radiation.dm index 596a6a0378..ece997a7fc 100644 --- a/code/__DEFINES/radiation.dm +++ b/code/__DEFINES/radiation.dm @@ -45,9 +45,9 @@ Ask ninjanomnom if they're around // WARNING: The deines below could have disastrous consequences if tweaked incorrectly. See: The great SM purge of Oct.6.2017 // contamination_chance = (strength-RAD_MINIMUM_CONTAMINATION) * RAD_CONTAMINATION_CHANCE_COEFFICIENT * min(1/(steps*RAD_DISTANCE_COEFFICIENT), 1)) // contamination_strength = (strength-RAD_MINIMUM_CONTAMINATION) * RAD_CONTAMINATION_STR_COEFFICIENT -#define RAD_MINIMUM_CONTAMINATION 350 // How strong does a radiation wave have to be to contaminate objects +#define RAD_MINIMUM_CONTAMINATION 300 // How strong does a radiation wave have to be to contaminate objects #define RAD_CONTAMINATION_CHANCE_COEFFICIENT 0.005 // Higher means higher strength scaling contamination chance -#define RAD_CONTAMINATION_STR_COEFFICIENT 0.3 // Higher means higher strength scaling contamination strength +#define RAD_CONTAMINATION_STR_COEFFICIENT 0.99 // Higher means higher strength scaling contamination strength #define RAD_DISTANCE_COEFFICIENT 1 // Lower means further rad spread -#define RAD_HALF_LIFE 90 // The half-life of contaminated objects \ No newline at end of file +#define RAD_HALF_LIFE 90 // The half-life of contaminated objects diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 581bb2bc29..73781154c5 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -20,6 +20,7 @@ #define CHANNEL_HIGHEST_AVAILABLE 1008 //CIT CHANGE - COMPENSATES FOR VORESOUND CHANNELS +#define MAX_INSTRUMENT_CHANNELS (128 * 6) #define SOUND_MINIMUM_PRESSURE 10 #define FALLOFF_SOUNDS 1 diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index a7ffd1c543..9a9133c196 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -99,7 +99,7 @@ #define STATUS_EFFECT_PENIS_ENLARGEMENT /datum/status_effect/chem/penis_enlarger //More applied slowdown, just like the above. #define STATUS_EFFECT_NO_COMBAT_MODE /datum/status_effect/no_combat_mode //Wont allow combat mode and will disable it -#define STATUS_EFFECT_MESMERIZE /datum/status_effect/no_combat_mode/mesmerize //Just reskinned no_combat_mode +#define STATUS_EFFECT_MESMERIZE /datum/status_effect/mesmerize //Just reskinned no_combat_mode #define STATUS_EFFECT_ELECTROSTAFF /datum/status_effect/electrostaff //slows down victim diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index a693b26b20..5aa0301bf6 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -50,17 +50,19 @@ #define INIT_ORDER_PROFILER 100 #define INIT_ORDER_FAIL2TOPIC 99 #define INIT_ORDER_TITLE 98 -#define INIT_ORDER_GARBAGE 97 -#define INIT_ORDER_DBCORE 95 -#define INIT_ORDER_BLACKBOX 94 -#define INIT_ORDER_SERVER_MAINT 93 -#define INIT_ORDER_INPUT 85 +#define INIT_ORDER_GARBAGE 95 +#define INIT_ORDER_DBCORE 93 +#define INIT_ORDER_BLACKBOX 92 +#define INIT_ORDER_SERVER_MAINT 91 +#define INIT_ORDER_INPUT 90 +#define INIT_ORDER_SOUNDS 85 #define INIT_ORDER_VIS 80 #define INIT_ORDER_RESEARCH 75 #define INIT_ORDER_EVENTS 70 #define INIT_ORDER_JOBS 65 #define INIT_ORDER_QUIRKS 60 #define INIT_ORDER_TICKER 55 +#define INIT_ORDER_INSTRUMENTS 53 #define INIT_ORDER_MAPPING 50 #define INIT_ORDER_NETWORKS 45 #define INIT_ORDER_ATOMS 30 @@ -100,6 +102,7 @@ #define FIRE_PRIORITY_PROCESS 25 #define FIRE_PRIORITY_THROWING 25 #define FIRE_PRIORITY_SPACEDRIFT 30 +#define FIRE_PRIORITY_INSTRUMENTS 30 #define FIRE_PRIORITY_FIELDS 30 #define FIRE_PRIOTITY_SMOOTHING 35 #define FIRE_PRIORITY_NETWORKS 40 diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index a8c0353591..e70e0ba743 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -147,6 +147,9 @@ #define TRAIT_NOPULSE "nopulse" // Your heart doesn't beat. #define TRAIT_EXEMPT_HEALTH_EVENTS "exempt-health-events" #define TRAIT_NO_MIDROUND_ANTAG "no-midround-antag" //can't be turned into an antag by random events +#define TRAIT_PUGILIST "pugilist" //This guy punches people for a living +#define TRAIT_KI_VAMPIRE "ki-vampire" //when someone with this trait rolls maximum damage on a punch and stuns the target, they regain some stamina and do clone damage +#define TRAIT_PASSTABLE "passtable" // mobility flag traits // IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it) @@ -173,6 +176,9 @@ //non-mob traits #define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it +#define VEHICLE_TRAIT "vehicle" // inherited from riding vehicles +#define INNATE_TRAIT "innate" + // item traits #define TRAIT_NODROP "nodrop" @@ -236,8 +242,8 @@ #define GHOSTROLE_TRAIT "ghostrole" #define APHRO_TRAIT "aphro" #define BLOODSUCKER_TRAIT "bloodsucker" -#define CLOTHING_TRAIT "clothing" //used for quirky carrygloves #define SHOES_TRAIT "shoes" //inherited from your sweet kicks +#define GLOVE_TRAIT "glove" //inherited by your cool gloves // unique trait sources, still defines #define STATUE_MUTE "statue" @@ -271,6 +277,7 @@ #define LOCKED_HELMET_TRAIT "locked-helmet" #define NINJA_SUIT_TRAIT "ninja-suit" #define ANTI_DROP_IMPLANT_TRAIT "anti-drop-implant" +#define MARTIAL_ARTIST_TRAIT "martial_artist" #define SLEEPING_CARP_TRAIT "sleeping_carp" #define RISING_BASS_TRAIT "rising_bass" #define ABDUCTOR_ANTAGONIST "abductor-antagonist" diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm index 0617c5d345..ec7a11085c 100644 --- a/code/__DEFINES/vv.dm +++ b/code/__DEFINES/vv.dm @@ -19,3 +19,105 @@ #define VV_RESTORE_DEFAULT "Restore to Default" #define VV_MARKED_DATUM "Marked Datum" #define VV_BITFIELD "Bitfield" +#define VV_TEXT_LOCATE "Custom Reference Locate" +#define VV_PROCCALL_RETVAL "Return Value of Proccall" + +#define VV_MSG_MARKED "
Marked Object" +#define VV_MSG_EDITED "
Var Edited" +#define VV_MSG_DELETED "
Deleted" + +#define VV_NORMAL_LIST_NO_EXPAND_THRESHOLD 50 +#define VV_SPECIAL_LIST_NO_EXPAND_THRESHOLD 150 + +//#define IS_VALID_ASSOC_KEY(V) (istext(V) || ispath(V) || isdatum(V) || islist(V)) +#define IS_VALID_ASSOC_KEY(V) (!isnum(V)) //hhmmm.. + +//General helpers +#define VV_HREF_TARGET_INTERNAL(target, href_key) "?_src_=vars;[HrefToken()];[href_key]=TRUE;[VV_HK_TARGET]=[REF(target)]" +#define VV_HREF_TARGETREF_INTERNAL(targetref, href_key) "?_src_=vars;[HrefToken()];[href_key]=TRUE;[VV_HK_TARGET]=[targetref]" +#define VV_HREF_TARGET(target, href_key, text) "[text]" +#define VV_HREF_TARGETREF(targetref, href_key, text) "[text]" +#define VV_HREF_TARGET_1V(target, href_key, text, varname) "[text]" //for stuff like basic varedits, one variable +#define VV_HREF_TARGETREF_1V(targetref, href_key, text, varname) "[text]" + +#define GET_VV_TARGET locate(href_list[VV_HK_TARGET]) +#define GET_VV_VAR_TARGET href_list[VV_HK_VARNAME] + +//Helper for getting something to vv_do_topic in general +#define VV_TOPIC_LINK(datum, href_key, text) "text" + +//Helpers for vv_get_dropdown() +#define VV_DROPDOWN_OPTION(href_key, name) . += "" + +// VV HREF KEYS +#define VV_HK_TARGET "target" +#define VV_HK_VARNAME "targetvar" //name or index of var for 1 variable targetting hrefs. + +// vv_do_list() keys +#define VV_HK_LIST_ADD "listadd" +#define VV_HK_LIST_EDIT "listedit" +#define VV_HK_LIST_CHANGE "listchange" +#define VV_HK_LIST_REMOVE "listremove" +#define VV_HK_LIST_ERASE_NULLS "listnulls" +#define VV_HK_LIST_ERASE_DUPES "listdupes" +#define VV_HK_LIST_SHUFFLE "listshuffle" +#define VV_HK_LIST_SET_LENGTH "listlen" + +// vv_do_basic() keys +#define VV_HK_BASIC_EDIT "datumedit" +#define VV_HK_BASIC_CHANGE "datumchange" +#define VV_HK_BASIC_MASSEDIT "massedit" + +// /datum +#define VV_HK_DELETE "delete" +#define VV_HK_EXPOSE "expose" +#define VV_HK_CALLPROC "proc_call" +#define VV_HK_MARK "mark" +#define VV_HK_MODIFY_TRAITS "modtraits" + +// /atom +#define VV_HK_MODIFY_TRANSFORM "atom_transform" +#define VV_HK_ADD_REAGENT "addreagent" +#define VV_HK_TRIGGER_EMP "empulse" +#define VV_HK_TRIGGER_EXPLOSION "explode" +#define VV_HK_AUTO_RENAME "auto_rename" + +// /obj +#define VV_HK_OSAY "osay" +#define VV_HK_MASS_DEL_TYPE "mass_delete_type" +#define VV_HK_ARMOR_MOD "mod_obj_armor" + +// /mob +#define VV_HK_GIB "gib" +#define VV_HK_GIVE_SPELL "give_spell" +#define VV_HK_REMOVE_SPELL "remove_spell" +#define VV_HK_GIVE_DISEASE "give_disease" +#define VV_HK_GODMODE "godmode" +#define VV_HK_DROP_ALL "dropall" +#define VV_HK_REGEN_ICONS "regen_icons" +#define VV_HK_PLAYER_PANEL "player_panel" +#define VV_HK_BUILDMODE "buildmode" +#define VV_HK_DIRECT_CONTROL "direct_control" +#define VV_HK_OFFER_GHOSTS "offer_ghosts" + +// /mob/living/carbon +#define VV_HK_MAKE_AI "aiify" +#define VV_HK_MODIFY_BODYPART "mod_bodypart" +#define VV_HK_MODIFY_ORGANS "organs_modify" +#define VV_HK_HALLUCINATION "force_hallucinate" +#define VV_HK_MARTIAL_ART "give_martial_art" +#define VV_HK_GIVE_TRAUMA "give_trauma" +#define VV_HK_CURE_TRAUMA "cure_trauma" + +// /mob/living/carbon/human +#define VV_HK_COPY_OUTFIT "copy_outfit" +#define VV_HK_MOD_QUIRKS "quirkmod" +#define VV_HK_MAKE_MONKEY "human_monkify" +#define VV_HK_MAKE_CYBORG "human_cyborgify" +#define VV_HK_MAKE_SLIME "human_slimeify" +#define VV_HK_MAKE_ALIEN "human_alienify" +#define VV_HK_SET_SPECIES "setspecies" +#define VV_HK_PURRBATION "purrbation" + +// misc +#define VV_HK_SPACEVINE_PURGE "spacevine_purge" diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm index 9afae12c30..5f78aeb740 100644 --- a/code/__HELPERS/_cit_helpers.dm +++ b/code/__HELPERS/_cit_helpers.dm @@ -112,7 +112,7 @@ GLOBAL_VAR_INIT(miscreants_allowed, FALSE) set desc = "Toggles seeing LocalOutOfCharacter chat" prefs.chat_toggles ^= CHAT_LOOC prefs.save_preferences() - src << "You will [(prefs.chat_toggles & CHAT_LOOC) ? "now" : "no longer"] see messages on the LOOC channel." + to_chat(src, "You will [(prefs.chat_toggles & CHAT_LOOC) ? "now" : "no longer"] see messages on the LOOC channel.") SSblackbox.record_feedback("tally", "admin_verb", 1, "TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /mob/living/carbon/proc/has_penis() diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index f16b566b00..a34b3ce67c 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -550,6 +550,27 @@ for(var/thing in flat_list) .[thing] = TRUE +/proc/deep_list2params(list/deep_list) + var/list/L = list() + for(var/i in deep_list) + var/key = i + if(isnum(key)) + L += "[key]" + continue + if(islist(key)) + key = deep_list2params(key) + else if(!istext(key)) + key = "[REF(key)]" + L += "[key]" + var/value = deep_list[key] + if(!isnull(value)) + if(islist(value)) + value = deep_list2params(value) + else if(!(istext(key) || isnum(key))) + value = "[REF(value)]" + L["[key]"] = "[value]" + return list2params(L) + //Picks from the list, with some safeties, and returns the "default" arg if it fails #define DEFAULTPICK(L, default) ((islist(L) && length(L)) ? pick(L) : default) diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index c95896d853..9b877e8fb0 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -116,4 +116,7 @@ GLOBAL_VAR_INIT(cmp_field, "name") if(a_sign != b_sign) return a_sign - b_sign else - return sorttext(b_name, a_name) \ No newline at end of file + return sorttext(b_name, a_name) + +/proc/cmp_item_block_priority_asc(obj/item/A, obj/item/B) + return A.block_priority - B.block_priority diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 7703b13018..7f5035347c 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -425,8 +425,7 @@ candidates -= M /proc/pollGhostCandidates(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, ignore_category = null, flashwindow = TRUE) - var/datum/element/ghost_role_eligibility/eligibility = SSdcs.GetElement(list(/datum/element/ghost_role_eligibility)) - var/list/candidates = eligibility.get_all_ghost_role_eligible() + var/list/candidates = get_all_ghost_role_eligible() return pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category, flashwindow, candidates) /proc/pollCandidates(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, ignore_category = null, flashwindow = TRUE, list/group = null) @@ -581,4 +580,4 @@ var/area/A = C.area if(GLOB.typecache_powerfailure_safe_areas[A.type]) continue - C.energy_fail(rand(duration_min,duration_max)) \ No newline at end of file + C.energy_fail(rand(duration_min,duration_max)) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 38e25b04c5..0c45a746d8 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -89,6 +89,14 @@ INVOKE_ASYNC(GLOBAL_PROC, /proc/init_ref_coin_values) //so the current procedure doesn't sleep because of UNTIL() + for(var/path in subtypesof(/area/holodeck)) + var/area/holodeck/A = path + var/list/compatibles = initial(A.compatible_holodeck_comps) + if(!compatibles || initial(A.abstract_type) == path) + continue + for(var/comp in compatibles) + LAZYADD(GLOB.holodeck_areas_prototypes[comp], A) + //creates every subtype of prototype (excluding prototype) and adds it to list L. //if no list/L is provided, one is created. /proc/init_subtypes(prototype, list/L) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index f7546193aa..febd333578 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -184,6 +184,7 @@ "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), + "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "balls_size" = BALLS_SIZE_DEF, @@ -579,3 +580,16 @@ GLOBAL_LIST_EMPTY(species_list) chosen = pick(mob_spawn_meancritters) var/mob/living/simple_animal/C = new chosen(spawn_location) return C + +/proc/passtable_on(target, source) + var/mob/living/L = target + if(!HAS_TRAIT(L, TRAIT_PASSTABLE) && L.pass_flags & PASSTABLE) + ADD_TRAIT(L, TRAIT_PASSTABLE, INNATE_TRAIT) + ADD_TRAIT(L, TRAIT_PASSTABLE, source) + L.pass_flags |= PASSTABLE + +/proc/passtable_off(target, source) + var/mob/living/L = target + REMOVE_TRAIT(L, TRAIT_PASSTABLE, source) + if(!HAS_TRAIT(L, TRAIT_PASSTABLE)) + L.pass_flags &= ~PASSTABLE diff --git a/code/__HELPERS/radiation.dm b/code/__HELPERS/radiation.dm index e082be7d1f..1570eededb 100644 --- a/code/__HELPERS/radiation.dm +++ b/code/__HELPERS/radiation.dm @@ -25,8 +25,22 @@ /proc/radiation_pulse(atom/source, intensity, range_modifier, log=FALSE, can_contaminate=TRUE) if(!SSradiation.can_fire) return - for(var/dir in GLOB.cardinals) - new /datum/radiation_wave(source, dir, intensity, range_modifier, can_contaminate) + var/area/A = get_area(source) + var/atom/nested_loc = source.loc + var/spawn_waves = TRUE + while(nested_loc != A) + if(nested_loc.rad_flags & RAD_PROTECT_CONTENTS) + spawn_waves = FALSE + break + nested_loc = nested_loc.loc + if(spawn_waves) + for(var/dir in GLOB.cardinals) + new /datum/radiation_wave(source, dir, intensity, range_modifier, can_contaminate) + + var/static/last_huge_pulse = 0 + if(intensity > 3000 && world.time > last_huge_pulse + 200) + last_huge_pulse = world.time + log = TRUE var/list/things = get_rad_contents(source) //copypasta because I don't want to put special code in waves to handle their origin for(var/k in 1 to things.len) @@ -35,11 +49,7 @@ continue thing.rad_act(intensity) - var/static/last_huge_pulse = 0 - if(intensity > 3000 && world.time > last_huge_pulse + 200) - last_huge_pulse = world.time - log = TRUE if(log) - var/turf/_source_T = isturf(source) ? source : get_turf(source) - log_game("Radiation pulse with intensity: [intensity] and range modifier: [range_modifier] in [loc_name(_source_T)] ") + var/turf/_source_T = get_turf(source) + log_game("Radiation pulse with intensity: [intensity] and range modifier: [range_modifier] in [loc_name(_source_T)][spawn_waves ? "" : " (contained by [nested_loc.name])"]") return TRUE diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 0a4af736dd..7cbfbd040a 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -320,8 +320,10 @@ parts += "[FOURSPACES]Nobody died this shift!" if(istype(SSticker.mode, /datum/game_mode/dynamic)) var/datum/game_mode/dynamic/mode = SSticker.mode + mode.update_playercounts() parts += "[FOURSPACES]Final threat level: [mode.threat_level]" parts += "[FOURSPACES]Final threat: [mode.threat]" + parts += "[FOURSPACES]Average threat: [mode.threat_average]" parts += "[FOURSPACES]Executed rules:" for(var/datum/dynamic_ruleset/rule in mode.executed_rules) parts += "[FOURSPACES][FOURSPACES][rule.ruletype] - [rule.name]: -[rule.cost + rule.scaled_times * rule.scaling_cost] threat" @@ -511,7 +513,7 @@ if(owner && GLOB.common_report && SSticker.current_state == GAME_STATE_FINISHED) SSticker.show_roundend_report(owner.client, FALSE) -/datum/action/report/IsAvailable() +/datum/action/report/IsAvailable(silent = FALSE) return 1 /datum/action/report/Topic(href,href_list) diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index 52fe90ed2d..2e27588ae5 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -25,7 +25,8 @@ GLOBAL_VAR_INIT(midnight_rollovers, 0) GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0) /proc/update_midnight_rollover() if (world.timeofday < GLOB.rollovercheck_last_timeofday) //TIME IS GOING BACKWARDS! - return GLOB.midnight_rollovers++ + GLOB.midnight_rollovers++ + GLOB.rollovercheck_last_timeofday = world.timeofday return GLOB.midnight_rollovers /proc/weekdayofthemonth() diff --git a/code/__HELPERS/type_processing.dm b/code/__HELPERS/type_processing.dm new file mode 100644 index 0000000000..ac7e5cab45 --- /dev/null +++ b/code/__HELPERS/type_processing.dm @@ -0,0 +1,60 @@ + +/proc/make_types_fancy(var/list/types) + if (ispath(types)) + types = list(types) + . = list() + for(var/type in types) + var/typename = "[type]" + var/static/list/TYPES_SHORTCUTS = list( + /obj/effect/decal/cleanable = "CLEANABLE", + /obj/item/radio/headset = "HEADSET", + /obj/item/clothing/head/helmet/space = "SPESSHELMET", + /obj/item/book/manual = "MANUAL", + /obj/item/reagent_containers/food/drinks = "DRINK", //longest paths comes first + /obj/item/reagent_containers/food = "FOOD", + /obj/item/reagent_containers = "REAGENT_CONTAINERS", + /obj/machinery/atmospherics = "ATMOS_MECH", + /obj/machinery/portable_atmospherics = "PORT_ATMOS", + /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack = "MECHA_MISSILE_RACK", + /obj/item/mecha_parts/mecha_equipment = "MECHA_EQUIP", + /obj/item/organ = "ORGAN", + /obj/item = "ITEM", + /obj/machinery = "MACHINERY", + /obj/effect = "EFFECT", + /obj = "O", + /datum = "D", + /turf/open = "OPEN", + /turf/closed = "CLOSED", + /turf = "T", + /mob/living/carbon = "CARBON", + /mob/living/simple_animal = "SIMPLE", + /mob/living = "LIVING", + /mob = "M" + ) + for (var/tn in TYPES_SHORTCUTS) + if (copytext(typename,1, length("[tn]/")+1)=="[tn]/" /*findtextEx(typename,"[tn]/",1,2)*/ ) + typename = TYPES_SHORTCUTS[tn]+copytext(typename,length("[tn]/")) + break + .[typename] = type + +/proc/get_fancy_list_of_atom_types() + var/static/list/pre_generated_list + if (!pre_generated_list) //init + pre_generated_list = make_types_fancy(typesof(/atom)) + return pre_generated_list + + +/proc/get_fancy_list_of_datum_types() + var/static/list/pre_generated_list + if (!pre_generated_list) //init + pre_generated_list = make_types_fancy(sortList(typesof(/datum) - typesof(/atom))) + return pre_generated_list + + +/proc/filter_fancy_list(list/L, filter as text) + var/list/matches = new + for(var/key in L) + var/value = L[key] + if(findtext("[key]", filter) || findtext("[value]", filter)) + matches[key] = value + return matches diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 1240c38d93..2cc8c48dd5 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -8,10 +8,8 @@ /proc/invertHTML(HTMLstring) if(!istext(HTMLstring)) CRASH("Given non-text argument!") - return else if(length(HTMLstring) != 7) CRASH("Given non-HTML argument!") - return else if(length_char(HTMLstring) != 7) CRASH("Given non-hex symbols in argument!") var/textr = copytext(HTMLstring, 2, 4) diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index fb8863ebe7..bcf35859c3 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -50,3 +50,5 @@ GLOBAL_LIST_EMPTY_TYPED(areas_by_type, /area) GLOBAL_LIST_EMPTY(all_abstract_markers) GLOBAL_LIST_EMPTY(stationroom_landmarks) //List of all spawns for stationrooms + +GLOBAL_LIST_EMPTY(holodeck_areas_prototypes) //List of holodeck area prototypes per holodeck computer type \ No newline at end of file diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index 21e3663cca..af483bf888 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -14,7 +14,7 @@ GLOBAL_VAR_INIT(fileaccess_timer, 0) GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) -GLOBAL_VAR_INIT(CELLRATE, 0.002) // conversion ratio between a watt-tick and kilojoule +GLOBAL_VAR_INIT(CELLRATE, 0.002) // conversion ratio between a watt-tick and kilojoule, dimensionless, kilojoules/watt-tick GLOBAL_VAR_INIT(CHARGELEVEL, 0.001) // Cap for how fast cells charge, as a percentage-per-tick (.001 means cellcharge is capped to 1% per second) GLOBAL_LIST_EMPTY(powernets) diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index ec4784bd1f..02cbd6bea5 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -49,6 +49,7 @@ message_admins("[ADMIN_LOOKUPFLW(src)] might be running a modified client! (failed can_see on AI click of [A] (Turf Loc: [ADMIN_VERBOSEJMP(pixel_turf)]))") var/message = "[key_name(src)] might be running a modified client! (failed can_see on AI click of [A] (Turf Loc: [AREACOORD(pixel_turf)]))" log_admin(message) + to_chat(src, "You're experiencing a bug. Reconnect immediately to fix it. Admins have been notified.") if(REALTIMEOFDAY >= chnotify + 9000) chnotify = REALTIMEOFDAY send2irc_adminless_only("NOCHEAT", message) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index bdc6ea2980..7c116cc606 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -334,7 +334,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." return var/datum/antagonist/cult/antag = mob_viewer.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(!antag) + if(!antag?.cult_team) return var/datum/objective/sacrifice/sac_objective = locate() in antag.cult_team.objectives diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 2136ee96e4..b0e1d39d9a 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -125,7 +125,7 @@ if(!CHECK_MOBILITY(user, MOBILITY_STAND)) totitemdamage *= 0.5 //CIT CHANGES END HERE - if(user != src && check_shields(I, totitemdamage, "the [I.name]", MELEE_ATTACK, I.armour_penetration)) + if((user != src) && run_block(I, totitemdamage, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user) & BLOCK_SUCCESS) return FALSE send_item_attack_message(I, user) I.do_stagger_action(src, user) diff --git a/code/controllers/hooks.dm b/code/controllers/hooks.dm index f499a61ae7..fe6a49c854 100644 --- a/code/controllers/hooks.dm +++ b/code/controllers/hooks.dm @@ -27,13 +27,11 @@ var/hook_path = text2path("/hook/[hook]") if(!hook_path) CRASH("Invalid hook '/hook/[hook]' called.") - return 0 var/caller = new hook_path var/status = 1 for(var/P in typesof("[hook_path]/proc")) if(!call(caller, P)(arglist(args))) CRASH("Hook '[P]' failed or runtimed.") - status = 0 return status diff --git a/code/controllers/subsystem/dcs.dm b/code/controllers/subsystem/dcs.dm index 8b068e5d67..3243a8d8c8 100644 --- a/code/controllers/subsystem/dcs.dm +++ b/code/controllers/subsystem/dcs.dm @@ -38,11 +38,17 @@ PROCESSING_SUBSYSTEM_DEF(dcs) if(istext(key)) value = arguments[key] if(!(istext(key) || isnum(key))) - key = REF(key) + if(islist(key)) // CITADEL EDIT + key = deep_list2params(key) + else + key = REF(key) key = "[key]" // Key is stringified so numbers dont break things if(!isnull(value)) if(!(istext(value) || isnum(value))) - value = REF(value) + if(islist(value)) // CITADEL EDIT + value = deep_list2params(value) + else + value = REF(value) named_arguments["[key]"] = value else fullid += "[key]" diff --git a/code/controllers/subsystem/fail2topic.dm b/code/controllers/subsystem/fail2topic.dm index 02e7bc7aab..78c4807c3f 100644 --- a/code/controllers/subsystem/fail2topic.dm +++ b/code/controllers/subsystem/fail2topic.dm @@ -21,9 +21,6 @@ SUBSYSTEM_DEF(fail2topic) DropFirewallRule() // Clear the old bans if any still remain - if (world.system_type == UNIX && enabled) - enabled = FALSE - subsystem_log("DISABLED - UNIX systems are not supported.") if(!enabled) flags |= SS_NO_FIRE can_fire = FALSE @@ -90,7 +87,10 @@ SUBSYSTEM_DEF(fail2topic) fail_counts -= ip rate_limiting -= ip - . = shell("netsh advfirewall firewall add rule name=\"[rule_name]\" dir=in interface=any action=block remoteip=[ip]") + if (world.system_type == UNIX) + . = shell("iptables -A [rule_name] -s [ip] -j DROP") + else + . = shell("netsh advfirewall firewall add rule name=\"[rule_name]\" dir=in interface=any action=block remoteip=[ip]") if (.) subsystem_log("Failed to ban [ip]. Exit code: [.].") @@ -105,7 +105,10 @@ SUBSYSTEM_DEF(fail2topic) active_bans = list() - . = shell("netsh advfirewall firewall delete rule name=\"[rule_name]\"") + if (world.system_type == UNIX) + . = shell("iptables -F [rule_name]") //Let's just assume that folks running linux are smart enough to have a dedicated chain configured for this. + else + . = shell("netsh advfirewall firewall delete rule name=\"[rule_name]\"") if (.) subsystem_log("Failed to drop firewall rule. Exit code: [.].") diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index de2ff17a97..0a60c6e5d3 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -14,6 +14,7 @@ SUBSYSTEM_DEF(persistence) var/list/saved_modes = list(1,2,3) var/list/saved_dynamic_rules = list(list(),list(),list()) var/list/saved_storytellers = list("foo","bar","baz") + var/list/average_dynamic_threat = 50 var/list/saved_maps var/list/saved_trophies = list() var/list/spawned_objects = list() @@ -191,6 +192,8 @@ SUBSYSTEM_DEF(persistence) if(!json) return saved_storytellers = json["data"] + if(saved_storytellers.len > 3) + average_dynamic_threat = saved_storytellers[4] saved_storytellers.len = 3 /datum/controller/subsystem/persistence/proc/LoadRecentMaps() @@ -434,9 +437,10 @@ SUBSYSTEM_DEF(persistence) saved_storytellers[3] = saved_storytellers[2] saved_storytellers[2] = saved_storytellers[1] saved_storytellers[1] = mode.storyteller.name + average_dynamic_threat = (mode.threat_average + average_dynamic_threat) / 2 var/json_file = file("data/RecentStorytellers.json") var/list/file_data = list() - file_data["data"] = saved_storytellers + file_data["data"] = saved_storytellers + average_dynamic_threat fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) diff --git a/code/controllers/subsystem/processing/chemistry.dm b/code/controllers/subsystem/processing/chemistry.dm index da31d65fb3..64a780c1ad 100644 --- a/code/controllers/subsystem/processing/chemistry.dm +++ b/code/controllers/subsystem/processing/chemistry.dm @@ -1,5 +1,4 @@ PROCESSING_SUBSYSTEM_DEF(chemistry) wait = 5 flags = SS_KEEP_TIMING - - + name = "Chemistry" diff --git a/code/controllers/subsystem/processing/instruments.dm b/code/controllers/subsystem/processing/instruments.dm new file mode 100644 index 0000000000..a4e0d7703f --- /dev/null +++ b/code/controllers/subsystem/processing/instruments.dm @@ -0,0 +1,43 @@ +PROCESSING_SUBSYSTEM_DEF(instruments) + name = "Instruments" + wait = 0.5 + init_order = INIT_ORDER_INSTRUMENTS + flags = SS_KEEP_TIMING + priority = FIRE_PRIORITY_INSTRUMENTS + var/static/list/datum/instrument/instrument_data = list() //id = datum + var/static/list/datum/song/songs = list() + var/static/musician_maxlines = 600 + var/static/musician_maxlinechars = 300 + var/static/musician_hearcheck_mindelay = 5 + var/static/max_instrument_channels = MAX_INSTRUMENT_CHANNELS + var/static/current_instrument_channels = 0 + +/datum/controller/subsystem/processing/instruments/Initialize() + initialize_instrument_data() + return ..() + +/datum/controller/subsystem/processing/instruments/proc/on_song_new(datum/song/S) + songs += S + +/datum/controller/subsystem/processing/instruments/proc/on_song_del(datum/song/S) + songs -= S + +/datum/controller/subsystem/processing/instruments/proc/initialize_instrument_data() + for(var/path in subtypesof(/datum/instrument)) + var/datum/instrument/I = path + if(initial(I.abstract_type) == path) + continue + I = new path + I.Initialize() + instrument_data[I.id || "[I.type]"] = I + CHECK_TICK + +/datum/controller/subsystem/processing/instruments/proc/get_instrument(id_or_path) + return instrument_data["[id_or_path]"] + +/datum/controller/subsystem/processing/instruments/proc/reserve_instrument_channel(datum/instrument/I) + if(current_instrument_channels > max_instrument_channels) + return + . = SSsounds.reserve_sound_channel(I) + if(!isnull(.)) + current_instrument_channels++ diff --git a/code/controllers/subsystem/processing/status_effects.dm b/code/controllers/subsystem/processing/status_effects.dm index e8984a44cb..57b340b2ce 100644 --- a/code/controllers/subsystem/processing/status_effects.dm +++ b/code/controllers/subsystem/processing/status_effects.dm @@ -1,3 +1,4 @@ PROCESSING_SUBSYSTEM_DEF(status_effects) wait = 1 flags = SS_TICKER + name = "Status Effects" diff --git a/code/controllers/subsystem/processing/weather.dm b/code/controllers/subsystem/processing/weather.dm index 0a1b4fc609..ca067953cc 100644 --- a/code/controllers/subsystem/processing/weather.dm +++ b/code/controllers/subsystem/processing/weather.dm @@ -47,7 +47,6 @@ PROCESSING_SUBSYSTEM_DEF(weather) break if (!ispath(weather_datum_type, /datum/weather)) CRASH("run_weather called with invalid weather_datum_type: [weather_datum_type || "null"]") - return if (isnull(z_levels)) z_levels = SSmapping.levels_by_trait(initial(weather_datum_type.target_trait)) @@ -55,7 +54,6 @@ PROCESSING_SUBSYSTEM_DEF(weather) z_levels = list(z_levels) else if (!islist(z_levels)) CRASH("run_weather called with invalid z_levels: [z_levels || "null"]") - return var/datum/weather/W = new weather_datum_type(z_levels) W.telegraph() diff --git a/code/controllers/subsystem/sounds.dm b/code/controllers/subsystem/sounds.dm new file mode 100644 index 0000000000..5e7c5e6545 --- /dev/null +++ b/code/controllers/subsystem/sounds.dm @@ -0,0 +1,91 @@ +#define DATUMLESS "NO_DATUM" + +SUBSYSTEM_DEF(sounds) + name = "Sounds" + flags = SS_NO_FIRE + init_order = INIT_ORDER_SOUNDS + var/static/using_channels_max = CHANNEL_HIGHEST_AVAILABLE //BYOND max channels + + // Hey uh these two needs to be initialized fast because the whole "things get deleted before init" thing. + /// Assoc list, "[channel]" = either the datum using it or TRUE for an unsafe-reserved (datumless reservation) channel + var/list/using_channels = list() + /// Assoc list datum = list(channel1, channel2, ...) for what channels something reserved. + var/list/using_channels_by_datum = list() + /// List of all available channels with associations set to TRUE for fast lookups/allocation. + var/list/available_channels + +/datum/controller/subsystem/sounds/Initialize() + setup_available_channels() + return ..() + +/datum/controller/subsystem/sounds/proc/setup_available_channels() + available_channels = list() + for(var/i in 1 to using_channels_max) + available_channels[num2text(i)] = TRUE + +/// Removes a channel from using list. +/datum/controller/subsystem/sounds/proc/free_sound_channel(channel) + channel = num2text(channel) + var/using = using_channels[channel] + using_channels -= channel + if(using) + using_channels_by_datum[using] -= channel + if(!length(using_channels_by_datum[using])) + using_channels_by_datum -= using + available_channels[channel] = TRUE + +/// Frees all the channels a datum is using. +/datum/controller/subsystem/sounds/proc/free_datum_channels(datum/D) + var/list/L = using_channels_by_datum[D] + if(!L) + return + for(var/channel in L) + using_channels -= channel + available_channels[channel] = TRUE + using_channels_by_datum -= D + +/// Frees all datumless channels +/datum/controller/subsystem/sounds/proc/free_datumless_channels() + free_datum_channels(DATUMLESS) + +/// NO AUTOMATIC CLEANUP - If you use this, you better manually free it later! Returns an integer for channel. +/datum/controller/subsystem/sounds/proc/reserve_sound_channel_datumless() + var/channel = random_available_channel_text() + if(!channel) //oh no.. + return FALSE + available_channels -= channel + using_channels[channel] = DATUMLESS + LAZYINITLIST(using_channels_by_datum[DATUMLESS]) + using_channels_by_datum[DATUMLESS] += channel + return text2num(channel) + +/// Reserves a channel for a datum. Automatic cleanup only when the datum is deleted. Returns an integer for channel. +/datum/controller/subsystem/sounds/proc/reserve_sound_channel(datum/D) + if(!D) //i don't like typechecks but someone will fuck it up + CRASH("Attempted to reserve sound channel without datum using the managed proc.") + var/channel = random_available_channel_text() + if(!channel) + return FALSE + available_channels -= channel + using_channels[channel] = D + LAZYINITLIST(using_channels_by_datum[D]) + using_channels_by_datum[D] += channel + return text2num(channel) + +/// Random available channel, returns text. +/datum/controller/subsystem/sounds/proc/random_available_channel_text() + return pick(available_channels) + +/// Random available channel, returns number +/datum/controller/subsystem/sounds/proc/random_available_channel() + return text2num(pick(available_channels)) + +/// If a channel is available +/datum/controller/subsystem/sounds/proc/is_channel_available(channel) + return available_channels[num2text(channel)] + +/// How many channels we have left. +/datum/controller/subsystem/sounds/proc/available_channels_left() + return length(available_channels) + +#undef DATUMLESS diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index 0d854371aa..87158f021e 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -172,7 +172,7 @@ SUBSYSTEM_DEF(traumas) /obj/item/ammo_box/magazine/pistolm9mm, /obj/item/ammo_box/a357, /obj/item/ammo_box/magazine/m12g, /obj/item/ammo_box/magazine/mm195x129, /obj/item/antag_spawner/nuke_ops, /obj/mecha/combat/gygax/dark, /obj/mecha/combat/marauder/mauler, /obj/item/soap/syndie, /obj/item/gun/syringe/syndicate, /obj/item/cartridge/virus/syndicate, /obj/item/cartridge/virus/frame, /obj/item/chameleon, /obj/item/storage/box/syndie_kit/cutouts, /obj/item/clothing/suit/space/hardsuit/syndi, /obj/item/card/emag, /obj/item/storage/toolbox/syndicate, /obj/item/storage/book/bible/syndicate, /obj/item/encryptionkey/binary, /obj/item/encryptionkey/syndicate, /obj/item/aiModule/syndicate, /obj/item/clothing/shoes/magboots/syndie, /obj/item/powersink, /obj/item/sbeacondrop, /obj/item/sbeacondrop/bomb, /obj/item/syndicatedetonator, /obj/item/shield/energy, /obj/item/assault_pod, /obj/item/slimepotion/slime/sentience/nuclear, /obj/item/stack/telecrystal, /obj/item/jammer, /obj/item/codespeak_manual/unlimited, - /obj/item/toy/cards/deck/syndicate, /obj/item/storage/secure/briefcase/syndie, /obj/item/storage/fancy/cigarettes/cigpack_syndicate, /obj/item/toy/syndicateballoon, /obj/item/clothing/gloves/rapid, /obj/item/paper/fluff/ruins/thederelict/syndie_mission, /obj/item/organ/cyberimp/eyes/hud/security/syndicate, /obj/item/clothing/head/HoS/syndicate, + /obj/item/toy/cards/deck/syndicate, /obj/item/storage/secure/briefcase/syndie, /obj/item/storage/fancy/cigarettes/cigpack_syndicate, /obj/item/toy/syndicateballoon, /obj/item/clothing/gloves/fingerless/pugilist/rapid, /obj/item/paper/fluff/ruins/thederelict/syndie_mission, /obj/item/organ/cyberimp/eyes/hud/security/syndicate, /obj/item/clothing/head/HoS/syndicate, /obj/machinery/computer/pod/old/syndicate, /obj/machinery/vending/medical/syndicate_access, /obj/item/mmi/syndie, /obj/item/target/syndicate, /obj/machinery/vending/cigarette/syndicate, /obj/item/robot_module/syndicate, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/power/singularity_beacon/syndicate, /obj/item/clothing/head/syndicatefake, /obj/item/radio/headset/syndicate, /obj/item/gun/ballistic/automatic/pistol/antitank/syndicate, /obj/item/pda/syndicate, /obj/item/clothing/suit/armor/vest/capcarapace/syndicate, /obj/item/gun/ballistic/automatic/flechette, /obj/item/ammo_box/magazine/flechette, /obj/item/clothing/suit/toggle/lawyer/black/syndie, /obj/item/melee/transforming/energy/sword/cx/traitor, /obj/structure/sign/poster/contraband/syndicate_pistol, /obj/structure/sign/poster/contraband/syndicate_recruitment, /obj/item/bedsheet/syndie, /obj/item/borg/upgrade/syndicate, /obj/item/tank/jetpack/oxygen/harness, /obj/item/firing_pin/implant/pindicate, /obj/item/reagent_containers/glass/bottle/traitor, /obj/item/storage/belt/military, diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 7d72951278..a202afd905 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -763,7 +763,7 @@ SUBSYSTEM_DEF(vote) remove_from_client() Remove(owner) -/datum/action/vote/IsAvailable() +/datum/action/vote/IsAvailable(silent = FALSE) return 1 /datum/action/vote/proc/remove_from_client() diff --git a/code/datums/action.dm b/code/datums/action.dm index 19e418579e..f2f93ac40d 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -6,13 +6,15 @@ /datum/action var/name = "Generic Action" var/desc = null - var/obj/target = null + var/atom/target = null var/check_flags = 0 var/required_mobility_flags = MOBILITY_USE var/processing = FALSE var/obj/screen/movable/action_button/button = null var/buttontooltipstyle = "" var/transparent_when_unavailable = TRUE + var/use_target_appearance = FALSE + var/list/target_appearance_matrix //if set, will be used to transform the target button appearance as an arglist. var/button_icon = 'icons/mob/actions/backgrounds.dmi' //This is the file for the BACKGROUND icon var/background_icon_state = ACTION_BUTTON_DEFAULT_BACKGROUND //And this is the state for the background icon @@ -88,14 +90,14 @@ /datum/action/proc/Trigger() if(!IsAvailable()) return FALSE - if(SEND_SIGNAL(src, COMSIG_ACTION_TRIGGER, src) & COMPONENT_ACTION_BLOCK_TRIGGER) + if(SEND_SIGNAL(src, COMSIG_ACTION_TRIGGER, target) & COMPONENT_ACTION_BLOCK_TRIGGER) return FALSE return TRUE /datum/action/proc/Process() return -/datum/action/proc/IsAvailable() +/datum/action/proc/IsAvailable(silent = FALSE) if(!owner) return FALSE var/mob/living/L = owner @@ -116,29 +118,42 @@ return TRUE /datum/action/proc/UpdateButtonIcon(status_only = FALSE, force = FALSE) - if(button) - if(!status_only) - button.name = name - button.desc = desc - if(owner && owner.hud_used && background_icon_state == ACTION_BUTTON_DEFAULT_BACKGROUND) - var/list/settings = owner.hud_used.get_action_buttons_icons() - if(button.icon != settings["bg_icon"]) - button.icon = settings["bg_icon"] - if(button.icon_state != settings["bg_state"]) - button.icon_state = settings["bg_state"] - else - if(button.icon != button_icon) - button.icon = button_icon - if(button.icon_state != background_icon_state) - button.icon_state = background_icon_state + if(!button) + return + if(!status_only) + button.name = name + button.desc = desc + if(owner && owner.hud_used && background_icon_state == ACTION_BUTTON_DEFAULT_BACKGROUND) + var/list/settings = owner.hud_used.get_action_buttons_icons() + if(button.icon != settings["bg_icon"]) + button.icon = settings["bg_icon"] + if(button.icon_state != settings["bg_state"]) + button.icon_state = settings["bg_state"] + else + if(button.icon != button_icon) + button.icon = button_icon + if(button.icon_state != background_icon_state) + button.icon_state = background_icon_state + if(!use_target_appearance) ApplyIcon(button, force) - if(!IsAvailable()) - button.color = transparent_when_unavailable ? rgb(128,0,0,128) : rgb(128,0,0) - else - button.color = rgb(255,255,255,255) - return 1 + else if(target && button.appearance_cache != target.appearance) //replace with /ref comparison if this is not valid. + var/mutable_appearance/M = new(target) + M.layer = FLOAT_LAYER + M.plane = FLOAT_PLANE + if(target_appearance_matrix) + var/list/L = target_appearance_matrix + M.transform = matrix(L[1], L[2], L[3], L[4], L[5], L[6]) + button.cut_overlays() + button.add_overlay(M) + button.appearance_cache = target.appearance + + if(!IsAvailable(TRUE)) + button.color = transparent_when_unavailable ? rgb(128,0,0,128) : rgb(128,0,0) + else + button.color = rgb(255,255,255,255) + return 1 /datum/action/proc/ApplyIcon(obj/screen/movable/action_button/current_button, force = FALSE) if(icon_icon && button_icon_state && ((current_button.button_icon_state != button_icon_state) || force)) @@ -165,6 +180,7 @@ /datum/action/item_action check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_LYING|AB_CHECK_CONSCIOUS button_icon_state = null + use_target_appearance = TRUE // If you want to override the normal icon being the item // then change this to an icon state @@ -188,23 +204,6 @@ I.ui_action_click(owner, src) return 1 -/datum/action/item_action/ApplyIcon(obj/screen/movable/action_button/current_button, force) - if(button_icon && button_icon_state) - // If set, use the custom icon that we set instead - // of the item appearence - ..() - else if(target && current_button.appearance_cache != target.appearance) //replace with /ref comparison if this is not valid. - var/obj/item/I = target - var/old_layer = I.layer - var/old_plane = I.plane - I.layer = FLOAT_LAYER //AAAH - I.plane = FLOAT_PLANE //^ what that guy said - current_button.cut_overlays() - current_button.add_overlay(I) - I.layer = old_layer - I.plane = old_plane - current_button.appearance_cache = I.appearance - /datum/action/item_action/toggle_light name = "Toggle Light" @@ -302,23 +301,13 @@ name = "Toggle Friendly Fire \[ON\]" ..() -/datum/action/item_action/synthswitch - name = "Change Synthesizer Instrument" - desc = "Change the type of instrument your synthesizer is playing as." - -/datum/action/item_action/synthswitch/Trigger() - if(istype(target, /obj/item/instrument/piano_synth)) - var/obj/item/instrument/piano_synth/synth = target - return synth.selectInstrument() - return ..() - /datum/action/item_action/vortex_recall name = "Vortex Recall" desc = "Recall yourself, and anyone nearby, to an attuned hierophant beacon at any time.
If the beacon is still attached, will detach it." icon_icon = 'icons/mob/actions/actions_items.dmi' button_icon_state = "vortex_recall" -/datum/action/item_action/vortex_recall/IsAvailable() +/datum/action/item_action/vortex_recall/IsAvailable(silent = FALSE) if(istype(target, /obj/item/hierophant_club)) var/obj/item/hierophant_club/H = target if(H.teleporting) @@ -330,7 +319,7 @@ background_icon_state = "bg_clock" buttontooltipstyle = "clockcult" -/datum/action/item_action/clock/IsAvailable() +/datum/action/item_action/clock/IsAvailable(silent = FALSE) if(!is_servant_of_ratvar(owner)) return 0 return ..() @@ -339,7 +328,7 @@ name = "Create Judicial Marker" desc = "Allows you to create a stunning Judicial Marker at any location in view. Click again to disable." -/datum/action/item_action/clock/toggle_visor/IsAvailable() +/datum/action/item_action/clock/toggle_visor/IsAvailable(silent = FALSE) if(!is_servant_of_ratvar(owner)) return 0 if(istype(target, /obj/item/clothing/glasses/judicial_visor)) @@ -418,7 +407,7 @@ /datum/action/item_action/jetpack_stabilization name = "Toggle Jetpack Stabilization" -/datum/action/item_action/jetpack_stabilization/IsAvailable() +/datum/action/item_action/jetpack_stabilization/IsAvailable(silent = FALSE) var/obj/item/tank/jetpack/J = target if(!istype(J) || !J.on) return 0 @@ -475,7 +464,7 @@ /datum/action/item_action/organ_action check_flags = AB_CHECK_CONSCIOUS -/datum/action/item_action/organ_action/IsAvailable() +/datum/action/item_action/organ_action/IsAvailable(silent = FALSE) var/obj/item/organ/I = target if(!I.owner) return 0 @@ -644,32 +633,32 @@ return FALSE if(target) var/obj/effect/proc_holder/S = target - S.Click() + S.Trigger(usr) return TRUE -/datum/action/spell_action/IsAvailable() +/datum/action/spell_action/IsAvailable(silent = FALSE) if(!target) return FALSE return TRUE /datum/action/spell_action/spell -/datum/action/spell_action/spell/IsAvailable() +/datum/action/spell_action/spell/IsAvailable(silent = FALSE) if(!target) return FALSE var/obj/effect/proc_holder/spell/S = target if(owner) - return S.can_cast(owner) + return S.can_cast(owner, FALSE, silent) return FALSE /datum/action/spell_action/alien -/datum/action/spell_action/alien/IsAvailable() +/datum/action/spell_action/alien/IsAvailable(silent = FALSE) if(!target) return FALSE var/obj/effect/proc_holder/alien/ab = target if(owner) - return ab.cost_check(ab.check_turf,owner,1) + return ab.cost_check(ab.check_turf,owner,silent) return FALSE @@ -711,7 +700,7 @@ button.maptext_width = 24 button.maptext_height = 12 -/datum/action/cooldown/IsAvailable() +/datum/action/cooldown/IsAvailable(silent = FALSE) return next_use_time <= world.time /datum/action/cooldown/proc/StartCooldown() diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 8b82c1812e..5b1df6cb68 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -39,7 +39,7 @@ //title_image = ntitle_image /datum/browser/proc/add_stylesheet(name, file) - if (istype(name, /datum/asset/spritesheet)) + if(istype(name, /datum/asset/spritesheet)) var/datum/asset/spritesheet/sheet = name stylesheets["spritesheet_[sheet.name].css"] = "data/spritesheets/[sheet.name]" else diff --git a/code/datums/components/crafting/glassware.dm b/code/datums/components/crafting/glassware/glassware.dm similarity index 58% rename from code/datums/components/crafting/glassware.dm rename to code/datums/components/crafting/glassware/glassware.dm index 22d7e01f8a..2b57837c5d 100644 --- a/code/datums/components/crafting/glassware.dm +++ b/code/datums/components/crafting/glassware/glassware.dm @@ -14,26 +14,32 @@ name = "Glass working tools" desc = "A lovely belt of most the tools you will need to shape, mold, and refine glass into more advanced shapes." icon_state = "glass_tools" - tool_behaviour = TOOL_GLASS_CUT + tool_behaviour = TOOL_GLASS_CUT //Cutting takes 20 ticks /obj/item/glasswork/blowing_rod name = "Glass working blow rod" desc = "A hollow metal stick made for glass blowing." icon_state = "blowing_rods_unused" - tool_behaviour = TOOL_BLOW + tool_behaviour = TOOL_BLOW //Rods take 5 ticks -/obj/item/glasswork/glass_base +/obj/item/glasswork/glass_base //Welding takes 30 ticks name = "Glass fodder sheet" desc = "A sheet of glass set aside for glass working" icon_state = "glass_base" var/next_step = null var/rod = /obj/item/glasswork/blowing_rod -/obj/item/lens - name = "Optical lens" - desc = "Good for selling or crafting, by itself its useless" - icon = 'icons/obj/chemical.dmi' - icon_state = "glass_optics" +/obj/item/tea_plate + name = "Tea Plate" + desc = "A polished plate for a tea cup. How fancy!" + icon = 'icons/obj/glass_ware.dmi' + icon_state = "tea_plate" + +/obj/item/tea_cup + name = "Tea Cup" + desc = "A glass cup made for fake tea!" + icon = 'icons/obj/glass_ware.dmi' + icon_state = "tea_plate" //////////////////////Chem Disk///////////////////// //Two Steps // @@ -49,8 +55,9 @@ /obj/item/glasswork/glass_base/dish/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/dish_part1 name = "Half chem dish sheet" @@ -61,8 +68,9 @@ /obj/item/glasswork/glass_base/dish_part1/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + qdel(src) //////////////////////Lens////////////////////////// //Six Steps // @@ -78,8 +86,9 @@ /obj/item/glasswork/glass_base/glass_lens/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/glass_lens_part1 name = "Glass fodder sheet" @@ -90,8 +99,9 @@ /obj/item/glasswork/glass_base/glass_lens_part1/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_WELDER) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/glass_lens_part2 name = "Glass fodder sheet" @@ -102,8 +112,9 @@ /obj/item/glasswork/glass_base/glass_lens_part2/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_WELDER) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/glass_lens_part3 name = "Glass fodder sheet" @@ -114,9 +125,10 @@ /obj/item/glasswork/glass_base/glass_lens_part3/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_BLOW) - new next_step(user.loc, 1) - qdel(src) - qdel(I) + if(do_after(user,5, target = src)) + new next_step(user.loc, 1) + qdel(src) + qdel(I) /obj/item/glasswork/glass_base/glass_lens_part4 name = "Glass fodder sheet" @@ -127,29 +139,31 @@ /obj/item/glasswork/glass_base/glass_lens_part4/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - new rod(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/glass_lens_part5 name = "Unpolished glass lens" - desc = "A small unpolished glass lens. Could be polished with some cloth." - icon = 'icons/obj/chemical.dmi' + desc = "A small unpolished glass lens. Could be polished with some silk." + icon = 'icons/obj/glass_ware.dmi' icon_state = "glass_optics" next_step = /obj/item/glasswork/glass_base/glass_lens_part6 /obj/item/glasswork/glass_base/glass_lens_part5/attackby(obj/item/I, mob/user, params) ..() - if(istype(I, /obj/item/stack/sheet/cloth)) - new next_step(user.loc, 1) - qdel(src) + if(istype(I, /obj/item/stack/sheet/silk)) + if(do_after(user,10, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/glass_lens_part6 name = "Unrefined glass lens" desc = "A small polished glass lens. Just needs to be refined with some sandstone." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/glass_ware.dmi' icon_state = "glass_optics" - next_step = /obj/item/lens + next_step = /obj/item/glasswork/glass_base/lens /obj/item/glasswork/glass_base/glass_lens_part6/attackby(obj/item/I, mob/user, params) ..() @@ -171,8 +185,9 @@ /obj/item/glasswork/glass_base/spouty/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/spouty_part2 name = "Glass fodder sheet" @@ -183,8 +198,9 @@ /obj/item/glasswork/glass_base/spouty_part2/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_WELDER) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/spouty_part3 name = "Glass fodder sheet" @@ -195,9 +211,10 @@ /obj/item/glasswork/glass_base/spouty_part3/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_BLOW) - new next_step(user.loc, 1) - qdel(src) - qdel(I) + if(do_after(user,5, target = src)) + new next_step(user.loc, 1) + qdel(src) + qdel(I) /obj/item/glasswork/glass_base/spouty_part4 name = "Glass fodder sheet" @@ -208,9 +225,10 @@ /obj/item/glasswork/glass_base/spouty_part4/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - new rod(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(src) //////////////////////Small Bulb Flask////////////// //Two Steps // @@ -226,8 +244,9 @@ /obj/item/glasswork/glass_base/flask_small/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_WELDER) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/flask_small_part1 name = "Metled glass" @@ -238,9 +257,10 @@ /obj/item/glasswork/glass_base/flask_small_part1/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_BLOW) - new next_step(user.loc, 1) - qdel(src) - qdel(I) + if(do_after(user,5, target = src)) + new next_step(user.loc, 1) + qdel(src) + qdel(I) /obj/item/glasswork/glass_base/flask_small_part2 name = "Metled glass" @@ -251,9 +271,10 @@ /obj/item/glasswork/glass_base/flask_small_part2/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - new rod(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(src) //////////////////////Large Bulb Flask////////////// //Two Steps // @@ -269,8 +290,9 @@ /obj/item/glasswork/glass_base/flask_large/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_WELDER) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/flask_large_part1 name = "Metled glass" @@ -281,9 +303,10 @@ /obj/item/glasswork/glass_base/flask_large_part1/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_BLOW) - new next_step(user.loc, 1) - qdel(src) - qdel(I) + if(do_after(user,5, target = src)) + new next_step(user.loc, 1) + qdel(src) + qdel(I) /obj/item/glasswork/glass_base/flask_large_part2 name = "Metled glass" @@ -294,6 +317,138 @@ /obj/item/glasswork/glass_base/flask_large_part2/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - new rod(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(src) + +//////////////////////Tea Plates//////////////////// +//Three Steps // +//Sells for 1200 cr, takes 5 glass shets // +//Usefull for selling and chemical things // +//////////////////////////////////////////////////// + +/obj/item/glasswork/glass_base/tea_plate + name = "Glass fodder sheet" + desc = "A set of glass sheets set aside for glass working, this one is ideal for a tea plate, how fancy! Needs to be heated with some tools." + next_step = /obj/item/glasswork/glass_base/tea_plate1 + +/obj/item/glasswork/glass_base/tea_plate/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_WELDER) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/tea_plate1 + name = "Metled glass" + desc = "A blob of metled glass, this one is ideal for a tea plate. Needs to be blown with some tools." + icon_state = "glass_base_molding" + next_step = /obj/item/glasswork/glass_base/tea_plate2 + +/obj/item/glasswork/glass_base/tea_plate1/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_BLOW) + if(do_after(user,5, target = src)) + new next_step(user.loc, 1) + qdel(src) + qdel(I) + +/obj/item/glasswork/glass_base/tea_plate2 + name = "Metled glass" + desc = "A blob of metled glass on the end of a blowing rod. Needs to be cut off with some tools." + icon_state = "blowing_rods_inuse" + next_step = /obj/item/glasswork/glass_base/tea_plate3 + +/obj/item/glasswork/glass_base/tea_plate2/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_GLASS_CUT) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/tea_plate3 + name = "Disk of glass" + desc = "A disk of glass that can be cant be used for much. Needs to be polished with some silk." + icon_state = "glass_base_half" + next_step = /obj/item/tea_plate + +/obj/item/glasswork/glass_base/tea_plate3/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/stack/sheet/silk)) + if(do_after(user,10, target = src)) + new next_step(user.loc, 1) + qdel(src) + +//////////////////////Tea Cup/////////////////////// +//Four Steps // +//Sells for 1800 cr, takes 6 glass shets // +//Usefull for selling and chemical things // +//////////////////////////////////////////////////// + +/obj/item/glasswork/glass_base/tea_cup + name = "Glass fodder sheet" + desc = "A set of glass sheets set aside for glass working, this one is ideal for a tea cup, how fancy! Needs to be heated with some tools." + next_step = /obj/item/glasswork/glass_base/tea_cup1 + +/obj/item/glasswork/glass_base/tea_cup/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_WELDER) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/tea_cup1 + name = "Metled glass" + desc = "A blob of metled glass, this one is ideal for a tea cup. Needs to be blown with some tools." + icon_state = "glass_base_molding" + next_step = /obj/item/glasswork/glass_base/tea_cup2 + +/obj/item/glasswork/glass_base/tea_cup1/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_BLOW) + if(do_after(user,5, target = src)) + new next_step(user.loc, 1) + qdel(src) + qdel(I) + +/obj/item/glasswork/glass_base/tea_cupe2 + name = "Metled glass" + desc = "A blob of metled glass on the end of a blowing rod. Needs to be cut off with some tools." + icon_state = "blowing_rods_inuse" + next_step = /obj/item/glasswork/glass_base/tea_cup3 + +/obj/item/glasswork/glass_base/tea_cup2/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_GLASS_CUT) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/tea_cup3 + name = "Disk of glass" + desc = "A bowl of glass that can be cant be used for much. Needs to be polished with some silk." + icon_state = "glass_base_half" + next_step = /obj/item/glasswork/glass_base/tea_cup4 + +/obj/item/glasswork/glass_base/cup3/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/stack/sheet/silk)) + if(do_after(user,10, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/tea_cup4 + name = "Disk of glass" + desc = "A bowl of polished glass that can be cant be used for much. Needs some more glass to make a handle." + icon_state = "glass_base_half" + next_step = /obj/item/tea_cup + +/obj/item/glasswork/glass_base/cup4/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/stack/sheet/glass)) + if(do_after(user,10, target = src)) + new next_step(user.loc, 1) + qdel(src) \ No newline at end of file diff --git a/code/datums/components/crafting/glassware/lens_crafting.dm b/code/datums/components/crafting/glassware/lens_crafting.dm new file mode 100644 index 0000000000..117df25a30 --- /dev/null +++ b/code/datums/components/crafting/glassware/lens_crafting.dm @@ -0,0 +1,98 @@ +//This file is for crafting using a lens! + +/obj/item/glasswork/glass_base/lens + name = "Optical lens" + desc = "Good for selling or crafting, by itself its useless" + icon = 'icons/obj/glass_ware.dmi' + icon_state = "glass_optics" + +//Laser pointers - 2600 +/obj/item/glasswork/glass_base/laserpointer_shell + name = "Laser pointer assembly" + desc = "Good for selling or crafting, by itself its useless. Needs a power capactor." + icon_state = "laser_case" + icon = 'icons/obj/glass_ware.dmi' + next_step = /obj/item/glasswork/glass_base/laserpointer_shell_1 + +/obj/item/glasswork/glass_base/laserpointer_shell/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/stock_parts/capacitor)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/laserpointer_shell_1 + name = "Laser pointer assembly" + desc = "Good for selling or crafting, by itself its useless. Needs a glass lens." + icon_state = "laser_wire" + icon_state = "laser_case" + next_step = /obj/item/glasswork/glass_base/laserpointer_shell_2 + +/obj/item/glasswork/glass_base/laserpointer_shell_1/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/glass_base/lens)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/laserpointer_shell_2 + name = "Laser pointer assembly" + desc = "Good for selling or crafting, by itself its useless. Needs to be screwed together." + icon_state = "laser_wire" + icon_state = "laser_case" + next_step = /obj/item/laser_pointer/blue/handmade + +/obj/item/glasswork/glass_base/laserpointer_shell_2/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_SCREWDRIVER) + if(do_after(user,260, target = src)) + new next_step(user.loc, 1) + qdel(src) + +//NERD SHIT - 5000 + +/obj/item/glasswork/glass_base/glasses_frame + name = "Glasses Frame" + desc = "Good for crafting a pare of glasses, by itself its useless. Just add a pare of lens." + icon = 'icons/obj/glass_ware.dmi' + icon_state = "frames" + next_step = /obj/item/glasswork/glass_base/glasses_frame_1 + +/obj/item/glasswork/glass_base/glasses_frame/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/glass_base/lens)) + if(do_after(user,60, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/glasses_frame_1 + name = "Glasses Frame" + desc = "Good for crafting a pare of glasses, by itself its useless. Just add a the other lens." + icon = 'icons/obj/glass_ware.dmi' + icon_state = "frames_1" + next_step = /obj/item/glasswork/glass_base/glasses_frame_2 + +/obj/item/glasswork/glass_base/glasses_frame_1/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/glass_base/lens)) + if(do_after(user,60, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/glasses_frame_2 + name = "Glasses Frame" + desc = "Good for crafting a pare of glasses, by itself its useless. Just adjust the pices into the frame with a screwdriver." + icon = 'icons/obj/glass_ware.dmi' + icon_state = "frames_2" + next_step = /obj/item/glasswork/glasses + +/obj/item/glasswork/glass_base/glasses_frame_2/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_SCREWDRIVER) + if(do_after(user,180, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glasses + name = "Hand Made Glasses" + desc = "Hande made glasses that have not been polished at all making them useless. Selling them could still be worth a bit of credits." + icon = 'icons/obj/glass_ware.dmi' + icon_state = "frames_2" \ No newline at end of file diff --git a/code/datums/components/crafting/recipes/recipes_clothing.dm b/code/datums/components/crafting/recipes/recipes_clothing.dm index 444eaeafaf..fc1f4e25e5 100644 --- a/code/datums/components/crafting/recipes/recipes_clothing.dm +++ b/code/datums/components/crafting/recipes/recipes_clothing.dm @@ -33,6 +33,13 @@ /obj/item/organ/ears/cat = 1) category = CAT_CLOTHING +/datum/crafting_recipe/papermask + name = "Paper Mask" + result = /obj/item/clothing/mask/paper + time = 10 + reqs = list(/obj/item/paper = 20) + category = CAT_CLOTHING + //////// //Huds// //////// diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm index 2853f800f5..decc2dd65c 100644 --- a/code/datums/components/radioactive.dm +++ b/code/datums/components/radioactive.dm @@ -25,7 +25,6 @@ RegisterSignal(parent, COMSIG_ITEM_ATTACK_OBJ, .proc/rad_attack) else CRASH("Something that wasn't an atom was given /datum/component/radioactive") - return if(strength > RAD_MINIMUM_CONTAMINATION) SSradiation.warn(src) @@ -84,4 +83,4 @@ #undef RAD_AMOUNT_LOW #undef RAD_AMOUNT_MEDIUM #undef RAD_AMOUNT_HIGH -#undef RAD_AMOUNT_EXTREME \ No newline at end of file +#undef RAD_AMOUNT_EXTREME diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index ea72a8a6dd..3ed66dcf92 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -790,7 +790,7 @@ user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].") return TRUE -/datum/component/storage/proc/action_trigger(datum/signal_source, datum/action/source) +/datum/component/storage/proc/action_trigger(datum/action/source, obj/target) gather_mode_switch(source.owner) return COMPONENT_ACTION_BLOCK_TRIGGER diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index e73465d785..dde8961482 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -27,6 +27,8 @@ GLOBAL_LIST_EMPTY(uplinks) var/datum/ui_state/checkstate var/compact_mode = FALSE var/debug = FALSE + var/saved_player_population = 0 + var/list/filters = list() /datum/component/uplink/Initialize(_owner, _lockable = TRUE, _enabled = FALSE, datum/game_mode/_gamemode, starting_tc = 20, datum/ui_state/_checkstate, datum/traitor_class/traitor_class) if(!isitem(parent)) @@ -47,7 +49,6 @@ GLOBAL_LIST_EMPTY(uplinks) RegisterSignal(parent, COMSIG_PEN_ROTATED, .proc/pen_rotation) GLOB.uplinks += src - var/list/filters = list() if(istype(traitor_class)) filters = traitor_class.uplink_filters starting_tc = traitor_class.TC @@ -68,6 +69,7 @@ GLOBAL_LIST_EMPTY(uplinks) if(!lockable) active = TRUE locked = FALSE + saved_player_population = GLOB.joined_player_list.len /datum/component/uplink/InheritComponent(datum/component/uplink/U) lockable |= U.lockable @@ -117,7 +119,18 @@ GLOBAL_LIST_EMPTY(uplinks) return active = TRUE if(user) + //update the saved population + var/previous_player_population = saved_player_population + saved_player_population = GLOB.joined_player_list.len + //if population has changed, update uplink items + if(saved_player_population != previous_player_population) + //make sure discounts are not rerolled + var/old_discounts = uplink_items["Discounted Gear"] + uplink_items = get_uplink_items(gamemode, FALSE, allow_restricted, filters) + if(old_discounts) + uplink_items["Discounted Gear"] = old_discounts ui_interact(user) + // an unlocked uplink blocks also opening the PDA or headset menu return COMPONENT_NO_INTERACT @@ -190,7 +203,9 @@ GLOBAL_LIST_EMPTY(uplinks) if(item in buyable_items) var/datum/uplink_item/I = buyable_items[item] - MakePurchase(usr, I) + //check to make sure people cannot buy items when the player pop is below the requirement + if(GLOB.joined_player_list.len >= I.player_minimum) + MakePurchase(usr, I) . = TRUE if("lock") active = FALSE diff --git a/code/datums/components/virtual_reality.dm b/code/datums/components/virtual_reality.dm index 9239d4c565..56e06e3582 100644 --- a/code/datums/components/virtual_reality.dm +++ b/code/datums/components/virtual_reality.dm @@ -176,7 +176,7 @@ /** *The following procs simply acts as hooks for quit(), since components do not use callbacks anymore */ -/datum/component/virtual_reality/proc/action_trigger(datum/signal_source, datum/action/source) +/datum/component/virtual_reality/proc/action_trigger(datum/action/source, obj/target) quit() return COMPONENT_ACTION_BLOCK_TRIGGER diff --git a/code/datums/components/wearertargeting.dm b/code/datums/components/wearertargeting.dm index feaa88f934..4760757701 100644 --- a/code/datums/components/wearertargeting.dm +++ b/code/datums/components/wearertargeting.dm @@ -19,4 +19,4 @@ UnregisterSignal(equipper, signals) /datum/component/wearertargeting/proc/on_drop(datum/source, mob/user) - UnregisterSignal(user, signals) \ No newline at end of file + UnregisterSignal(user, signals) diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm index 20f2c1bbb5..30c6625049 100644 --- a/code/datums/components/wet_floor.dm +++ b/code/datums/components/wet_floor.dm @@ -19,7 +19,6 @@ var/datum/component/wet_floor/WF = newcomp //Lets make an assumption if(WF.gc()) //See if it's even valid, still. Also does LAZYLEN and stuff for us. CRASH("Wet floor component tried to inherit another, but the other was able to garbage collect while being inherited! What a waste of time!") - return for(var/i in WF.time_left_list) add_wet(text2num(i), WF.time_left_list[i]) diff --git a/code/datums/dash_weapon.dm b/code/datums/dash_weapon.dm index 8eda936bb7..c31139dcd7 100644 --- a/code/datums/dash_weapon.dm +++ b/code/datums/dash_weapon.dm @@ -19,7 +19,7 @@ dashing_item = dasher holder = user -/datum/action/innate/dash/IsAvailable() +/datum/action/innate/dash/IsAvailable(silent = FALSE) if(current_charges > 0) return TRUE else diff --git a/code/datums/datum.dm b/code/datums/datum.dm index a856f2392d..6202ac444e 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -109,6 +109,8 @@ UnregisterSignal(target, signal_procs[target]) //END: ECS SHIT + SSsounds.free_datum_channels(src) + return QDEL_HINT_QUEUE #ifdef DATUMVAR_DEBUGGING_MODE @@ -173,11 +175,9 @@ if(!islist(jsonlist)) if(!istext(jsonlist)) CRASH("Invalid JSON") - return jsonlist = json_decode(jsonlist) if(!islist(jsonlist)) CRASH("Invalid JSON") - return if(!jsonlist["DATUM_TYPE"]) return if(!ispath(jsonlist["DATUM_TYPE"])) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 81db7deb68..f97fde6f7e 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -1,7 +1,3 @@ -#define VV_MSG_MARKED "
Marked Object" -#define VV_MSG_EDITED "
Var Edited" -#define VV_MSG_DELETED "
Deleted" - /datum/proc/CanProcCall(procname) return TRUE @@ -21,1386 +17,34 @@ return debug_variable(var_name, list(), 0, src) return debug_variable(var_name, vars[var_name], 0, src) +/datum/proc/can_vv_mark() + return TRUE + //please call . = ..() first and append to the result, that way parent items are always at the top and child items are further down //add separaters by doing . += "---" /datum/proc/vv_get_dropdown() . = list() - . += "---" - .["Call Proc"] = "?_src_=vars;[HrefToken()];proc_call=\ref[src]" - .["Mark Object"] = "?_src_=vars;[HrefToken()];mark_object=\ref[src]" - .["Delete"] = "?_src_=vars;[HrefToken()];delete=\ref[src]" - .["Show VV To Player"] = "?_src_=vars;[HrefToken(TRUE)];expose=\ref[src]" + VV_DROPDOWN_OPTION("", "---") + VV_DROPDOWN_OPTION(VV_HK_CALLPROC, "Call Proc") + VV_DROPDOWN_OPTION(VV_HK_MARK, "Mark Object") + VV_DROPDOWN_OPTION(VV_HK_DELETE, "Delete") + VV_DROPDOWN_OPTION(VV_HK_EXPOSE, "Show VV To Player") +// VV_DROPDOWN_OPTION(VV_HK_MODIFY_TRAITS, "Modify Traits") +//This proc is only called if everything topic-wise is verified. The only verifications that should happen here is things like permission checks! +//href_list is a reference, modifying it in these procs WILL change the rest of the proc in topic.dm of admin/view_variables! +//This proc is for "high level" actions like admin heal/set species/etc/etc. The low level debugging things should go in admin/view_variables/topic_basic.dm incase this runtimes. +/datum/proc/vv_do_topic(list/href_list) + if(!usr || !usr.client || !usr.client.holder || !check_rights(NONE)) + return FALSE //This is VV, not to be called by anything else. +// if(href_list[VV_HK_MODIFY_TRAITS]) +// usr.client.holder.modify_traits(src) + return TRUE + +/datum/proc/vv_get_header() + . = list() + if(("name" in vars) && !isatom(src)) + . += "[vars["name"]]
" /datum/proc/on_reagent_change(changetype) return - - -/client/proc/debug_variables(datum/D in world) - set category = "Debug" - set name = "View Variables" - //set src in world - var/static/cookieoffset = rand(1, 9999) //to force cookies to reset after the round. - - if(!usr.client || !usr.client.holder) //The usr vs src abuse in this proc is intentional and must not be changed - to_chat(usr, "You need to be an administrator to access this.") - return - - if(!D) - return - - var/islist = islist(D) - if (!islist && !istype(D)) - return - - var/title = "" - var/refid = "\ref[D]" - var/icon/sprite - var/hash - - var/type = /list - if (!islist) - type = D.type - - if(istype(D, /atom)) - var/atom/AT = D - if(AT.icon && AT.icon_state) - sprite = new /icon(AT.icon, AT.icon_state) - hash = md5(AT.icon) - hash = md5(hash + AT.icon_state) - src << browse_rsc(sprite, "vv[hash].png") - - title = "[D] ([REF(D)]) = [type]" - var/formatted_type = replacetext("[type]", "/", "/") - - var/sprite_text - if(sprite) - sprite_text = "" - var/list/atomsnowflake = list() - - if(istype(D, /atom)) - var/atom/A = D - if(isliving(A)) - atomsnowflake += "[D]" - atomsnowflake += "
<< [dir2text(A.dir) || A.dir] >>" - var/mob/living/M = A - atomsnowflake += {" -
[M.ckey || "No ckey"] / [M.real_name || "No real name"] -
- BRUTE:[M.getBruteLoss()] - FIRE:[M.getFireLoss()] - TOXIN:[M.getToxLoss()] - OXY:[M.getOxyLoss()] - CLONE:[M.getCloneLoss()] - BRAIN:[M.getOrganLoss(ORGAN_SLOT_BRAIN)] - STAMINA:[M.getStaminaLoss()] - "} - if(GLOB.Debug2) - atomsnowflake += {" - HEART:[M.getOrganLoss(ORGAN_SLOT_HEART)] - LIVER:[M.getOrganLoss(ORGAN_SLOT_LIVER)] - LUNGS:[M.getOrganLoss(ORGAN_SLOT_LUNGS)] - EYES:[M.getOrganLoss(ORGAN_SLOT_EYES)] - EARS:[M.getOrganLoss(ORGAN_SLOT_EARS)] - STOMACH:[M.getOrganLoss(ORGAN_SLOT_STOMACH)] - TONGUE:[M.getOrganLoss(ORGAN_SLOT_TONGUE)] - APPENDIX:[M.getOrganLoss(ORGAN_SLOT_APPENDIX)] - "} - atomsnowflake += {" - - "} - else - atomsnowflake += "[D]" - atomsnowflake += "
<< [dir2text(A.dir) || A.dir] >>" - else if("name" in D.vars) - atomsnowflake += "[D]" - else - atomsnowflake += "[formatted_type]" - formatted_type = null - - var/marked - if(holder && holder.marked_datum && holder.marked_datum == D) - marked = VV_MSG_MARKED - var/varedited_line = "" - if(!islist && (D.datum_flags & DF_VAR_EDITED)) - varedited_line = VV_MSG_EDITED - var/deleted_line - if(!islist && D.gc_destroyed) - deleted_line = VV_MSG_DELETED - - var/list/dropdownoptions = list() - if (islist) - dropdownoptions = list( - "---", - "Add Item" = "?_src_=vars;[HrefToken()];listadd=[refid]", - "Remove Nulls" = "?_src_=vars;[HrefToken()];listnulls=[refid]", - "Remove Dupes" = "?_src_=vars;[HrefToken()];listdupes=[refid]", - "Set len" = "?_src_=vars;[HrefToken()];listlen=[refid]", - "Shuffle" = "?_src_=vars;[HrefToken()];listshuffle=[refid]", - "Show VV To Player" = "?_src_=vars;[HrefToken()];expose=[refid]" - ) - else - dropdownoptions = D.vv_get_dropdown() - var/list/dropdownoptions_html = list() - - for (var/name in dropdownoptions) - var/link = dropdownoptions[name] - if (link) - dropdownoptions_html += "" - else - dropdownoptions_html += "" - - var/list/names = list() - if (!islist) - for (var/V in D.vars) - names += V - sleep(1)//For some reason, without this sleep, VVing will cause client to disconnect on certain objects. - - var/list/variable_html = list() - if (islist) - var/list/L = D - for (var/i in 1 to L.len) - var/key = L[i] - var/value - if (IS_NORMAL_LIST(L) && !isnum(key)) - value = L[key] - variable_html += debug_variable(i, value, 0, D) - else - - names = sortList(names) - for (var/V in names) - if(D.can_vv_get(V)) - variable_html += D.vv_get_var(V) - - var/html = {" - - - - [title] - - - - -
- - - - - -
- - - - -
- [sprite_text] -
- [atomsnowflake.Join()] -
-
-
- [formatted_type] - [marked] - [varedited_line] - [deleted_line] -
-
-
- Refresh -
- -
-
-
-
-
- - E - Edit, tries to determine the variable type by itself.
- C - Change, asks you for the var type first.
- M - Mass modify: changes this variable for all objects of this type.
-
-
- - - - - -
-
- Search: -
-
- -
-
-
    - [variable_html.Join()] -
- - - -"} - src << browse(html, "window=variables[refid];size=475x650") - - -/client/proc/vv_update_display(datum/D, span, content) - src << output("[span]:[content]", "variables\ref[D].browser:replace_span") - - -#define VV_HTML_ENCODE(thing) ( sanitize ? html_encode(thing) : thing ) -/proc/debug_variable(name, value, level, datum/DA = null, sanitize = TRUE) - var/header - if(DA) - if (islist(DA)) - var/index = name - if (value) - name = DA[name] //name is really the index until this line - else - value = DA[name] - header = "
  • (E) (C) (-) " - else - header = "
  • (E) (C) (M) " - else - header = "
  • " - - var/item - if (isnull(value)) - item = "[VV_HTML_ENCODE(name)] = null" - - else if (istext(value)) - item = "[VV_HTML_ENCODE(name)] = \"[VV_HTML_ENCODE(value)]\"" - - else if (isicon(value)) - #ifdef VARSICON - var/icon/I = new/icon(value) - var/rnd = rand(1,10000) - var/rname = "tmp\ref[I][rnd].png" - usr << browse_rsc(I, rname) - item = "[VV_HTML_ENCODE(name)] = ([value]) " - #else - item = "[VV_HTML_ENCODE(name)] = /icon ([value])" - #endif - - else if (isfile(value)) - item = "[VV_HTML_ENCODE(name)] = '[value]'" - - else if (istype(value, /datum)) - var/datum/D = value - if ("[D]" != "[D.type]") //if the thing as a name var, lets use it. - item = "[VV_HTML_ENCODE(name)] [REF(value)] = [D] [D.type]" - else - item = "[VV_HTML_ENCODE(name)] [REF(value)] = [D.type]" - - else if (islist(value)) - var/list/L = value - var/list/items = list() - - if (L.len > 0 && !(name == "underlays" || name == "overlays" || L.len > (IS_NORMAL_LIST(L) ? 50 : 150))) - for (var/i in 1 to L.len) - var/key = L[i] - var/val - if (IS_NORMAL_LIST(L) && !isnum(key)) - val = L[key] - if (isnull(val)) // we still want to display non-null false values, such as 0 or "" - val = key - key = i - - items += debug_variable(key, val, level + 1, sanitize = sanitize) - - item = "[VV_HTML_ENCODE(name)] = /list ([L.len])
      [items.Join()]
    " - else - item = "[VV_HTML_ENCODE(name)] = /list ([L.len])" - - else if (name in GLOB.bitfields) - var/list/flags = list() - for (var/i in GLOB.bitfields[name]) - if (value & GLOB.bitfields[name][i]) - flags += i - item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(jointext(flags, ", "))]" - else - item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(value)]" - - return "[header][item]
  • " - -#undef VV_HTML_ENCODE - -/client/proc/view_var_Topic(href, href_list, hsrc) - if( (usr.client != src) || !src.holder || !holder.CheckAdminHref(href, href_list)) - return - if(href_list["Vars"]) - debug_variables(locate(href_list["Vars"])) - - else if(href_list["datumrefresh"]) - var/datum/DAT = locate(href_list["datumrefresh"]) - if(!DAT) //can't be an istype() because /client etc aren't datums - return - src.debug_variables(DAT) - - else if(href_list["mob_player_panel"]) - if(!check_rights(NONE)) - return - - var/mob/M = locate(href_list["mob_player_panel"]) in GLOB.mob_list - if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - - src.holder.show_player_panel(M) - - else if(href_list["godmode"]) - if(!check_rights(R_ADMIN)) - return - - var/mob/M = locate(href_list["godmode"]) in GLOB.mob_list - if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - - src.cmd_admin_godmode(M) - - else if(href_list["mark_object"]) - if(!check_rights(NONE)) - return - - var/datum/D = locate(href_list["mark_object"]) - if(!istype(D)) - to_chat(usr, "This can only be done to instances of type /datum") - return - - if(holder.marked_datum) - vv_update_display(holder.marked_datum, "marked", "") - holder.marked_datum = D - vv_update_display(D, "marked", VV_MSG_MARKED) - - else if(href_list["proc_call"]) - if(!check_rights(NONE)) - return - - var/T = locate(href_list["proc_call"]) - - if(T) - callproc_datum(T) - - else if(href_list["delete"]) - if(!check_rights(R_DEBUG, 0)) - return - - var/datum/D = locate(href_list["delete"]) - if(!istype(D)) - to_chat(usr, "Unable to locate item!") - admin_delete(D) - if (isturf(D)) // show the turf that took its place - debug_variables(D) - - else if(href_list["osay"]) - if(!check_rights(R_FUN, 0)) - return - usr.client.object_say(locate(href_list["osay"])) - - else if(href_list["regenerateicons"]) - if(!check_rights(NONE)) - return - - var/mob/M = locate(href_list["regenerateicons"]) in GLOB.mob_list - if(!ismob(M)) - to_chat(usr, "This can only be done to instances of type /mob") - return - M.regenerate_icons() - else if(href_list["expose"]) - if(!check_rights(R_ADMIN, FALSE)) - return - var/thing = locate(href_list["expose"]) - if (!thing) - return - var/value = vv_get_value(VV_CLIENT) - if (value["class"] != VV_CLIENT) - return - var/client/C = value["value"] - if (!C) - return - var/prompt = alert("Do you want to grant [C] access to view this VV window? (they will not be able to edit or change anything nor open nested vv windows unless they themselves are an admin)", "Confirm", "Yes", "No") - if (prompt != "Yes" || !usr.client) - return - message_admins("[key_name_admin(usr)] Showed [key_name_admin(C)] a VV window") - log_admin("Admin [key_name(usr)] Showed [key_name(C)] a VV window of a [thing]") - to_chat(C, "[usr.client.holder.fakekey ? "an Administrator" : "[usr.client.key]"] has granted you access to view a View Variables window") - C.debug_variables(thing) - - -//Needs +VAREDIT past this point - - else if(check_rights(R_VAREDIT)) - - - //~CARN: for renaming mobs (updates their name, real_name, mind.name, their ID/PDA and datacore records). - - if(href_list["rename"]) - if(!check_rights(NONE)) - return - - var/mob/M = locate(href_list["rename"]) in GLOB.mob_list - if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - - var/new_name = stripped_input(usr,"What would you like to name this mob?","Input a name",M.real_name,MAX_NAME_LEN) - if( !new_name || !M ) - return - - message_admins("Admin [key_name_admin(usr)] renamed [key_name_admin(M)] to [new_name].") - M.fully_replace_character_name(M.real_name,new_name) - vv_update_display(M, "name", new_name) - vv_update_display(M, "real_name", M.real_name || "No real name") - - else if(href_list["varnameedit"] && href_list["datumedit"]) - if(!check_rights(NONE)) - return - - var/datum/D = locate(href_list["datumedit"]) - if(!istype(D, /datum)) - to_chat(usr, "This can only be used on datums") - return - - if (!modify_variables(D, href_list["varnameedit"], 1)) - return - switch(href_list["varnameedit"]) - if("name") - vv_update_display(D, "name", "[D]") - if("dir") - if(isatom(D)) - var/dir = D.vars["dir"] - vv_update_display(D, "dir", dir2text(dir) || dir) - if("ckey") - if(isliving(D)) - vv_update_display(D, "ckey", D.vars["ckey"] || "No ckey") - if("real_name") - if(isliving(D)) - vv_update_display(D, "real_name", D.vars["real_name"] || "No real name") - - else if(href_list["varnamechange"] && href_list["datumchange"]) - if(!check_rights(NONE)) - return - - var/D = locate(href_list["datumchange"]) - if(!istype(D, /datum)) - to_chat(usr, "This can only be used on datums") - return - - modify_variables(D, href_list["varnamechange"], 0) - - else if(href_list["varnamemass"] && href_list["datummass"]) - if(!check_rights(NONE)) - return - - var/datum/D = locate(href_list["datummass"]) - if(!istype(D)) - to_chat(usr, "This can only be used on instances of type /datum") - return - - cmd_mass_modify_object_variables(D, href_list["varnamemass"]) - - else if(href_list["listedit"] && href_list["index"]) - var/index = text2num(href_list["index"]) - if (!index) - return - - var/list/L = locate(href_list["listedit"]) - if (!istype(L)) - to_chat(usr, "This can only be used on instances of type /list") - return - - mod_list(L, null, "list", "contents", index, autodetect_class = TRUE) - - else if(href_list["listchange"] && href_list["index"]) - var/index = text2num(href_list["index"]) - if (!index) - return - - var/list/L = locate(href_list["listchange"]) - if (!istype(L)) - to_chat(usr, "This can only be used on instances of type /list") - return - - mod_list(L, null, "list", "contents", index, autodetect_class = FALSE) - - else if(href_list["listremove"] && href_list["index"]) - var/index = text2num(href_list["index"]) - if (!index) - return - - var/list/L = locate(href_list["listremove"]) - if (!istype(L)) - to_chat(usr, "This can only be used on instances of type /list") - return - - var/variable = L[index] - var/prompt = alert("Do you want to remove item number [index] from list?", "Confirm", "Yes", "No") - if (prompt != "Yes") - return - L.Cut(index, index+1) - log_world("### ListVarEdit by [src]: /list's contents: REMOVED=[html_encode("[variable]")]") - log_admin("[key_name(src)] modified list's contents: REMOVED=[variable]") - message_admins("[key_name_admin(src)] modified list's contents: REMOVED=[variable]") - - else if(href_list["listadd"]) - var/list/L = locate(href_list["listadd"]) - if (!istype(L)) - to_chat(usr, "This can only be used on instances of type /list") - return - - mod_list_add(L, null, "list", "contents") - - else if(href_list["listdupes"]) - var/list/L = locate(href_list["listdupes"]) - if (!istype(L)) - to_chat(usr, "This can only be used on instances of type /list") - return - - uniqueList_inplace(L) - log_world("### ListVarEdit by [src]: /list contents: CLEAR DUPES") - log_admin("[key_name(src)] modified list's contents: CLEAR DUPES") - message_admins("[key_name_admin(src)] modified list's contents: CLEAR DUPES") - - else if(href_list["listnulls"]) - var/list/L = locate(href_list["listnulls"]) - if (!istype(L)) - to_chat(usr, "This can only be used on instances of type /list") - return - - listclearnulls(L) - log_world("### ListVarEdit by [src]: /list contents: CLEAR NULLS") - log_admin("[key_name(src)] modified list's contents: CLEAR NULLS") - message_admins("[key_name_admin(src)] modified list's contents: CLEAR NULLS") - - else if(href_list["listlen"]) - var/list/L = locate(href_list["listlen"]) - if (!istype(L)) - to_chat(usr, "This can only be used on instances of type /list") - return - var/value = vv_get_value(VV_NUM) - if (value["class"] != VV_NUM) - return - - L.len = value["value"] - log_world("### ListVarEdit by [src]: /list len: [L.len]") - log_admin("[key_name(src)] modified list's len: [L.len]") - message_admins("[key_name_admin(src)] modified list's len: [L.len]") - - else if(href_list["listshuffle"]) - var/list/L = locate(href_list["listshuffle"]) - if (!istype(L)) - to_chat(usr, "This can only be used on instances of type /list") - return - - shuffle_inplace(L) - log_world("### ListVarEdit by [src]: /list contents: SHUFFLE") - log_admin("[key_name(src)] modified list's contents: SHUFFLE") - message_admins("[key_name_admin(src)] modified list's contents: SHUFFLE") - - else if(href_list["give_spell"]) - if(!check_rights(NONE)) - return - - var/mob/M = locate(href_list["give_spell"]) in GLOB.mob_list - if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - - src.give_spell(M) - - else if(href_list["remove_spell"]) - if(!check_rights(NONE)) - return - - var/mob/M = locate(href_list["remove_spell"]) in GLOB.mob_list - if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - - remove_spell(M) - - else if(href_list["give_disease"]) - if(!check_rights(NONE)) - return - - var/mob/M = locate(href_list["give_disease"]) in GLOB.mob_list - if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - - src.give_disease(M) - - else if(href_list["gib"]) - if(!check_rights(R_FUN)) - return - - var/mob/M = locate(href_list["gib"]) in GLOB.mob_list - if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - - src.cmd_admin_gib(M) - - else if(href_list["build_mode"]) - if(!check_rights(R_BUILDMODE)) - return - - var/mob/M = locate(href_list["build_mode"]) in GLOB.mob_list - if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - - togglebuildmode(M) - - else if(href_list["drop_everything"]) - if(!check_rights(NONE)) - return - - var/mob/M = locate(href_list["drop_everything"]) in GLOB.mob_list - if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - - if(usr.client) - usr.client.cmd_admin_drop_everything(M) - - else if(href_list["direct_control"]) - if(!check_rights(NONE)) - return - - var/mob/M = locate(href_list["direct_control"]) in GLOB.mob_list - if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - - if(usr.client) - usr.client.cmd_assume_direct_control(M) - - else if(href_list["offer_control"]) - if(!check_rights(NONE)) - return - - var/mob/M = locate(href_list["offer_control"]) in GLOB.mob_list - if(!istype(M)) - to_chat(usr, "This can only be used on instances of type /mob") - return - offer_control(M) - - else if (href_list["modarmor"]) - if(!check_rights(NONE)) - return - - var/obj/O = locate(href_list["modarmor"]) - if(!istype(O)) - to_chat(usr, "This can only be used on instances of type /obj") - return - - var/list/pickerlist = list() - var/list/armorlist = O.armor.getList() - - for (var/i in armorlist) - pickerlist += list(list("value" = armorlist[i], "name" = i)) - - var/list/result = presentpicker(usr, "Modify armor", "Modify armor: [O]", Button1="Save", Button2 = "Cancel", Timeout=FALSE, inputtype = "text", values = pickerlist) - - if (islist(result)) - if (result["button"] == 2) // If the user pressed the cancel button - return - // text2num conveniently returns a null on invalid values - O.armor = O.armor.setRating(melee = text2num(result["values"]["melee"]),\ - bullet = text2num(result["values"]["bullet"]),\ - laser = text2num(result["values"]["laser"]),\ - energy = text2num(result["values"]["energy"]),\ - bomb = text2num(result["values"]["bomb"]),\ - bio = text2num(result["values"]["bio"]),\ - rad = text2num(result["values"]["rad"]),\ - fire = text2num(result["values"]["fire"]),\ - acid = text2num(result["values"]["acid"])) - log_admin("[key_name(usr)] modified the armor on [O] ([O.type]) to melee: [O.armor.melee], bullet: [O.armor.bullet], laser: [O.armor.laser], energy: [O.armor.energy], bomb: [O.armor.bomb], bio: [O.armor.bio], rad: [O.armor.rad], fire: [O.armor.fire], acid: [O.armor.acid]") - message_admins("[key_name_admin(usr)] modified the armor on [O] ([O.type]) to melee: [O.armor.melee], bullet: [O.armor.bullet], laser: [O.armor.laser], energy: [O.armor.energy], bomb: [O.armor.bomb], bio: [O.armor.bio], rad: [O.armor.rad], fire: [O.armor.fire], acid: [O.armor.acid]") - else - return - - else if(href_list["delall"]) - if(!check_rights(R_DEBUG|R_SERVER)) - return - - var/obj/O = locate(href_list["delall"]) - if(!isobj(O)) - to_chat(usr, "This can only be used on instances of type /obj") - return - - var/action_type = alert("Strict type ([O.type]) or type and all subtypes?",,"Strict type","Type and subtypes","Cancel") - if(action_type == "Cancel" || !action_type) - return - - if(alert("Are you really sure you want to delete all objects of type [O.type]?",,"Yes","No") != "Yes") - return - - if(alert("Second confirmation required. Delete?",,"Yes","No") != "Yes") - return - - var/O_type = O.type - switch(action_type) - if("Strict type") - var/i = 0 - for(var/obj/Obj in world) - if(Obj.type == O_type) - i++ - qdel(Obj) - CHECK_TICK - if(!i) - to_chat(usr, "No objects of this type exist") - return - log_admin("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ") - message_admins("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ") - if("Type and subtypes") - var/i = 0 - for(var/obj/Obj in world) - if(istype(Obj,O_type)) - i++ - qdel(Obj) - CHECK_TICK - if(!i) - to_chat(usr, "No objects of this type exist") - return - log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ") - message_admins("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ") - - else if(href_list["addreagent"]) - if(!check_rights(NONE)) - return - - var/atom/A = locate(href_list["addreagent"]) - - if(!A.reagents) - var/amount = input(usr, "Specify the reagent size of [A]", "Set Reagent Size", 50) as num - if(amount) - A.create_reagents(amount) - - if(A.reagents) - var/chosen_id = choose_reagent_id(usr) - if(chosen_id) - var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", A.reagents.maximum_volume) as num - if(amount) - A.reagents.add_reagent(chosen_id, amount) - log_admin("[key_name(usr)] has added [amount] units of [chosen_id] to \the [A]") - message_admins("[key_name(usr)] has added [amount] units of [chosen_id] to \the [A]") - - else if(href_list["explode"]) - if(!check_rights(R_FUN)) - return - - var/atom/A = locate(href_list["explode"]) - if(!isobj(A) && !ismob(A) && !isturf(A)) - to_chat(usr, "This can only be done to instances of type /obj, /mob and /turf") - return - - src.cmd_admin_explosion(A) - - else if(href_list["emp"]) - if(!check_rights(R_FUN)) - return - - var/atom/A = locate(href_list["emp"]) - if(!isobj(A) && !ismob(A) && !isturf(A)) - to_chat(usr, "This can only be done to instances of type /obj, /mob and /turf") - return - - src.cmd_admin_emp(A) - - else if(href_list["modtransform"]) - if(!check_rights(R_DEBUG)) - return - - var/atom/A = locate(href_list["modtransform"]) - if(!istype(A)) - to_chat(usr, "This can only be done to atoms.") - return - - var/result = input(usr, "Choose the transformation to apply","Transform Mod") as null|anything in list("Scale","Translate","Rotate") - var/matrix/M = A.transform - switch(result) - if("Scale") - var/x = input(usr, "Choose x mod","Transform Mod") as null|num - var/y = input(usr, "Choose y mod","Transform Mod") as null|num - if(!isnull(x) && !isnull(y)) - A.transform = M.Scale(x,y) - if("Translate") - var/x = input(usr, "Choose x mod","Transform Mod") as null|num - var/y = input(usr, "Choose y mod","Transform Mod") as null|num - if(!isnull(x) && !isnull(y)) - A.transform = M.Translate(x,y) - if("Rotate") - var/angle = input(usr, "Choose angle to rotate","Transform Mod") as null|num - if(!isnull(angle)) - A.transform = M.Turn(angle) - - else if(href_list["rotatedatum"]) - if(!check_rights(NONE)) - return - - var/atom/A = locate(href_list["rotatedatum"]) - if(!istype(A)) - to_chat(usr, "This can only be done to instances of type /atom") - return - - switch(href_list["rotatedir"]) - if("right") - A.setDir(turn(A.dir, -45)) - if("left") - A.setDir(turn(A.dir, 45)) - vv_update_display(A, "dir", dir2text(A.dir)) - - else if(href_list["editorgans"]) - if(!check_rights(NONE)) - return - - var/mob/living/carbon/C = locate(href_list["editorgans"]) in GLOB.mob_list - if(!istype(C)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon") - return - - manipulate_organs(C) - - else if(href_list["givemartialart"]) - if(!check_rights(NONE)) - return - - var/mob/living/carbon/C = locate(href_list["givemartialart"]) in GLOB.carbon_list - if(!istype(C)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon") - return - - var/list/artpaths = subtypesof(/datum/martial_art) - var/list/artnames = list() - for(var/i in artpaths) - var/datum/martial_art/M = i - artnames[initial(M.name)] = M - - var/result = input(usr, "Choose the martial art to teach","JUDO CHOP") as null|anything in artnames - if(!usr) - return - if(QDELETED(C)) - to_chat(usr, "Mob doesn't exist anymore") - return - - if(result) - var/chosenart = artnames[result] - var/datum/martial_art/MA = new chosenart - MA.teach(C) - - else if(href_list["givetrauma"]) - if(!check_rights(NONE)) - return - - var/mob/living/carbon/C = locate(href_list["givetrauma"]) in GLOB.mob_list - if(!istype(C)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon") - return - - var/list/traumas = subtypesof(/datum/brain_trauma) - var/result = input(usr, "Choose the brain trauma to apply","Traumatize") as null|anything in traumas - if(!usr) - return - if(QDELETED(C)) - to_chat(usr, "Mob doesn't exist anymore") - return - - if(result) - C.gain_trauma(result) - - else if(href_list["curetraumas"]) - if(!check_rights(NONE)) - return - - var/mob/living/carbon/C = locate(href_list["curetraumas"]) in GLOB.mob_list - if(!istype(C)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon") - return - - C.cure_all_traumas(TRAUMA_RESILIENCE_ABSOLUTE) - - else if(href_list["hallucinate"]) - if(!check_rights(NONE)) - return - - var/mob/living/carbon/C = locate(href_list["hallucinate"]) in GLOB.mob_list - if(!istype(C)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon") - return - - var/list/hallucinations = subtypesof(/datum/hallucination) - var/result = input(usr, "Choose the hallucination to apply","Send Hallucination") as null|anything in hallucinations - if(!usr) - return - if(QDELETED(C)) - to_chat(usr, "Mob doesn't exist anymore") - return - - if(result) - new result(C, TRUE) - - else if(href_list["makehuman"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/monkey/Mo = locate(href_list["makehuman"]) in GLOB.mob_list - if(!istype(Mo)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon/monkey") - return - - if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") - return - if(!Mo) - to_chat(usr, "Mob doesn't exist anymore") - return - holder.Topic(href, list("humanone"=href_list["makehuman"])) - - else if(href_list["makemonkey"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["makemonkey"]) in GLOB.mob_list - if(!istype(H)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human") - return - - if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") - return - if(!H) - to_chat(usr, "Mob doesn't exist anymore") - return - holder.Topic(href, list("monkeyone"=href_list["makemonkey"])) - - else if(href_list["makerobot"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["makerobot"]) in GLOB.mob_list - if(!istype(H)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human") - return - - if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") - return - if(!H) - to_chat(usr, "Mob doesn't exist anymore") - return - holder.Topic(href, list("makerobot"=href_list["makerobot"])) - - else if(href_list["makealien"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["makealien"]) in GLOB.mob_list - if(!istype(H)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human") - return - - if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") - return - if(!H) - to_chat(usr, "Mob doesn't exist anymore") - return - holder.Topic(href, list("makealien"=href_list["makealien"])) - - else if(href_list["makeslime"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["makeslime"]) in GLOB.mob_list - if(!istype(H)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human") - return - - if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") - return - if(!H) - to_chat(usr, "Mob doesn't exist anymore") - return - holder.Topic(href, list("makeslime"=href_list["makeslime"])) - - else if(href_list["makeai"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/H = locate(href_list["makeai"]) in GLOB.mob_list - if(!istype(H)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon") - return - - if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") - return - if(!H) - to_chat(usr, "Mob doesn't exist anymore") - return - holder.Topic(href, list("makeai"=href_list["makeai"])) - - else if(href_list["setspecies"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["setspecies"]) in GLOB.mob_list - if(!istype(H)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human") - return - - var/result = input(usr, "Please choose a new species","Species") as null|anything in GLOB.species_list - - if(!H) - to_chat(usr, "Mob doesn't exist anymore") - return - - if(result) - var/newtype = GLOB.species_list[result] - admin_ticket_log("[key_name_admin(usr)] has modified the bodyparts of [H] to [result]") - H.set_species(newtype) - - else if(href_list["editbodypart"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/C = locate(href_list["editbodypart"]) in GLOB.mob_list - if(!istype(C)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon") - return - - var/edit_action = input(usr, "What would you like to do?","Modify Body Part") as null|anything in list("add","remove", "augment") - if(!edit_action) - return - var/list/limb_list = list(BODY_ZONE_HEAD, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) - if(edit_action == "augment") - limb_list += BODY_ZONE_CHEST - var/result = input(usr, "Please choose which body part to [edit_action]","[capitalize(edit_action)] Body Part") as null|anything in limb_list - - if(!C) - to_chat(usr, "Mob doesn't exist anymore") - return - - if(result) - var/obj/item/bodypart/BP = C.get_bodypart(result) - switch(edit_action) - if("remove") - if(BP) - BP.drop_limb() - else - to_chat(usr, "[C] doesn't have such bodypart.") - if("add") - if(BP) - to_chat(usr, "[C] already has such bodypart.") - else - if(!C.regenerate_limb(result)) - to_chat(usr, "[C] cannot have such bodypart.") - if("augment") - if(ishuman(C)) - if(BP) - BP.change_bodypart_status(BODYPART_ROBOTIC, TRUE, TRUE) - else - to_chat(usr, "[C] doesn't have such bodypart.") - else - to_chat(usr, "Only humans can be augmented.") - admin_ticket_log("[key_name_admin(usr)] has modified the bodyparts of [C]") - - - else if(href_list["purrbation"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["purrbation"]) in GLOB.mob_list - if(!istype(H)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human") - return - if(!ishumanbasic(H)) - to_chat(usr, "This can only be done to the basic human species at the moment.") - return - - if(!H) - to_chat(usr, "Mob doesn't exist anymore") - return - - var/success = purrbation_toggle(H) - if(success) - to_chat(usr, "Put [H] on purrbation.") - log_admin("[key_name(usr)] has put [key_name(H)] on purrbation.") - var/msg = "[key_name_admin(usr)] has put [key_name(H)] on purrbation." - message_admins(msg) - admin_ticket_log(H, msg) - - else - to_chat(usr, "Removed [H] from purrbation.") - log_admin("[key_name(usr)] has removed [key_name(H)] from purrbation.") - var/msg = "[key_name_admin(usr)] has removed [key_name(H)] from purrbation." - message_admins(msg) - admin_ticket_log(H, msg) - - else if(href_list["adjustDamage"] && href_list["mobToDamage"]) - if(!check_rights(NONE)) - return - - var/mob/living/L = locate(href_list["mobToDamage"]) in GLOB.mob_list - if(!istype(L)) - return - - var/Text = href_list["adjustDamage"] - - var/amount = input("Deal how much damage to mob? (Negative values here heal)","Adjust [Text]loss",0) as num - - if(!L) - to_chat(usr, "Mob doesn't exist anymore") - return - - var/newamt - switch(Text) - if("brute") - L.adjustBruteLoss(amount) - newamt = L.getBruteLoss() - if("fire") - L.adjustFireLoss(amount) - newamt = L.getFireLoss() - if("toxin") - L.adjustToxLoss(amount) - newamt = L.getToxLoss() - if("oxygen") - L.adjustOxyLoss(amount) - newamt = L.getOxyLoss() - if("brain") - L.adjustOrganLoss(ORGAN_SLOT_BRAIN, amount) - newamt = L.getOrganLoss(ORGAN_SLOT_BRAIN) - if("clone") - L.adjustCloneLoss(amount) - newamt = L.getCloneLoss() - if("stamina") - L.adjustStaminaLoss(amount) - newamt = L.getStaminaLoss() - if("heart") - L.adjustOrganLoss(ORGAN_SLOT_HEART, amount) - newamt = L.getOrganLoss(ORGAN_SLOT_HEART) - if("liver") - L.adjustOrganLoss(ORGAN_SLOT_LIVER, amount) - newamt = L.getOrganLoss(ORGAN_SLOT_LIVER) - if("lungs") - L.adjustOrganLoss(ORGAN_SLOT_LUNGS, amount) - newamt = L.getOrganLoss(ORGAN_SLOT_LUNGS) - if("eye_sight") - L.adjustOrganLoss(ORGAN_SLOT_EYES, amount) - newamt = L.getOrganLoss(ORGAN_SLOT_EYES) - if("ears") - L.adjustOrganLoss(ORGAN_SLOT_EARS, amount) - newamt = L.getOrganLoss(ORGAN_SLOT_EARS) - if("stomach") - L.adjustOrganLoss(ORGAN_SLOT_STOMACH, amount) - newamt = L.getOrganLoss(ORGAN_SLOT_STOMACH) - if("tongue") - L.adjustOrganLoss(ORGAN_SLOT_TONGUE, amount) - newamt = L.getOrganLoss(ORGAN_SLOT_TONGUE) - if("appendix") - L.adjustOrganLoss(ORGAN_SLOT_APPENDIX, amount) - newamt = L.getOrganLoss(ORGAN_SLOT_APPENDIX) - else - to_chat(usr, "You caused an error. DEBUG: Text:[Text] Mob:[L]") - return - - if(amount != 0) - log_admin("[key_name(usr)] dealt [amount] amount of [Text] damage to [L] ") - var/msg = "[key_name(usr)] dealt [amount] amount of [Text] damage to [L] " - message_admins("[msg]") - admin_ticket_log(L, msg) - vv_update_display(L, Text, "[newamt]") - else if(href_list["copyoutfit"]) - if(!check_rights(R_SPAWN)) - return - var/mob/living/carbon/human/H = locate(href_list["copyoutfit"]) in GLOB.carbon_list - if(istype(H)) - H.copy_outfit() - else if(href_list["modquirks"]) - if(!check_rights(R_SPAWN)) - return - - var/mob/living/carbon/human/H = locate(href_list["modquirks"]) in GLOB.mob_list - if(!istype(H)) - to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human") - return - - var/list/options = list("Clear"="Clear") - for(var/x in subtypesof(/datum/quirk)) - var/datum/quirk/T = x - var/qname = initial(T.name) - options[H.has_quirk(T) ? "[qname] (Remove)" : "[qname] (Add)"] = T - - var/result = input(usr, "Choose quirk to add/remove","Quirk Mod") as null|anything in options - if(result) - if(result == "Clear") - for(var/datum/quirk/q in H.roundstart_quirks) - H.remove_quirk(q.type) - else - var/T = options[result] - if(H.has_quirk(T)) - H.remove_quirk(T) - else - H.add_quirk(T,TRUE) diff --git a/code/datums/elements/ghost_role_eligibility.dm b/code/datums/elements/ghost_role_eligibility.dm index 28567c579b..4e7884efe4 100644 --- a/code/datums/elements/ghost_role_eligibility.dm +++ b/code/datums/elements/ghost_role_eligibility.dm @@ -1,58 +1,54 @@ -/datum/element/ghost_role_eligibility - element_flags = ELEMENT_DETACH - var/list/timeouts = list() - var/list/mob/eligible_mobs = list() +GLOBAL_LIST_EMPTY(ghost_eligible_mobs) -/datum/element/ghost_role_eligibility/Attach(datum/target,penalize = FALSE) +GLOBAL_LIST_EMPTY(client_ghost_timeouts) + +/datum/element/ghost_role_eligibility + element_flags = ELEMENT_DETACH | ELEMENT_BESPOKE + id_arg_index = 2 + var/penalizing = FALSE + var/free_ghost = FALSE + +/datum/element/ghost_role_eligibility/Attach(datum/target,free_ghosting = FALSE, penalize_on_ghost = FALSE) . = ..() if(!ismob(target)) return ELEMENT_INCOMPATIBLE + penalizing = penalize_on_ghost + free_ghost = free_ghosting var/mob/M = target - if(!(M in eligible_mobs)) - eligible_mobs += M - if(penalize) //penalizing them from making a ghost role / midround antag comeback right away. - var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) MINUTES - var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) MINUTES - if(world.time < roundstart_quit_limit) //add up the time difference to their antag rolling penalty if they quit before half a (ingame) hour even passed. - penalty += roundstart_quit_limit - world.time - if(penalty) - penalty += world.realtime - if(SSautotransfer.can_fire && SSautotransfer.maxvotes) - var/maximumRoundEnd = SSautotransfer.starttime + SSautotransfer.voteinterval * SSautotransfer.maxvotes - if(penalty - SSshuttle.realtimeofstart > maximumRoundEnd + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) - penalty = CANT_REENTER_ROUND - if(!(M.ckey in timeouts)) - timeouts += M.ckey - timeouts[M.ckey] = 0 - else if(timeouts[M.ckey] == CANT_REENTER_ROUND) - return - timeouts[M.ckey] = max(timeouts[M.ckey],penalty) + if(!(M in GLOB.ghost_eligible_mobs)) + GLOB.ghost_eligible_mobs += M + RegisterSignal(M, COMSIG_MOB_GHOSTIZE, .proc/get_ghost_flags) /datum/element/ghost_role_eligibility/Detach(mob/M) . = ..() - if(M in eligible_mobs) - eligible_mobs -= M + if(M in GLOB.ghost_eligible_mobs) + GLOB.ghost_eligible_mobs -= M + UnregisterSignal(M, COMSIG_MOB_GHOSTIZE) -/datum/element/ghost_role_eligibility/proc/get_all_ghost_role_eligible(silent = FALSE) +/proc/get_all_ghost_role_eligible(silent = FALSE) var/list/candidates = list() - for(var/m in eligible_mobs) + for(var/m in GLOB.ghost_eligible_mobs) var/mob/M = m if(M.can_reenter_round(TRUE)) candidates += M return candidates /mob/proc/can_reenter_round(silent = FALSE) - var/datum/element/ghost_role_eligibility/eli = SSdcs.GetElement(list(/datum/element/ghost_role_eligibility)) - return eli.can_reenter_round(src,silent) - -/datum/element/ghost_role_eligibility/proc/can_reenter_round(var/mob/M,silent = FALSE) - if(!(M in eligible_mobs)) + if(!(src in GLOB.ghost_eligible_mobs)) return FALSE - if(!(M.ckey in timeouts)) + if(!(ckey in GLOB.client_ghost_timeouts)) return TRUE - var/timeout = timeouts[M.ckey] + var/timeout = GLOB.client_ghost_timeouts[ckey] if(timeout != CANT_REENTER_ROUND && timeout <= world.realtime) return TRUE - if(!silent && M.client) - to_chat(M, "You are unable to reenter the round[timeout != CANT_REENTER_ROUND ? " yet. Your ghost role blacklist will expire in [DisplayTimeText(timeout - world.realtime)]" : ""].") + if(!silent && client) + to_chat(src, "You are unable to reenter the round[timeout != CANT_REENTER_ROUND ? " yet. Your ghost role blacklist will expire in [DisplayTimeText(timeout - world.realtime)]" : ""].") return FALSE + +/datum/element/ghost_role_eligibility/proc/get_ghost_flags() + . = 0 + if(!penalizing) + . |= COMPONENT_DO_NOT_PENALIZE_GHOSTING + if(free_ghost) + . |= COMPONENT_FREE_GHOSTING + return . diff --git a/code/datums/elements/mob_holder.dm b/code/datums/elements/mob_holder.dm index 3cd5367f65..a5c6e2725d 100644 --- a/code/datums/elements/mob_holder.dm +++ b/code/datums/elements/mob_holder.dm @@ -71,11 +71,12 @@ name = "bugged mob" desc = "Yell at coderbrush." icon = null - alternate_worn_icon = 'icons/mob/animals_held.dmi' + mob_overlay_icon = 'icons/mob/animals_held.dmi' righthand_file = 'icons/mob/animals_held_rh.dmi' lefthand_file = 'icons/mob/animals_held_lh.dmi' icon_state = "" w_class = WEIGHT_CLASS_BULKY + dynamic_hair_suffix = "" var/mob/living/held_mob /obj/item/clothing/head/mob_holder/Initialize(mapload, mob/living/target, worn_state, alt_worn, right_hand, left_hand, slots = NONE) @@ -85,7 +86,7 @@ assimilate(target) if(alt_worn) - alternate_worn_icon = alt_worn + mob_overlay_icon = alt_worn if(worn_state) item_state = worn_state icon_state = worn_state @@ -162,6 +163,11 @@ L.visible_message("[held_mob] escapes from [L]!", "[held_mob] escapes your grip!") release() +/obj/item/clothing/head/mob_holder/mob_can_equip(mob/living/M, mob/living/equipper, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE) + if(!ishuman(M)) //monkeys holding monkeys holding monkeys... + return FALSE + return ..() + /obj/item/clothing/head/mob_holder/assume_air(datum/gas_mixture/env) var/atom/location = loc if(!loc) diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm new file mode 100644 index 0000000000..1c438c86c5 --- /dev/null +++ b/code/datums/elements/polychromic.dm @@ -0,0 +1,187 @@ +#define POLYCHROMIC_ALTCLICK (1<<0) +#define POLYCHROMIC_ACTION (1<<1) +#define POLYCHROMIC_NO_HELD (1<<2) +#define POLYCHROMIC_NO_WORN (1<<3) + +/datum/element/polychromic + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 3 + var/overlays_states //A list or a number of states. In the latter case, the atom icon_state/item_state will be used followed by a number. + var/list/colors_by_atom = list() //list of color strings or mutable appearances, depending on the above variable. + var/icon_file + var/worn_file //used in place of items' held or mob overlay icons if present. + var/list/overlays_names //wrap numbers into text strings please. + var/list/actions_by_atom = list() + var/poly_flags + var/static/list/suits_with_helmet_typecache = typecacheof(list(/obj/item/clothing/suit/hooded, /obj/item/clothing/suit/space/hardsuit)) + var/list/helmet_by_suit = list() //because poly winter coats exist. + var/list/suit_by_helmet = list() //Idem. + +/datum/element/polychromic/Attach(datum/target, list/colors, states, _flags = POLYCHROMIC_ACTION|POLYCHROMIC_NO_HELD, _icon, _worn, list/names = list("Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary")) + . = ..() + var/make_appearances = islist(states) + var/states_len = make_appearances ? length(states) : states + var/names_len = length(names) + if(!states_len || !names_len || colors_by_atom[target] || !isatom(target)) + return ELEMENT_INCOMPATIBLE + var/atom/A = target + + overlays_states = states + icon_file = _icon + worn_file = _worn + poly_flags = _flags + + var/mut_icon = icon_file || A.icon + var/list/L = list() + for(var/I in 1 to states_len) + var/col = LAZYACCESS(colors, I) || "#FFFFFF" + L += make_appearances ? mutable_appearance(mut_icon, overlays_states[I], color = col) : col + colors_by_atom[A] = L + + RegisterSignal(A, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/apply_overlays) + + if(_flags & POLYCHROMIC_ALTCLICK) + RegisterSignal(A, COMSIG_PARENT_EXAMINE, .proc/on_examine) + RegisterSignal(A, COMSIG_CLICK_ALT, .proc/set_color) + + if(!overlays_names && names) //generate + overlays_names = names + var/diff = states_len - names_len + if(diff > 0) + for(var/i in 1 to diff) + overlays_names += "[names_len + i]°" + else if(diff < 0) + overlays_names.len += diff + + if(isitem(A)) + if(_flags & POLYCHROMIC_ACTION) + RegisterSignal(A, COMSIG_ITEM_EQUIPPED, .proc/grant_user_action) + RegisterSignal(A, COMSIG_ITEM_DROPPED, .proc/remove_user_action) + if(!(_flags & POLYCHROMIC_NO_WORN) || !(_flags & POLYCHROMIC_NO_HELD)) + A.AddElement(/datum/element/update_icon_updates_onmob) + RegisterSignal(A, COMSIG_ITEM_WORN_OVERLAYS, .proc/apply_worn_overlays) + if(suits_with_helmet_typecache[A.type]) + RegisterSignal(A, COMSIG_SUIT_MADE_HELMET, .proc/register_helmet) + else if(_flags & POLYCHROMIC_ACTION && ismob(A)) //in the event mob update icon procs are ever standarized. + var/datum/action/polychromic/P = new(A) + RegisterSignal(P, COMSIG_ACTION_TRIGGER, .proc/activate_action) + actions_by_atom[A] = P + P.Grant(A) + + A.update_icon() //apply the overlays. + +/datum/element/polychromic/Detach(atom/A) + . = ..() + colors_by_atom -= A + var/datum/action/polychromic/P = actions_by_atom[A] + if(P) + actions_by_atom -= A + qdel(P) + UnregisterSignal(A, list(COMSIG_PARENT_EXAMINE, COMSIG_CLICK_ALT, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_ITEM_WORN_OVERLAYS, COMSIG_SUIT_MADE_HELMET)) + if(isitem(A)) + var/obj/item/clothing/head/H = helmet_by_suit[A] + if(H) + UnregisterSignal(H, list(COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ITEM_WORN_OVERLAYS, COMSIG_PARENT_QDELETING)) + helmet_by_suit -= A + suit_by_helmet -= H + colors_by_atom -= H + if(!QDELETED(H)) + H.update_icon() //removing the overlays + if(!(poly_flags & POLYCHROMIC_NO_WORN) || !(poly_flags & POLYCHROMIC_NO_HELD)) + A.RemoveElement(/datum/element/update_icon_updates_onmob) + if(!QDELETED(A) && ismob(A.loc)) + var/mob/M = A.loc + if(!(poly_flags & POLYCHROMIC_NO_HELD) && M.is_holding(A)) + M.update_inv_hands() + else if(!(poly_flags & POLYCHROMIC_NO_WORN)) + M.regenerate_icons() + if(!QDELETED(A)) + A.update_icon() //removing the overlays + +/datum/element/polychromic/proc/apply_overlays(atom/source, list/overlays) + var/list/L = colors_by_atom[source] + var/f_icon = icon_file || source.icon + if(isnum(overlays_states)) + for(var/i in 1 to overlays_states) + overlays += mutable_appearance(f_icon, "[source.icon_state]-[i]", color = L[i]) + else + overlays += colors_by_atom[source] + +/datum/element/polychromic/proc/apply_worn_overlays(obj/item/source, isinhands, icon, used_state, style_flags, list/overlays) + if(poly_flags & (isinhands ? POLYCHROMIC_NO_HELD : POLYCHROMIC_NO_WORN)) + return + var/f_icon = worn_file || icon + var/list/L = colors_by_atom[source] + + if(isnum(overlays_states)) + for(var/i in 1 to overlays_states) + overlays += mutable_appearance(f_icon, "[used_state]-[i]", color = L[i]) + else + for(var/i in 1 to length(overlays_states)) + var/mutable_appearance/M = L[i] + overlays += mutable_appearance(f_icon, overlays_states[i], color = M.color) + +/datum/element/polychromic/proc/set_color(atom/source, mob/user) + var/choice = input(user,"Polychromic options", "Recolor [source]") as null|anything in overlays_names + if(!choice || QDELETED(source) || !user.canUseTopic(source, BE_CLOSE, NO_DEXTERY)) + return + var/index = overlays_names.Find(choice) + var/list/L = colors_by_atom[source] + if(!L) // Ummmmmh. + return + var/mutable_appearance/M = L[index] + var/old_color = istype(M) ? M.color : M + var/ncolor = input(user, "Polychromic options", "Choose [choice] Color", old_color) as color|null + if(!ncolor || QDELETED(source) || !colors_by_atom[source] || !user.canUseTopic(source, BE_CLOSE, NO_DEXTERY)) + return + ncolor = sanitize_hexcolor(ncolor, 6, TRUE, old_color) + if(istype(M)) + M.color = ncolor + else + L[index] = ncolor + + source.update_icon() + return TRUE + +/datum/element/polychromic/proc/grant_user_action(atom/source, mob/user, slot) + if(slot == SLOT_IN_BACKPACK || slot == SLOT_LEGCUFFED || slot == SLOT_HANDCUFFED || slot == SLOT_GENERC_DEXTROUS_STORAGE) + return + var/datum/action/polychromic/P = actions_by_atom[source] + if(!P) + P = new (source) + P.name = "Modify [source]'\s Colors" + actions_by_atom[source] = P + P.check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS + RegisterSignal(P, COMSIG_ACTION_TRIGGER, .proc/activate_action) + P.Grant(user) + +/datum/element/polychromic/proc/remove_user_action(atom/source, mob/user) + var/datum/action/polychromic/P = actions_by_atom[source] + P?.Remove(user) + +/datum/element/polychromic/proc/activate_action(datum/action/source, atom/target) + set_color(target, source.owner) + +/datum/element/polychromic/proc/on_examine(atom/source, mob/user, list/examine_list) + examine_list += "Alt-click to recolor it." + +/datum/element/polychromic/proc/register_helmet(atom/source, obj/item/clothing/head/H) + suit_by_helmet[H] = source + helmet_by_suit[source] = H + colors_by_atom[H] = colors_by_atom[source] + RegisterSignal(H, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/apply_overlays) + RegisterSignal(H, COMSIG_ITEM_WORN_OVERLAYS, .proc/apply_worn_overlays) + RegisterSignal(H, COMSIG_PARENT_QDELETING, .proc/unregister_helmet) + +/datum/element/polychromic/proc/unregister_helmet(atom/source) + var/obj/item/clothing/suit/S = suit_by_helmet[source] + suit_by_helmet -= source + helmet_by_suit -= S + colors_by_atom -= source + +/datum/action/polychromic + name = "Modify Polychromic Colors" + background_icon_state = "bg_polychromic" + use_target_appearance = TRUE + button_icon_state = null + target_appearance_matrix = list(0.8,0,0,0,0.8,0) diff --git a/code/datums/elements/spellcasting.dm b/code/datums/elements/spellcasting.dm new file mode 100644 index 0000000000..877bcdbcd3 --- /dev/null +++ b/code/datums/elements/spellcasting.dm @@ -0,0 +1,54 @@ +/datum/element/spellcasting //allows to cast certain spells or skip requirements. + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 2 + var/cast_flags + var/cast_slots + var/list/users_by_item = list() + var/list/stacked_spellcasting_by_user = list() + +/datum/element/spellcasting/Attach(datum/target, _flags, _slots) + . = ..() + if(isitem(target)) + RegisterSignal(target, COMSIG_ITEM_EQUIPPED, .proc/on_equip) + RegisterSignal(target, COMSIG_ITEM_DROPPED, .proc/on_drop) + else if(ismob(target)) + RegisterSignal(target, COMSIG_MOB_SPELL_CAN_CAST, .proc/on_cast) + stacked_spellcasting_by_user[target]++ + else + return ELEMENT_INCOMPATIBLE + cast_flags = _flags + cast_slots = _slots + +/datum/element/spellcasting/Detach(datum/target) + . = ..() + UnregisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_MOB_SPELL_CAN_CAST)) + if(users_by_item[target]) + var/mob/user = users_by_item[target] + stacked_spellcasting_by_user[user]-- + if(!stacked_spellcasting_by_user[user]) + stacked_spellcasting_by_user -= user + UnregisterSignal(user, COMSIG_MOB_SPELL_CAN_CAST) + else if(ismob(target)) + stacked_spellcasting_by_user[target]-- + if(!stacked_spellcasting_by_user[target]) + stacked_spellcasting_by_user -= target + +/datum/element/spellcasting/proc/on_equip(datum/source, mob/equipper, slot) + if(!(cast_slots & slotdefine2slotbit(slot))) + return + users_by_item[source] = equipper + if(!stacked_spellcasting_by_user[equipper]) + RegisterSignal(equipper, COMSIG_MOB_SPELL_CAN_CAST, .proc/on_cast) + stacked_spellcasting_by_user[equipper]++ + +/datum/element/spellcasting/proc/on_drop(datum/source, mob/user) + if(!users_by_item[source]) + return + users_by_item -= source + stacked_spellcasting_by_user[user]-- + if(!stacked_spellcasting_by_user[user]) + stacked_spellcasting_by_user -= user + UnregisterSignal(user, COMSIG_MOB_SPELL_CAN_CAST) + +/datum/element/spellcasting/proc/on_cast(mob/caster, obj/effect/proc_holder/spell) + return cast_flags diff --git a/code/datums/elements/update_icon_updates_onmob.dm b/code/datums/elements/update_icon_updates_onmob.dm index ca0e8b1641..5c71547f62 100644 --- a/code/datums/elements/update_icon_updates_onmob.dm +++ b/code/datums/elements/update_icon_updates_onmob.dm @@ -5,7 +5,7 @@ . = ..() if(!istype(target, /obj/item)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_ATOM_UPDATED_ICON, .proc/update_onmob) + RegisterSignal(target, COMSIG_ATOM_UPDATED_ICON, .proc/update_onmob, override = TRUE) /datum/element/update_icon_updates_onmob/proc/update_onmob(obj/item/target) if(ismob(target.loc)) diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 6b0981665d..c46a03a986 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -128,7 +128,7 @@ // Can most things breathe? if(trace_gases) continue - if(A_gases[/datum/gas/oxygen] >= 16) + if(A_gases[/datum/gas/oxygen] <= 16) continue if(A_gases[/datum/gas/plasma]) continue diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index 49942976ce..bafb6fbf0e 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -73,7 +73,7 @@ var/list/atoms_cache = output_atoms var/sound/S = sound(soundfile) if(direct) - S.channel = open_sound_channel() + S.channel = SSsounds.random_available_channel() S.volume = volume for(var/i in 1 to atoms_cache.len) var/atom/thing = atoms_cache[i] diff --git a/code/datums/martial/_martial.dm b/code/datums/martial/_martial.dm index 7b7975bedb..d8a888871e 100644 --- a/code/datums/martial/_martial.dm +++ b/code/datums/martial/_martial.dm @@ -35,6 +35,17 @@ current_target = new_target streak = "" +/datum/martial_art/proc/damage_roll(mob/living/carbon/human/A, mob/living/carbon/human/D) + //Here we roll for our damage to be added into the damage var in the various attack procs. This is changed depending on whether we are in combat mode, lying down, or if our target is in combat mode. + var/damage = rand(A.dna.species.punchdamagelow, A.dna.species.punchdamagehigh) + if(!(D.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + damage *= 1.5 + if(!CHECK_MOBILITY(A, MOBILITY_STAND)) + damage *= 0.5 + if(!(A.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + damage *= 0.25 + return damage + /datum/martial_art/proc/teach(mob/living/carbon/human/H, make_temporary = FALSE) if(!istype(H) || !H.mind) return FALSE @@ -50,6 +61,7 @@ if(help_verb) H.verbs += help_verb H.mind.martial_art = src + ADD_TRAIT(H, TRAIT_PUGILIST, MARTIAL_ARTIST_TRAIT) return TRUE /datum/martial_art/proc/store(datum/martial_art/M,mob/living/carbon/human/H) @@ -68,7 +80,8 @@ else var/datum/martial_art/X = H.mind.default_martial_art X.teach(H) - + REMOVE_TRAIT(H, TRAIT_PUGILIST, MARTIAL_ARTIST_TRAIT) + /datum/martial_art/proc/on_remove(mob/living/carbon/human/H) if(help_verb) H.verbs -= help_verb diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm index 16d61c29f9..93d70c12cc 100644 --- a/code/datums/martial/boxing.dm +++ b/code/datums/martial/boxing.dm @@ -16,16 +16,13 @@ A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) var/atk_verb = pick("left hook","right hook","straight punch") - - var/damage = rand(10, 13) - var/extra_damage = rand(A.dna.species.punchdamagelow, A.dna.species.punchdamagehigh) + var/extra_damage = damage_roll(A,D) if(extra_damage == A.dna.species.punchdamagelow) playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1) D.visible_message("[A] has attempted to [atk_verb] [D]!", \ "[A] has attempted to [atk_verb] [D]!", null, COMBAT_MESSAGE_RANGE) log_combat(A, D, "attempted to hit", atk_verb) return TRUE - damage += extra_damage var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected)) var/armor_block = D.run_armor_check(affecting, "melee") @@ -35,7 +32,7 @@ D.visible_message("[A] has [atk_verb]ed [D]!", \ "[A] has [atk_verb]ed [D]!", null, COMBAT_MESSAGE_RANGE) - D.apply_damage(damage, STAMINA, affecting, armor_block) + D.apply_damage(rand(10,13) + extra_damage, STAMINA, affecting, armor_block) log_combat(A, D, "punched (boxing) ") if(D.getStaminaLoss() > 100 && istype(D.mind?.martial_art, /datum/martial_art/boxing)) var/knockout_prob = (D.getStaminaLoss() + rand(-15,15))*0.75 diff --git a/code/datums/martial/cqc.dm b/code/datums/martial/cqc.dm index 0871cf7eaa..39fac11129 100644 --- a/code/datums/martial/cqc.dm +++ b/code/datums/martial/cqc.dm @@ -42,11 +42,12 @@ /datum/martial_art/cqc/proc/Slam(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!can_use(A)) return FALSE + var/damage = (damage_roll(A,D) + 5) if(CHECK_MOBILITY(D, MOBILITY_STAND)) D.visible_message("[A] slams [D] into the ground!", \ "[A] slams you into the ground!") playsound(get_turf(A), 'sound/weapons/slam.ogg', 50, 1, -1) - D.apply_damage(10, BRUTE) + D.apply_damage(damage, BRUTE) D.DefaultCombatKnockdown(120) log_combat(A, D, "slammed (CQC)") return TRUE @@ -54,29 +55,33 @@ /datum/martial_art/cqc/proc/Kick(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!can_use(A)) return FALSE - if(CHECK_MOBILITY(D, MOBILITY_STAND)) - D.visible_message("[A] kicks [D] back!", \ - "[A] kicks you back!") - playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) - var/atom/throw_target = get_edge_target_turf(D, A.dir) - D.throw_at(throw_target, 1, 14, A) - D.apply_damage(10, BRUTE) - log_combat(A, D, "kicked (CQC)") + var/damage = damage_roll(A,D) if(!CHECK_MOBILITY(D, MOBILITY_STAND) && CHECK_MOBILITY(D, MOBILITY_USE)) log_combat(A, D, "knocked out (Head kick)(CQC)") D.visible_message("[A] kicks [D]'s head, knocking [D.p_them()] out!", \ "[A] kicks your head, knocking you out!") playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1) D.SetSleeping(300) - D.adjustOrganLoss(ORGAN_SLOT_BRAIN, 15, 150) + D.apply_damage(damage + 5, BRUTE) + var/atom/throw_target = get_edge_target_turf(D, A.dir) + D.throw_at(throw_target, 1, 14, A) + D.adjustOrganLoss(ORGAN_SLOT_BRAIN, damage + 10, 150) + else + D.visible_message("[A] kicks [D]!", \ + "[A] kicks you!") + playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) + D.Dizzy(damage) + D.apply_damage(damage + 15, BRUTE) + log_combat(A, D, "kicked (CQC)") return TRUE /datum/martial_art/cqc/proc/Pressure(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!can_use(A)) return FALSE + var/damage = (damage_roll(A,D) + 55) log_combat(A, D, "pressured (CQC)") D.visible_message("[A] punches [D]'s neck!") - D.adjustStaminaLoss(60) + D.apply_damage(damage, STAMINA) playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1) return TRUE @@ -85,11 +90,12 @@ return if(!can_use(A)) return FALSE + var/damage = (damage_roll(A,D) + 15) if(!D.stat) log_combat(A, D, "restrained (CQC)") D.visible_message("[A] locks [D] into a restraining position!", \ "[A] locks you into a restraining position!") - D.adjustStaminaLoss(20) + D.apply_damage(damage, STAMINA) D.Stun(100) restraining = TRUE addtimer(VARSET_CALLBACK(src, restraining, FALSE), 50, TIMER_UNIQUE) @@ -98,6 +104,7 @@ /datum/martial_art/cqc/proc/Consecutive(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!can_use(A)) return FALSE + var/damage = damage_roll(A,D) if(!D.stat) log_combat(A, D, "consecutive CQC'd (CQC)") D.visible_message("[A] strikes [D]'s abdomen, neck and back consecutively", \ @@ -106,8 +113,8 @@ var/obj/item/I = D.get_active_held_item() if(I && D.temporarilyRemoveItemFromInventory(I)) A.put_in_hands(I) - D.adjustStaminaLoss(50) - D.apply_damage(25, BRUTE) + D.apply_damage(damage + 45, STAMINA) + D.apply_damage(damage + 20, BRUTE) return TRUE /datum/martial_art/cqc/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -135,7 +142,7 @@ log_combat(A, D, "attacked (CQC)") A.do_attack_animation(D) var/picked_hit_type = pick("CQC'd", "Big Bossed") - var/bonus_damage = 13 + var/bonus_damage = (damage_roll(A,D) + 7) if(!CHECK_MOBILITY(D, MOBILITY_STAND)) bonus_damage += 5 picked_hit_type = "stomps on" @@ -151,7 +158,7 @@ D.visible_message("[A] leg sweeps [D]!", \ "[A] leg sweeps you!") playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) - D.apply_damage(10, BRUTE) + D.apply_damage(bonus_damage, BRUTE) D.DefaultCombatKnockdown(60) log_combat(A, D, "sweeped (CQC)") return TRUE @@ -161,6 +168,7 @@ return FALSE add_to_streak("D",D) var/obj/item/I = null + var/damage = (damage_roll(A,D)*0.5) if(check_streak(A,D)) return TRUE if(prob(65)) @@ -172,7 +180,7 @@ if(I && D.temporarilyRemoveItemFromInventory(I)) A.put_in_hands(I) D.Jitter(2) - D.apply_damage(5, BRUTE) + D.apply_damage(damage, BRUTE) else D.visible_message("[A] attempted to disarm [D]!", \ "[A] attempted to disarm [D]!") diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index 1a244f911e..df42fba07d 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -84,64 +84,71 @@ if("neck_chop") streak = "" neck_chop(A,D) - return 1 + return TRUE if("leg_sweep") streak = "" leg_sweep(A,D) - return 1 + return TRUE if("quick_choke")//is actually lung punch streak = "" quick_choke(A,D) - return 1 - return 0 + return TRUE + return FALSE /datum/martial_art/krav_maga/proc/leg_sweep(mob/living/carbon/human/A, mob/living/carbon/human/D) + var/obj/item/bodypart/affecting = D.get_bodypart(BODY_ZONE_CHEST) + var/armor_block = D.run_armor_check(affecting, "melee") + var/damage = damage_roll(A,D) if(!CHECK_MOBILITY(D, MOBILITY_STAND)) - return 0 + return FALSE D.visible_message("[A] leg sweeps [D]!", \ "[A] leg sweeps you!") playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1) - D.apply_damage(5, BRUTE) - D.DefaultCombatKnockdown(40, override_hardstun = 0.01, override_stamdmg = 25) + D.apply_damage(damage + 25, STAMINA, affecting, armor_block) + D.DefaultCombatKnockdown(80, override_hardstun = 1, override_stamdmg = 0) log_combat(A, D, "leg sweeped") - return 1 + return TRUE /datum/martial_art/krav_maga/proc/quick_choke(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)//is actually lung punch + var/damage = damage_roll(A,D) D.visible_message("[A] pounds [D] on the chest!", \ "[A] slams your chest! You can't breathe!") playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1) if(D.losebreath <= 10) D.losebreath = CLAMP(D.losebreath + 5, 0, 10) - D.adjustOxyLoss(10) + D.adjustOxyLoss(damage + 5) log_combat(A, D, "quickchoked") - return 1 + return TRUE /datum/martial_art/krav_maga/proc/neck_chop(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + var/damage = (damage_roll(A,D)*0.5) D.visible_message("[A] karate chops [D]'s neck!", \ "[A] karate chops your neck, rendering you unable to speak!") playsound(get_turf(A), 'sound/effects/hit_punch.ogg', 50, 1, -1) - D.apply_damage(5, BRUTE) + D.apply_damage(damage, BRUTE) if(D.silent <= 10) D.silent = CLAMP(D.silent + 10, 0, 10) log_combat(A, D, "neck chopped") - return 1 + return TRUE /datum/martial_art/krav_maga/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) if(check_streak(A,D)) - return 1 + return TRUE log_combat(A, D, "grabbed (Krav Maga)") ..() /datum/martial_art/krav_maga/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected)) + var/armor_block = D.run_armor_check(affecting, "melee") if(check_streak(A,D)) - return 1 + return TRUE log_combat(A, D, "punched") var/picked_hit_type = pick("punches", "kicks") - var/bonus_damage = 10 - if(CHECK_MOBILITY(D, MOBILITY_STAND)) - bonus_damage += 5 + var/bonus_damage = damage_roll(A,D) + if(!CHECK_MOBILITY(D, MOBILITY_STAND)) + bonus_damage += 10 picked_hit_type = "stomps on" - D.apply_damage(bonus_damage, BRUTE) + D.apply_damage(bonus_damage, BRUTE, affecting, armor_block) if(picked_hit_type == "kicks" || picked_hit_type == "stomps on") A.do_attack_animation(D, ATTACK_EFFECT_KICK) playsound(get_turf(D), 'sound/effects/hit_kick.ogg', 50, 1, -1) @@ -151,24 +158,34 @@ D.visible_message("[A] [picked_hit_type] [D]!", \ "[A] [picked_hit_type] you!") log_combat(A, D, "[picked_hit_type] with [name]") - return 1 + return TRUE -/datum/martial_art/krav_maga/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) - var/obj/item/I = null - if(prob(60)) - I = D.get_active_held_item() - if(I) - if(D.temporarilyRemoveItemFromInventory(I)) - A.put_in_hands(I) - D.visible_message("[A] has disarmed [D]!", \ - "[A] has disarmed [D]!") - playsound(D, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) +/datum/martial_art/krav_maga/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + if(check_streak(A,D)) + return TRUE + var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected)) + var/armor_block = D.run_armor_check(affecting, "melee") + var/damage = (damage_roll(A,D)*2) + if(D.mobility_flags & MOBILITY_STAND) + D.visible_message("[A] reprimands [D]!", \ + "You're slapped by [A]!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A) + to_chat(A, "You jab [D]!") + A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) + playsound(D, 'sound/effects/hit_punch.ogg', 50, TRUE, -1) + D.apply_damage(damage + 5, STAMINA, affecting, armor_block) + log_combat(A, D, "punched nonlethally") else - D.visible_message("[A] attempted to disarm [D]!", \ - "[A] attempted to disarm [D]!") - playsound(D, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - log_combat(A, D, "disarmed (Krav Maga)", "[I ? " removing \the [I]" : ""]") - return 1 + D.visible_message("[A] reprimands [D]!", \ + "You're manhandled by [A]!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A) + to_chat(A, "You stomp [D]!") + A.do_attack_animation(D, ATTACK_EFFECT_KICK) + playsound(D, 'sound/effects/hit_punch.ogg', 50, TRUE, -1) + D.apply_damage(damage + 10, STAMINA, affecting, armor_block) + log_combat(A, D, "stomped nonlethally") + if(prob(D.getStaminaLoss())) + D.visible_message("[D] sputters and recoils in pain!", "You recoil in pain as you are jabbed in a nerve!") + D.drop_all_held_items() + return TRUE //Krav Maga Gloves diff --git a/code/datums/martial/mushpunch.dm b/code/datums/martial/mushpunch.dm index fe9f0d77d6..3fd0a637c2 100644 --- a/code/datums/martial/mushpunch.dm +++ b/code/datums/martial/mushpunch.dm @@ -4,6 +4,7 @@ /datum/martial_art/mushpunch/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) var/atk_verb + var/damage = (damage_roll(A,D)*3) to_chat(A, "You begin to wind up an attack...") if(!do_after(A, 25, target = D)) to_chat(A, "Your attack was interrupted!") @@ -12,7 +13,7 @@ atk_verb = pick("punches", "smashes", "ruptures", "cracks") D.visible_message("[A] [atk_verb] [D] with inhuman strength, sending [D.p_them()] flying backwards!", \ "[A] [atk_verb] you with inhuman strength, sending you flying backwards!") - D.apply_damage(rand(15,30), BRUTE) + D.apply_damage(damage, BRUTE) //KAPOW playsound(D, 'sound/effects/meteorimpact.ogg', 25, 1, -1) var/throwtarget = get_edge_target_turf(A, get_dir(A, get_step_away(D, A))) D.throw_at(throwtarget, 4, 2, A)//So stuff gets tossed around at the same time. diff --git a/code/datums/martial/plasma_fist.dm b/code/datums/martial/plasma_fist.dm index 71fb00c467..c751d3b146 100644 --- a/code/datums/martial/plasma_fist.dm +++ b/code/datums/martial/plasma_fist.dm @@ -44,11 +44,13 @@ return /datum/martial_art/plasma_fist/proc/Throwback(mob/living/carbon/human/A, mob/living/carbon/human/D) + var/damage = (damage_roll(A,D)*3) D.visible_message("[A] has hit [D] with Plasma Punch!", \ "[A] has hit [D] with Plasma Punch!") playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1) var/atom/throw_target = get_edge_target_turf(D, get_dir(D, get_step_away(D, A))) D.throw_at(throw_target, 200, 4,A) + D.apply_damage(damage, BRUTE) A.say("HYAH!", forced="plasma fist") log_combat(A, D, "threw back (Plasma Fist)") return diff --git a/code/datums/martial/psychotic_brawl.dm b/code/datums/martial/psychotic_brawl.dm index 75053dbbfc..06d07260ed 100644 --- a/code/datums/martial/psychotic_brawl.dm +++ b/code/datums/martial/psychotic_brawl.dm @@ -14,6 +14,7 @@ /datum/martial_art/psychotic_brawling/proc/psycho_attack(mob/living/carbon/human/A, mob/living/carbon/human/D) var/atk_verb + var/damage = damage_roll(A,D) switch(rand(1,8)) if(1) D.help_shake_act(A) @@ -44,10 +45,10 @@ D.visible_message("[A] [atk_verb] [D]!", \ "[A] [atk_verb] you!") playsound(get_turf(D), 'sound/weapons/punch1.ogg', 40, 1, -1) - D.apply_damage(rand(5,10), BRUTE, BODY_ZONE_HEAD) - A.apply_damage(rand(5,10), BRUTE, BODY_ZONE_HEAD) + D.apply_damage(damage*1.5, BRUTE, BODY_ZONE_HEAD) + A.apply_damage(damage, BRUTE, BODY_ZONE_HEAD) if(!istype(D.head,/obj/item/clothing/head/helmet/) && !istype(D.head,/obj/item/clothing/head/hardhat)) - D.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5) + D.adjustOrganLoss(ORGAN_SLOT_BRAIN, damage) A.Stun(rand(10,45)) D.DefaultCombatKnockdown(rand(5,30))//CIT CHANGE - makes stuns from martial arts always use Knockdown instead of Stun for the sake of consistency if(5,6) @@ -55,7 +56,7 @@ atk_verb = pick("punches", "kicks", "hits", "slams into") D.visible_message("[A] [atk_verb] [D] with inhuman strength, sending [D.p_them()] flying backwards!", \ "[A] [atk_verb] you with inhuman strength, sending you flying backwards!") - D.apply_damage(rand(15,30), BRUTE) + D.apply_damage(damage*2, BRUTE) playsound(get_turf(D), 'sound/effects/meteorimpact.ogg', 25, 1, -1) var/throwtarget = get_edge_target_turf(A, get_dir(A, get_step_away(D, A))) D.throw_at(throwtarget, 4, 2, A)//So stuff gets tossed around at the same time. diff --git a/code/datums/martial/rising_bass.dm b/code/datums/martial/rising_bass.dm index 8055bd54e9..2d760fc10a 100644 --- a/code/datums/martial/rising_bass.dm +++ b/code/datums/martial/rising_bass.dm @@ -78,6 +78,7 @@ return TRUE /datum/martial_art/the_rising_bass/proc/sideKick(mob/living/carbon/human/A, mob/living/carbon/human/D) + var/damage = (damage_roll(A,D)*0.5) if(CHECK_MOBILITY(D, MOBILITY_STAND)) var/dir = A.dir & (NORTH | SOUTH) ? pick(EAST, WEST) : pick(NORTH, SOUTH) var/oppdir = dir == NORTH ? SOUTH : dir == SOUTH ? NORTH : dir == EAST ? WEST : EAST @@ -87,7 +88,7 @@ D.visible_message("[A] kicks [D] in the side, sliding them over!", \ "[A] kicks you in the side, forcing you to step away!") playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - D.apply_damage(5, BRUTE, BODY_ZONE_CHEST) + D.apply_damage(damage, BRUTE, BODY_ZONE_CHEST) D.DefaultCombatKnockdown(60) var/L = !checkfordensity(H,D) ? (!checkfordensity(K,D) ? D.loc : K) : H D.forceMove(L) @@ -96,6 +97,7 @@ return TRUE /datum/martial_art/the_rising_bass/proc/shoulderFlip(mob/living/carbon/human/A, mob/living/carbon/human/D) + var/damage = (damage_roll(A,D) + 25) if(CHECK_MOBILITY(D, MOBILITY_STAND)) var/turf/H = get_step(A, get_dir(D,A)) var/L = checkfordensity(H,D) ? H : A.loc @@ -104,8 +106,8 @@ "[A] flips you over their shoulder, slamming you into the ground!") playsound(get_turf(A), 'sound/weapons/thudswoosh.ogg', 50, 1, -1) D.emote("scream") - D.apply_damage(10, BRUTE, BODY_ZONE_CHEST) - D.apply_damage(30, BRUTE, BODY_ZONE_HEAD) + D.apply_damage(damage, BRUTE, BODY_ZONE_CHEST) + D.apply_damage(damage, BRUTE, BODY_ZONE_HEAD) D.Sleeping(60) D.DefaultCombatKnockdown(300) D.forceMove(L) @@ -114,6 +116,7 @@ return FALSE /datum/martial_art/the_rising_bass/proc/repulsePunch(mob/living/carbon/human/A, mob/living/carbon/human/D) + var/damage = damage_roll(A,D) if(CHECK_MOBILITY(D, MOBILITY_STAND) && repulsecool < world.time) A.do_attack_animation(D, ATTACK_EFFECT_PUNCH) D.visible_message("[A] smashes [D] in the chest, throwing them away!", \ @@ -121,7 +124,7 @@ playsound(get_turf(A), 'sound/weapons/punch1.ogg', 50, 1, -1) var/atom/F = get_edge_target_turf(D, get_dir(A, get_step_away(D, A))) D.throw_at(F, 10, 1) - D.apply_damage(10, BRUTE, BODY_ZONE_CHEST) + D.apply_damage(damage, BRUTE, BODY_ZONE_CHEST) D.DefaultCombatKnockdown(90) log_combat(A, D, "repulse punched (Rising Bass)") repulsecool = world.time + 3 SECONDS @@ -129,12 +132,13 @@ return FALSE /datum/martial_art/the_rising_bass/proc/footSmash(mob/living/carbon/human/A, mob/living/carbon/human/D) + var/damage = (damage_roll(A,D)*0.5) if(CHECK_MOBILITY(D, MOBILITY_STAND)) A.do_attack_animation(D, ATTACK_EFFECT_KICK) D.visible_message("[A] smashes their foot down on [D]'s foot!", \ "[A] smashes your foot!") playsound(get_turf(A), 'sound/weapons/punch1.ogg', 50, 1, -1) - D.apply_damage(5, BRUTE, pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) + D.apply_damage(damage, BRUTE, pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)) D.dropItemToGround(D.get_active_held_item()) log_combat(A, D, "foot smashed (Rising Bass)") return TRUE @@ -181,7 +185,7 @@ . = ..() if(A.incapacitated(FALSE, TRUE)) //NO STUN return BULLET_ACT_HIT - if(!(A.mobility_flags & MOBILITY_USE)) //NO UNABLE TO USE + if(!CHECK_ALL_MOBILITY(A, MOBILITY_USE|MOBILITY_STAND)) //NO UNABLE TO USE, NO DODGING ON THE FLOOR return BULLET_ACT_HIT if(A.dna && A.dna.check_mutation(HULK)) //NO HULK return BULLET_ACT_HIT diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 2b7d9e0a09..527ee01206 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -31,45 +31,48 @@ var/atk_verb = pick("precisely kick", "brutally chop", "cleanly hit", "viciously slam") ///this is the critical hit damage added to the attack if it rolls, it starts at 0 because it'll be changed when rolled var/crit_damage = 0 + var/damage = damage_roll(A,D) D.visible_message("[A] [atk_verb]s [D]!", \ "[A] [atk_verb]s you!", null, null, A) to_chat(A, "You [atk_verb] [D]!") if(prob(10)) - crit_damage += 20 + crit_damage += (damage*2 + 15) playsound(get_turf(D), 'sound/weapons/bite.ogg', 50, TRUE, -1) - D.visible_message("[D] sputters blood as the blow strikes them with inhuman force!", "You are struck with incredible precision by [A]!") + D.visible_message("[D] staggers as the blow strikes them with inhuman force!", "You are struck with incredible precision by [A]!") log_combat(A, D, "critcal strong punched (Sleeping Carp)")//log it here because a critical can swing for 40 force and it's important for the sake of how hard they hit else playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, TRUE, -1) log_combat(A, D, "strong punched (Sleeping Carp)")//so as to not double up on logging - D.apply_damage(20 + crit_damage, BRUTE, affecting) + D.apply_damage((damage + 15) + crit_damage, BRUTE, affecting) return ///Crashing Wave Kick: Harm Disarm combo, throws people seven tiles backwards /datum/martial_art/the_sleeping_carp/proc/launchKick(mob/living/carbon/human/A, mob/living/carbon/human/D) + var/damage = (damage_roll(A,D) + 15) A.do_attack_animation(D, ATTACK_EFFECT_KICK) D.visible_message("[A] kicks [D] square in the chest, sending them flying!", \ "You are kicked square in the chest by [A], sending you flying!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A) playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, TRUE, -1) var/atom/throw_target = get_edge_target_turf(D, A.dir) D.throw_at(throw_target, 7, 14, A) - D.apply_damage(15, BRUTE, BODY_ZONE_CHEST) + D.apply_damage(damage, BRUTE, BODY_ZONE_CHEST) log_combat(A, D, "launchkicked (Sleeping Carp)") return ///Keelhaul: Harm Grab combo, knocks people down, deals stamina damage while they're on the floor /datum/martial_art/the_sleeping_carp/proc/dropKick(mob/living/carbon/human/A, mob/living/carbon/human/D) + var/damage = damage_roll(A,D) A.do_attack_animation(D, ATTACK_EFFECT_KICK) playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, TRUE, -1) if((D.mobility_flags & MOBILITY_STAND)) - D.apply_damage(10, BRUTE, BODY_ZONE_HEAD) - D.DefaultCombatKnockdown(50) - D.adjustStaminaLoss(40) //A cit specific change form the tg port to really punish anyone who tries to stand up + D.apply_damage(damage, BRUTE, BODY_ZONE_HEAD) + D.DefaultCombatKnockdown(50, override_hardstun = 0.01, override_stamdmg = 0) + D.apply_damage(damage + 35, STAMINA, BODY_ZONE_HEAD) //A cit specific change form the tg port to really punish anyone who tries to stand up D.visible_message("[A] kicks [D] in the head, sending them face first into the floor!", \ "You are kicked in the head by [A], sending you crashing to the floor!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A) - if(!(D.mobility_flags & MOBILITY_STAND)) - D.apply_damage(5, BRUTE, BODY_ZONE_HEAD) - D.adjustStaminaLoss(40) + else + D.apply_damage(damage*0.5, BRUTE, BODY_ZONE_HEAD) + D.apply_damage(damage + 35, STAMINA, BODY_ZONE_HEAD) D.drop_all_held_items() D.visible_message("[A] kicks [D] in the head!", \ "You are kicked in the head by [A]!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A) @@ -85,6 +88,7 @@ /datum/martial_art/the_sleeping_carp/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) add_to_streak("H",D) + var/damage = (damage_roll(A,D) + 5) if(check_streak(A,D)) return TRUE var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected)) @@ -93,7 +97,7 @@ D.visible_message("[A] [atk_verb]s [D]!", \ "[A] [atk_verb]s you!", null, null, A) to_chat(A, "You [atk_verb] [D]!") - D.apply_damage(rand(10,15), BRUTE, affecting) + D.apply_damage(damage, BRUTE, affecting) playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, TRUE, -1) log_combat(A, D, "punched (Sleeping Carp)") return TRUE @@ -110,7 +114,7 @@ . = ..() if(A.incapacitated(FALSE, TRUE)) //NO STUN return BULLET_ACT_HIT - if(!(A.mobility_flags & MOBILITY_USE)) //NO UNABLE TO USE + if(!CHECK_ALL_MOBILITY(A, MOBILITY_USE|MOBILITY_STAND)) //NO UNABLE TO USE, NO DEFLECTION ON THE FLOOR return BULLET_ACT_HIT if(A.dna && A.dna.check_mutation(HULK)) //NO HULK return BULLET_ACT_HIT @@ -121,6 +125,7 @@ playsound(get_turf(A), pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, TRUE) P.firer = A P.setAngle(rand(0, 360))//SHING + A.adjustStaminaLossBuffered (3) //Citadel change to stop infinite bullet sponging as you run away, but it is buffered! return BULLET_ACT_FORCE_PIERCE return BULLET_ACT_HIT @@ -133,7 +138,6 @@ ADD_TRAIT(H, TRAIT_NODISMEMBER, SLEEPING_CARP_TRAIT) H.physiology.brute_mod *= 0.4 //brute is really not gonna cut it H.physiology.burn_mod *= 0.7 //burn is distinctly more useful against them than brute but they're still resistant - H.physiology.stamina_mod *= 0.5 //stun batons prove to be one of the few ways to fight them. They have stun resistance already, so I think doubling down too hard on this resistance is a bit much. H.physiology.stun_mod *= 0.3 //for those rare stuns H.physiology.pressure_mod *= 0.3 //go hang out with carp H.physiology.cold_mod *= 0.3 //cold mods are different to burn mods, they do stack however @@ -148,7 +152,6 @@ REMOVE_TRAIT(H, TRAIT_NODISMEMBER, SLEEPING_CARP_TRAIT) H.physiology.brute_mod = initial(H.physiology.brute_mod) H.physiology.burn_mod = initial(H.physiology.burn_mod) - H.physiology.stamina_mod = initial(H.physiology.stamina_mod) H.physiology.stun_mod = initial(H.physiology.stun_mod) H.physiology.pressure_mod = initial(H.physiology.pressure_mod) //no more carpies H.physiology.cold_mod = initial(H.physiology.cold_mod) @@ -237,7 +240,7 @@ else return ..() -/obj/item/twohanded/bostaff/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(wielded) - return ..() - return FALSE +/obj/item/twohanded/bostaff/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!wielded) + return BLOCK_NONE + return ..() diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index 6ed2245dfd..f7923d029f 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -18,28 +18,30 @@ var/datum/action/drop/drop = new/datum/action/drop() /datum/martial_art/wrestling/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + if(!can_use(A, D)) + return FALSE switch(streak) if("drop") streak = "" drop(A,D) - return 1 + return TRUE if("strike") streak = "" strike(A,D) - return 1 + return TRUE if("kick") streak = "" kick(A,D) - return 1 + return TRUE if("throw") streak = "" throw_wrassle(A,D) - return 1 + return TRUE if("slam") streak = "" slam(A,D) - return 1 - return 0 + return TRUE + return FALSE /datum/action/slam name = "Slam (Cinch) - Slam a grappled opponent into the floor." @@ -136,7 +138,7 @@ /datum/martial_art/wrestling/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) if(check_streak(A,D)) - return 1 + return TRUE log_combat(A, D, "punched with wrestling") ..() @@ -171,11 +173,11 @@ if (get_dist(A, D) > 1) to_chat(A, "[D] is too far away!") - return 0 + return FALSE if (!isturf(A.loc) || !isturf(D.loc)) to_chat(A, "You can't throw [D] from here!") - return 0 + return FALSE A.setDir(turn(A.dir, 90)) var/turf/T = get_step(A, A.dir) @@ -184,7 +186,7 @@ D.forceMove(T) D.setDir(get_dir(D, A)) else - return 0 + return FALSE sleep(delay) @@ -193,11 +195,11 @@ if (get_dist(A, D) > 1) to_chat(A, "[D] is too far away!") - return 0 + return FALSE if (!isturf(A.loc) || !isturf(D.loc)) to_chat(A, "You can't throw [D] from here!") - return 0 + return FALSE D.forceMove(A.loc) // Maybe this will help with the wallthrowing bug. @@ -209,7 +211,7 @@ D.emote("scream") D.throw_at(T, 10, 4, A, TRUE, TRUE, callback = CALLBACK(D, /mob/living/carbon/human.proc/DefaultCombatKnockdown, 20)) log_combat(A, D, "has thrown with wrestling") - return 0 + return FALSE /datum/martial_art/wrestling/proc/FlipAnimation(mob/living/carbon/human/D) set waitfor = FALSE @@ -225,6 +227,7 @@ if(!A.pulling || A.pulling != D) to_chat(A, "You need to have [D] in a cinch!") return + var/damage = damage_roll(A,D) D.forceMove(A.loc) A.setDir(get_dir(A, D)) D.setDir(get_dir(D, A)) @@ -256,7 +259,7 @@ A.pixel_y = 0 D.pixel_x = 0 D.pixel_y = 0 - return 0 + return FALSE if (!isturf(A.loc) || !isturf(D.loc)) to_chat(A, "You can't slam [D] here!") @@ -264,7 +267,7 @@ A.pixel_y = 0 D.pixel_x = 0 D.pixel_y = 0 - return 0 + return FALSE else if (A) A.pixel_x = 0 @@ -272,7 +275,7 @@ if (D) D.pixel_x = 0 D.pixel_y = 0 - return 0 + return FALSE sleep(1) @@ -284,11 +287,11 @@ if (get_dist(A, D) > 1) to_chat(A, "[D] is too far away!") - return 0 + return FALSE if (!isturf(A.loc) || !isturf(D.loc)) to_chat(A, "You can't slam [D] here!") - return 0 + return FALSE D.forceMove(A.loc) @@ -307,11 +310,11 @@ switch(rand(1,3)) if (2) - D.adjustBruteLoss(rand(20,30)) + D.apply_damage(damage + 25, BRUTE) if (3) D.ex_act(EXPLODE_LIGHT) else - D.adjustBruteLoss(rand(10,20)) + D.apply_damage(damage + 15, BRUTE) else D.ex_act(EXPLODE_LIGHT) @@ -325,7 +328,7 @@ log_combat(A, D, "body-slammed") - return 0 + return FALSE /datum/martial_art/wrestling/proc/CheckStrikeTurf(mob/living/carbon/human/A, turf/T) if (A && (T && isturf(T) && get_dist(A, T) <= 1)) @@ -335,6 +338,7 @@ if(!D) return var/turf/T = get_turf(A) + var/damage = damage_roll(A,D) if (T && isturf(T) && D && isturf(D.loc)) for (var/i = 0, i < 4, i++) A.setDir(turn(A.dir, 90)) @@ -343,7 +347,7 @@ addtimer(CALLBACK(src, .proc/CheckStrikeTurf, A, T), 4) A.visible_message("[A] headbutts [D]!") - D.adjustBruteLoss(rand(10,20)) + D.apply_damage(damage + 15, BRUTE) playsound(A.loc, "swing_hit", 50, 1) D.Unconscious(20) log_combat(A, D, "headbutted") @@ -351,13 +355,14 @@ /datum/martial_art/wrestling/proc/kick(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!D) return + var/damage = damage_roll(A,D) A.emote("scream") A.emote("flip") A.setDir(turn(A.dir, 90)) A.visible_message("[A] roundhouse-kicks [D]!") playsound(A.loc, "swing_hit", 50, 1) - D.adjustBruteLoss(rand(10,20)) + D.apply_damage(damage + 15, STAMINA) var/turf/T = get_edge_target_turf(A, get_dir(A, get_step_away(D, A))) if (T && isturf(T)) @@ -371,7 +376,8 @@ var/obj/surface = null var/turf/ST = null var/falling = 0 - + var/damage = damage_roll(A,D) + for (var/obj/O in oview(1, A)) if (O.density == 1) if (O == A) @@ -399,15 +405,15 @@ A.pixel_y = 0 if (falling == 1) A.visible_message("...and dives head-first into the ground, ouch!") - A.adjustBruteLoss(rand(10,20)) + A.apply_damage(damage + 15, BRUTE) A.DefaultCombatKnockdown(60) to_chat(A, "[D] is too far away!") - return 0 + return FALSE if (!isturf(A.loc) || !isturf(D.loc)) A.pixel_y = 0 to_chat(A, "You can't drop onto [D] from here!") - return 0 + return FALSE if(A) animate(A, transform = matrix(90, MATRIX_ROTATE), time = 1, loop = 0) @@ -425,9 +431,9 @@ if (prob(33) || D.stat) D.ex_act(EXPLODE_LIGHT) else - D.adjustBruteLoss(rand(20,30)) + D.apply_damage(damage + 25, BRUTE) else - D.adjustBruteLoss(rand(20,30)) + D.apply_damage(damage + 25, BRUTE) D.DefaultCombatKnockdown(40) @@ -440,14 +446,18 @@ return /datum/martial_art/wrestling/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + damage_roll(A,D) if(check_streak(A,D)) - return 1 + return TRUE log_combat(A, D, "wrestling-disarmed") ..() /datum/martial_art/wrestling/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D) + damage_roll(A,D) if(check_streak(A,D)) - return 1 + return TRUE + if(!can_use(A,D)) + return ..() if(A.pulling == D || A == D) // don't stun grab yoursel return FALSE A.start_pulling(D) @@ -455,7 +465,7 @@ "[A] gets [D] in a cinch!") D.Stun(rand(60,100)) log_combat(A, D, "cinched") - return 1 + return TRUE /obj/item/storage/belt/champion/wrestling name = "Wrestling Belt" @@ -476,3 +486,19 @@ if(H.get_item_by_slot(SLOT_BELT) == src) style.remove(H) return + +//Subtype of wrestling, reserved for the wrestling belts found in the holodeck +/datum/martial_art/wrestling/holodeck + name = "Holodeck Wrestling" + +/obj/item/storage/belt/champion/wrestling/holodeck + name = "Holodeck Wrestling Belt" + style = new /datum/martial_art/wrestling/holodeck + +//Make sure that moves can only be used on people wearing the holodeck belt +/datum/martial_art/wrestling/holodeck/can_use(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + if(!(istype(D.mind?.martial_art, /datum/martial_art/wrestling/holodeck))) + return FALSE + else + return ..() + diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 57b9a25904..45a0f86a98 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -470,7 +470,6 @@ /datum/objective/steal, /datum/objective/download, /datum/objective/nuclear, - /datum/objective/capture, /datum/objective/absorb, /datum/objective/custom ) diff --git a/code/datums/mutations/_mutations.dm b/code/datums/mutations/_mutations.dm index 2156581cb1..9edaa7605c 100644 --- a/code/datums/mutations/_mutations.dm +++ b/code/datums/mutations/_mutations.dm @@ -31,6 +31,7 @@ //MUT_EXTRA - A mutation that is in the mutations tab, and can be given and taken away through though the DNA console. Has a 0 before it's name in the mutation section of the dna console //MUT_OTHER Cannot be interacted with by players through normal means. I.E. wizards mutate + var/list/conflicts //any mutations that might conflict. put mutation typepath defines in here. make sure to enter it both ways (so that A conflicts with B, and B with A) var/can_chromosome = CHROMOSOME_NONE //can we take chromosomes? 0: CHROMOSOME_NEVER never, 1:CHROMOSOME_NONE yeah, 2: CHROMOSOME_USED no, already have one var/chromosome_name //purely cosmetic var/modified = FALSE //ugly but we really don't want chromosomes and on_acquiring to overlap and apply double the powers @@ -60,6 +61,14 @@ return TRUE if(limb_req && !H.get_bodypart(limb_req)) return TRUE + for(var/M in H.dna.mutations)//check for conflicting powers + var/datum/mutation/human/mewtayshun = M + if(LAZYLEN(mewtayshun.conflicts)) + for(var/cons in mewtayshun.conflicts) + var/datum/mutation/human/conflicter = cons + if(conflicter == type) + to_chat(H, "You feel your genes resisting something.") + return TRUE owner = H dna = H.dna dna.mutations += src diff --git a/code/datums/mutations/actions.dm b/code/datums/mutations/actions.dm index f036b25518..e933e02c15 100644 --- a/code/datums/mutations/actions.dm +++ b/code/datums/mutations/actions.dm @@ -41,7 +41,7 @@ desc = "You can breathe fire at a target." school = "evocation" charge_max = 600 - clothes_req = FALSE + clothes_req = NONE range = 20 base_icon_state = "fireball" action_icon_state = "fireball0" @@ -121,7 +121,7 @@ name = "Convoke Void" //magic the gathering joke here desc = "A rare genome that attracts odd forces not usually observed. May sometimes pull you in randomly." school = "evocation" - clothes_req = FALSE + clothes_req = NONE charge_max = 600 invocation = "DOOOOOOOOOOOOOOOOOOOOM!!!" invocation_type = "shout" @@ -155,7 +155,7 @@ dropmessage = "You let the electricity from your hand dissipate." hand_path = /obj/item/melee/touch_attack/shock charge_max = 400 - clothes_req = FALSE + clothes_req = NONE action_icon_state = "zap" /obj/item/melee/touch_attack/shock @@ -211,7 +211,7 @@ name = "Remember the Scent" desc = "Get a scent off of the item you're currently holding to track it. With an empty hand, you'll track the scent you've remembered." charge_max = 100 - clothes_req = FALSE + clothes_req = NONE range = -1 include_user = TRUE action_icon_state = "nose" @@ -289,8 +289,7 @@ /obj/effect/proc_holder/spell/self/self_amputation name = "Drop a limb" desc = "Concentrate to make a random limb pop right off your body." - clothes_req = FALSE - human_req = FALSE + clothes_req = NONE charge_max = 100 action_icon_state = "autotomy" @@ -327,8 +326,7 @@ /obj/effect/proc_holder/spell/self/lay_genetic_web name = "Lay Web" desc = "Drops a web. Only you will be able to traverse your web easily, making it pretty good for keeping you safe." - clothes_req = FALSE - human_req = FALSE + clothes_req = NONE charge_max = 4 SECONDS //the same time to lay a web action_icon = 'icons/mob/actions/actions_genetic.dmi' action_icon_state = "lay_web" @@ -369,8 +367,7 @@ /obj/effect/proc_holder/spell/self/tongue_spike name = "Launch spike" desc = "Shoot your tongue out in the direction you're facing, embedding it and dealing damage until they remove it." - clothes_req = FALSE - human_req = TRUE + clothes_req = NONE charge_max = 100 action_icon = 'icons/mob/actions/actions_genetic.dmi' action_icon_state = "spike" diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index cc286058f1..ab7fe986fb 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -75,20 +75,21 @@ quality = POSITIVE difficulty = 16 instability = 5 + conflicts = list(GIGANTISM) locked = TRUE // Default intert species for now, so locked from regular pool. /datum/mutation/human/dwarfism/on_acquiring(mob/living/carbon/human/owner) if(..()) return owner.transform = owner.transform.Scale(1, 0.8) - owner.pass_flags |= PASSTABLE + passtable_on(owner, GENETIC_MUTATION) owner.visible_message("[owner] suddenly shrinks!", "Everything around you seems to grow..") /datum/mutation/human/dwarfism/on_losing(mob/living/carbon/human/owner) if(..()) return owner.transform = owner.transform.Scale(1, 1.25) - owner.pass_flags &= ~PASSTABLE + passtable_off(owner, GENETIC_MUTATION) owner.visible_message("[owner] suddenly grows!", "Everything around you seems to shrink..") @@ -333,6 +334,7 @@ desc = "The cells within the subject spread out to cover more area, making the subject appear larger." quality = MINOR_NEGATIVE difficulty = 12 + conflicts = list(DWARFISM) /datum/mutation/human/gigantism/on_acquiring(mob/living/carbon/human/owner) if(..()) diff --git a/code/datums/mutations/combined.dm b/code/datums/mutations/combined.dm index d3cc83f9c0..465706c897 100644 --- a/code/datums/mutations/combined.dm +++ b/code/datums/mutations/combined.dm @@ -26,3 +26,7 @@ /datum/generecipe/tonguechem required = "/datum/mutation/human/tongue_spike; /datum/mutation/human/stimmed" result = TONGUESPIKECHEM + +/datum/generecipe/hulk + required = "/datum/mutation/human/strong; /datum/mutation/human/radioactive" + result = HULK diff --git a/code/datums/radiation_wave.dm b/code/datums/radiation_wave.dm index 4795f8da60..5dce5791c2 100644 --- a/code/datums/radiation_wave.dm +++ b/code/datums/radiation_wave.dm @@ -117,7 +117,7 @@ continue contam_atoms += thing var/did_contam = 0 - if(length(can_contam)) + if(can_contam) var/rad_strength = ((strength-RAD_MINIMUM_CONTAMINATION) * RAD_CONTAMINATION_STR_COEFFICIENT)/contam_atoms.len for(var/k in 1 to contam_atoms.len) var/atom/thing = contam_atoms[k] diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 5a69ebe427..69b74841df 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -113,20 +113,25 @@ duration = set_duration . = ..() -/datum/status_effect/no_combat_mode/mesmerize +/datum/status_effect/mesmerize id = "Mesmerize" alert_type = /obj/screen/alert/status_effect/mesmerized -/datum/status_effect/no_combat_mode/mesmerize/on_creation(mob/living/new_owner, set_duration) +/datum/status_effect/mesmerize/on_creation(mob/living/new_owner, set_duration) . = ..() ADD_TRAIT(owner, TRAIT_MUTE, "mesmerize") owner.add_movespeed_modifier("[STATUS_EFFECT_MESMERIZE]_[id]", TRUE, priority = 64, override = TRUE, multiplicative_slowdown = 5, blacklisted_movetypes = FALSE? NONE : CRAWLING) -/datum/status_effect/no_combat_mode/mesmerize/on_remove() +/datum/status_effect/mesmerize/on_remove() . = ..() REMOVE_TRAIT(owner, TRAIT_MUTE, "mesmerize") owner.remove_movespeed_modifier("[STATUS_EFFECT_MESMERIZE]_[id]") +/datum/status_effect/mesmerize/on_creation(mob/living/new_owner, set_duration) + if(isnum(set_duration)) + duration = set_duration + . = ..() + /obj/screen/alert/status_effect/mesmerized name = "Mesmerized" desc = "You cant tear your sight from who is in front of you... their gaze is simply too enthralling.." diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index d4a5dcdeb3..ad24126e45 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -38,7 +38,6 @@ ..() if(!istype(holder, holder_type)) CRASH("Wire holder is not of the expected type!") - return src.holder = holder if(randomize) diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm index bc034db718..cbad2f7ab0 100644 --- a/code/game/area/Space_Station_13_areas.dm +++ b/code/game/area/Space_Station_13_areas.dm @@ -324,6 +324,11 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "Service Hallway" icon_state = "hall_service" +/area/hallway/secondary/civilian + name = "Civilian Wing" + icon_state = "hallFS" + + //Command /area/bridge @@ -1046,7 +1051,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "Monastery Garden" icon_state = "hydro" - //Science /area/science @@ -1393,3 +1397,199 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/crew_quarters/fitness/pool name = "Pool Area" icon_state = "pool" + +/area/crew_quarters/dorms/blue + name = "Blue Dorms" + icon_state = "Sleep" + nightshift_public_area = NIGHTSHIFT_AREA_NONE + +/area/crew_quarters/dorms/purple + name = "Purple Dorms" + icon_state = "Sleep" + nightshift_public_area = NIGHTSHIFT_AREA_NONE + +/area/crew_quarters/lounge/jazz + name = "Jazz Lounge" + icon_state = "yellow" + ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg') + nightshift_public_area = NIGHTSHIFT_AREA_RECREATION + + +/area/crew_quarters/fitness/recreation + name = "Recreation Area" + icon_state = "fitness" + nightshift_public_area = NIGHTSHIFT_AREA_RECREATION + +/area/crew_quarters/fitness/cogpool + name = "Pool" + icon_state = "fitness" + clockwork_warp_fail = "Pool's closed." + nightshift_public_area = NIGHTSHIFT_AREA_RECREATION + +/area/crew_quarters/barbershop + name = "Barbershop" + icon_state = "blue" + nightshift_public_area = NIGHTSHIFT_AREA_RECREATION + +/area/crew_quarters/observatory + name = "Observatory" + icon_state = "Sleep" + +//Engineering + +/area/engine/teg_hot + name = "Hot Loop" + icon_state = "red" + +/area/engine/teg_cold + name = "Cold Loop" + icon_state = "blue" + +/area/engine/workshop + name = "Engineering Workshop" + icon_state = "engine" + +/area/security/courtroom/jury + name = "Jury Room" + icon_state = "courtroom" + +/area/quartermaster/miningdock/airless + name = "Mining Dock" + icon_state = "mining" + has_gravity = STANDARD_GRAVITY + valid_territory = FALSE + outdoors = TRUE + ambientsounds = SPACE + blob_allowed = FALSE //While part of the station, what good will it do you? + +/area/quartermaster/miningdock/airless/no_grav + name = "Mining Dock" + icon_state = "mining" + dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT + power_light = FALSE + power_equip = FALSE + power_environ = FALSE + valid_territory = FALSE + outdoors = TRUE + ambientsounds = SPACE + blob_allowed = FALSE //While part of the station, what good will it do you? + +/area/janitor/aux + name = "Auxiliary Custodial Closet" + icon_state = "janitor" + flags_1 = NONE + +/area/hydroponics/lobby + name = "Hydroponics Lobby" + icon_state = "hydro" + +//Storage + +/area/storage/emergency/generic + name = "Emergency Storage" + icon_state = "emergencystorage" + +//Construction + +/area/construction + name = "Construction Area" + icon_state = "yellow" + ambientsounds = ENGINEERING + +/area/construction/secondary + name = "Secondary Construction Area" + icon_state = "yellow" + +/area/construction/minisat_exterior + name = "Minisat Exterior" + icon_state = "yellow" + +/area/construction/mining/aux_base + name = "Auxiliary Base Construction" + icon_state = "yellow" + +/area/construction/mining/aux_base/closet + name = "Auxiliary Closet Construction" + icon_state = "yellow" + +/area/construction/supplyshuttle + name = "Supply Shuttle" + icon_state = "yellow" + +/area/construction/quarters + name = "Engineers' Quarters" + icon_state = "yellow" + +/area/construction/qmaint + name = "Maintenance" + icon_state = "yellow" + +/area/construction/hallway + name = "Hallway" + icon_state = "yellow" + +/area/construction/solars + name = "Solar Panels" + icon_state = "yellow" + +/area/construction/solarscontrol + name = "Solar Panel Control" + icon_state = "yellow" + +/area/construction/storage + name = "Construction Site Storage" + icon_state = "yellow" + +/area/construction/storage/wing + name = "Storage Wing" + icon_state = "storage_wing" + +//Routers + +/area/router + name = "Router" + icon_state = "yellow" + ambientsounds = ENGINEERING + +/area/router/service + name = "Service Router" + icon_state = "green" + +/area/router/public + name = "Public Router" + icon_state = "yellow" + +/area/router/sec + name = "Security Router" + icon_state = "blue" + +/area/router/medsci + name = "MedSci Router" + icon_state = "yellow" + +/area/router/eva + name = "EVA Router" + icon_state = "yellow" + +/area/router/air + name = "Airbridge Router" + icon_state = "red" + +/area/router/eng + name = "Engineering Router" + icon_state = "yellow" + +/area/router/aux + name = "Routing System" + icon_state = "yellow" + requires_power = FALSE + has_gravity = STANDARD_GRAVITY + always_unpowered = TRUE + dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT + power_light = FALSE + power_equip = FALSE + power_environ = FALSE + valid_territory = FALSE + outdoors = TRUE + ambientsounds = SPACE + blob_allowed = FALSE //While part of the station, what good will it do you? \ No newline at end of file diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index ac56d6f17c..fe9f2a676e 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -63,6 +63,7 @@ var/xenobiology_compatible = FALSE //Can the Xenobio management console transverse this area by default? var/list/canSmoothWithAreas //typecache to limit the areas that atoms in this area can smooth with + /// Color on minimaps, if it's null (which is default) it makes one at random. var/minimap_color diff --git a/code/game/area/areas/holodeck.dm b/code/game/area/areas/holodeck.dm index 10e3249d64..75ed2b656c 100644 --- a/code/game/area/areas/holodeck.dm +++ b/code/game/area/areas/holodeck.dm @@ -6,6 +6,8 @@ hidden = TRUE var/obj/machinery/computer/holodeck/linked + var/list/compatible_holodeck_comps + var/abstract_type = /area/holodeck var/restricted = 0 // if true, program goes on emag list /* @@ -53,6 +55,8 @@ */ /area/holodeck/rec_center name = "\improper Recreational Holodeck" + compatible_holodeck_comps = list(/obj/machinery/computer/holodeck) + abstract_type = /area/holodeck/rec_center /area/holodeck/rec_center/offline name = "Holodeck - Offline" @@ -99,6 +103,9 @@ /area/holodeck/rec_center/winterwonderland name = "Holodeck - Winter Wonderland" +/area/holodeck/rec_center/wrestlingarena + name = "Holodeck - Wrestling Arena" + // Bad programs /area/holodeck/rec_center/burn diff --git a/code/game/atoms.dm b/code/game/atoms.dm index d8d7ce3d91..266d5b5bb5 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -694,14 +694,64 @@ /atom/vv_get_dropdown() . = ..() - . += "---" - var/turf/curturf = get_turf(src) - if (curturf) - .["Jump to"] = "?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[curturf.x];Y=[curturf.y];Z=[curturf.z]" - .["Modify Transform"] = "?_src_=vars;[HrefToken()];modtransform=[REF(src)]" - .["Add reagent"] = "?_src_=vars;[HrefToken()];addreagent=[REF(src)]" - .["Trigger EM pulse"] = "?_src_=vars;[HrefToken()];emp=[REF(src)]" - .["Trigger explosion"] = "?_src_=vars;[HrefToken()];explode=[REF(src)]" + VV_DROPDOWN_OPTION("", "---------") + if(!ismovableatom(src)) + var/turf/curturf = get_turf(src) + if(curturf) + . += "" + VV_DROPDOWN_OPTION(VV_HK_MODIFY_TRANSFORM, "Modify Transform") + VV_DROPDOWN_OPTION(VV_HK_ADD_REAGENT, "Add Reagent") + VV_DROPDOWN_OPTION(VV_HK_TRIGGER_EMP, "EMP Pulse") + VV_DROPDOWN_OPTION(VV_HK_TRIGGER_EXPLOSION, "Explosion") + +/atom/vv_do_topic(list/href_list) + . = ..() + if(href_list[VV_HK_ADD_REAGENT] && check_rights(R_VAREDIT)) + if(!reagents) + var/amount = input(usr, "Specify the reagent size of [src]", "Set Reagent Size", 50) as num + if(amount) + create_reagents(amount) + + if(reagents) + var/chosen_id = choose_reagent_id(usr) + if(chosen_id) + var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", reagents.maximum_volume) as num + if(amount) + reagents.add_reagent(chosen_id, amount) + log_admin("[key_name(usr)] has added [amount] units of [chosen_id] to [src]") + message_admins("[key_name(usr)] has added [amount] units of [chosen_id] to [src]") + if(href_list[VV_HK_TRIGGER_EXPLOSION] && check_rights(R_FUN)) + usr.client.cmd_admin_explosion(src) + if(href_list[VV_HK_TRIGGER_EMP] && check_rights(R_FUN)) + usr.client.cmd_admin_emp(src) + if(href_list[VV_HK_MODIFY_TRANSFORM] && check_rights(R_VAREDIT)) + var/result = input(usr, "Choose the transformation to apply","Transform Mod") as null|anything in list("Scale","Translate","Rotate") + var/matrix/M = transform + switch(result) + if("Scale") + var/x = input(usr, "Choose x mod","Transform Mod") as null|num + var/y = input(usr, "Choose y mod","Transform Mod") as null|num + if(!isnull(x) && !isnull(y)) + transform = M.Scale(x,y) + if("Translate") + var/x = input(usr, "Choose x mod","Transform Mod") as null|num + var/y = input(usr, "Choose y mod","Transform Mod") as null|num + if(!isnull(x) && !isnull(y)) + transform = M.Translate(x,y) + if("Rotate") + var/angle = input(usr, "Choose angle to rotate","Transform Mod") as null|num + if(!isnull(angle)) + transform = M.Turn(angle) + if(href_list[VV_HK_AUTO_RENAME] && check_rights(R_VAREDIT)) + var/newname = input(usr, "What do you want to rename this to?", "Automatic Rename") as null|text + if(newname) + vv_auto_rename(newname) + +/atom/vv_get_header() + . = ..() + var/refid = REF(src) + . += "[VV_HREF_TARGETREF(refid, VV_HK_AUTO_RENAME, "[src]")]" + . += "
    << [dir2text(dir) || dir] >>" /atom/proc/drop_location() var/atom/L = loc @@ -709,6 +759,9 @@ return null return L.AllowDrop() ? L : L.drop_location() +/atom/proc/vv_auto_rename(newname) + name = newname + /atom/Entered(atom/movable/AM, atom/oldLoc) SEND_SIGNAL(src, COMSIG_ATOM_ENTERED, AM, oldLoc) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index d8f54e9993..6089d11d6c 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -468,9 +468,8 @@ /atom/movable/vv_get_dropdown() . = ..() - . -= "Jump to" - .["Follow"] = "?_src_=holder;[HrefToken()];adminplayerobservefollow=[REF(src)]" - .["Get"] = "?_src_=holder;[HrefToken()];admingetmovable=[REF(src)]" + . += "" + . += "" /atom/movable/proc/ex_check(ex_id) if(!ex_id) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 1a57cf5051..413484b99b 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -147,7 +147,6 @@ return "health-85" else return "health-100" - return "0" //HOOKS @@ -323,7 +322,6 @@ return "crit" else return "dead" - return "dead" //Sillycone hooks /mob/living/silicon/proc/diag_hud_set_health() diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 4db8f4129a..8029685bf7 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -119,7 +119,6 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th C.appearance = chosen_prof.appearance_list[slot] C.name = chosen_prof.name_list[slot] C.flags_cover = chosen_prof.flags_cover_list[slot] - C.item_color = chosen_prof.item_color_list[slot] C.item_state = chosen_prof.item_state_list[slot] if(equip) user.equip_to_slot_or_del(C, GLOB.slot2slot[slot]) diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index 15d7744205..7b798f19e4 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -45,8 +45,11 @@ Credit where due: // PROCS // /////////// -/proc/is_servant_of_ratvar(mob/M) - return istype(M) && !isobserver(M) && M.mind && M.mind.has_antag_datum(/datum/antagonist/clockcult) +/proc/is_servant_of_ratvar(mob/M, require_full_power = FALSE, holy_water_check = FALSE) + if(!istype(M) || isobserver(M)) + return FALSE + var/datum/antagonist/clockcult/D = M?.mind?.has_antag_datum(/datum/antagonist/clockcult) + return D && (!require_full_power || !D.neutered) && (!holy_water_check || !D.ignore_holy_water) /proc/is_eligible_servant(mob/M) if(!istype(M)) @@ -70,12 +73,14 @@ Credit where due: return TRUE return FALSE -/proc/add_servant_of_ratvar(mob/L, silent = FALSE, create_team = TRUE) +/proc/add_servant_of_ratvar(mob/L, silent = FALSE, create_team = TRUE, override_type) if(!L || !L.mind) return var/update_type = /datum/antagonist/clockcult if(silent) update_type = /datum/antagonist/clockcult/silent + if(override_type) //prioritizes + update_type = override_type var/datum/antagonist/clockcult/C = new update_type(L.mind) C.make_team = create_team C.show_in_roundend = create_team //tutorial scarabs begone @@ -105,9 +110,6 @@ Credit where due: L.playsound_local(get_turf(L), 'sound/ambience/antag/clockcultalr.ogg', 40, TRUE, frequency = 100000, pressure_affected = FALSE) flash_color(L, flash_color = list("#BE8700", "#BE8700", "#BE8700", rgb(0,0,0)), flash_time = 5) - - - /proc/remove_servant_of_ratvar(mob/L, silent = FALSE) if(!L || !L.mind) return diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index 0a231a5ff1..4d3ea2d02e 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -63,7 +63,7 @@ attack_verb_on = list("slipped") clumsy_check = FALSE sharpness = IS_BLUNT - item_color = "yellow" + sword_color = "yellow" heat = 0 light_color = "#ffff00" var/next_trombone_allowed = 0 diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 497cc2f1c3..8ec4123201 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -3,8 +3,11 @@ /datum/game_mode var/list/datum/mind/cult = list() -/proc/iscultist(mob/living/M) - return istype(M) && M.mind && M.mind.has_antag_datum(/datum/antagonist/cult) +/proc/iscultist(mob/living/M, require_full_power = FALSE, holy_water_check = FALSE) + if(!istype(M)) + return FALSE + var/datum/antagonist/cult/D = M?.mind?.has_antag_datum(/datum/antagonist/cult) + return D && (!require_full_power || !D.neutered) && (!holy_water_check || !D.ignore_holy_water) /datum/team/cult/proc/is_sacrifice_target(datum/mind/mind) for(var/datum/objective/sacrifice/sac_objective in objectives) @@ -93,7 +96,7 @@ add_cultist(cult_mind, 0, equip=TRUE) if(!main_cult) var/datum/antagonist/cult/C = cult_mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(C && C.cult_team) + if(C?.cult_team) main_cult = C.cult_team ..() diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index de57bf0402..d548f373db 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -54,12 +54,18 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) // Current storyteller var/datum/dynamic_storyteller/storyteller = null // Threat logging vars + /// Starting threat level, for things that increase it but can bring it back down. + var/initial_threat_level = 0 /// Target threat level right now. Events and antags will try to keep the round at this level. var/threat_level = 0 /// The current antag threat. Recalculated every time a ruletype starts or ends. var/threat = 0 - /// Starting threat level, for things that increase it but can bring it back down. - var/initial_threat_level = 0 + /// Threat average over the course of the round, for endgame logs. + var/threat_average = 0 + /// Number of times threat average has been calculated, for calculating above. + var/threat_average_weight = 0 + /// Last time a threat average sample was taken. Used for weighting the rolling average. + var/last_threat_sample_time = 0 /// Things that cause a rolling threat adjustment to be displayed at roundend. var/list/threat_tallies = list() /// Running information about the threat. Can store text or datum entries. @@ -199,7 +205,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) if(threatadd > 0) create_threat(threatadd) else - spend_threat(-threatadd) + remove_threat(threatadd) else if (href_list["injectlate"]) latejoin_injection_cooldown = 0 forced_injection = TRUE @@ -241,6 +247,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) . += "Peaceful Waypoint
    " . += "Your station orbits deep within controlled, core-sector systems and serves as a waypoint for routine traffic through Nanotrasen's trade empire. Due to the combination of high security, interstellar traffic, and low strategic value, it makes any direct threat of violence unlikely. Your primary enemies will be incompetence and bored crewmen: try to organize team-building events to keep staffers interested and productive. However, even deep in our territory there may be subversive elements, especially for such a high-value target as your station. Keep an eye out, but don't expect much trouble." set_security_level(SEC_LEVEL_GREEN) + station_goals.len = 0 for(var/T in subtypesof(/datum/station_goal)) var/datum/station_goal/G = new T if(!(G in station_goals)) @@ -251,6 +258,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) . += "Core Territory
    " . += "Your station orbits within reliably mundane, secure space. Although Nanotrasen has a firm grip on security in your region, the valuable resources and strategic position aboard your station make it a potential target for infiltrations. Monitor crew for non-loyal behavior, but expect a relatively tame shift free of large-scale destruction. We expect great things from your station." set_security_level(SEC_LEVEL_GREEN) + station_goals.len = 0 for(var/T in subtypesof(/datum/station_goal)) var/datum/station_goal/G = new T if(!(G in station_goals)) @@ -490,7 +498,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) starting_rule = pickweight(drafted_rules) // Check if the ruleset is highlander and if a highlander ruleset has been executed else if(starting_rule.flags & HIGHLANDER_RULESET) // Should already be filtered out, but making sure. Check filtering at end of proc if reported. - if(threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) + if(threat_level <= GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) if(highlander_executed) drafted_rules -= starting_rule if(drafted_rules.len <= 0) @@ -511,7 +519,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) drafted_rules -= starting_rule starting_rule.trim_candidates() - starting_rule.scale_up(extra_rulesets_amount, threat) + starting_rule.scale_up(extra_rulesets_amount, threat_level) if (starting_rule.pre_execute()) log_threat("[starting_rule.ruletype] - [starting_rule.name] [starting_rule.cost + starting_rule.scaled_times * starting_rule.scaling_cost] threat", verbose = TRUE) if(starting_rule.flags & HIGHLANDER_RULESET) @@ -715,6 +723,16 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) continue current_players[CURRENT_DEAD_PLAYERS].Add(M) // Players who actually died (and admins who ghosted, would be nice to avoid counting them somehow) threat = storyteller.calculate_threat() + added_threat + if(threat_average_weight) + var/cur_sample_weight = world.time - last_threat_sample_time + threat_average = ((threat_average * threat_average_weight) + (threat * cur_sample_weight)) / (threat_average_weight + cur_sample_weight) + threat_average_weight += cur_sample_weight + last_threat_sample_time = world.time + else + threat_average = threat + threat_average_weight++ + last_threat_sample_time = world.time + /// Removes type from the list /datum/game_mode/dynamic/proc/remove_from_list(list/type_list, type) for(var/I in type_list) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm index f6755057e2..da33da5f43 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm @@ -222,6 +222,26 @@ message_admins("[M.name] was made into a bloodsucker by dynamic.") return TRUE +////////////////////////////////////////////// +// // +// CHANGELINGS // +// // +////////////////////////////////////////////// + +/datum/dynamic_ruleset/latejoin/changeling + name = "Changeling Infiltrator" + config_tag = "latejoin_changeling" + antag_flag = ROLE_CHANGELING + antag_datum = /datum/antagonist/changeling + restricted_roles = list("AI", "Cyborg") + protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + required_candidates = 1 + weight = 3 + cost = 15 + requirements = list(101,101,101,101,101,101,101,101,101,101) + property_weights = list("trust" = -2, "valid" = 2) + high_population_requirement = 101 + ////////////////////////////////////////////// // // // COLLECTOR // @@ -241,5 +261,5 @@ requirements = list(10,10,10,10,10,10,10,10,10,10) high_population_requirement = 10 repeatable = TRUE - flags = TRAITOR_RULESET + flags = TRAITOR_RULESET | MINOR_RULESET property_weights = list("story_potential" = 2, "trust" = -1, "extended" = 2) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index b746100f27..48e306b2b5 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -34,8 +34,7 @@ living_players = trim_list(mode.current_players[CURRENT_LIVING_PLAYERS]) living_antags = trim_list(mode.current_players[CURRENT_LIVING_ANTAGS]) list_observers = trim_list(mode.current_players[CURRENT_OBSERVERS]) - var/datum/element/ghost_role_eligibility/eligibility = SSdcs.GetElement(list(/datum/element/ghost_role_eligibility)) - ghost_eligible = trim_list(eligibility.get_all_ghost_role_eligible()) + ghost_eligible = trim_list(get_all_ghost_role_eligible()) /datum/dynamic_ruleset/midround/proc/trim_list(list/L = list()) var/list/trimmed_list = L.Copy() diff --git a/code/game/gamemodes/dynamic/dynamic_storytellers.dm b/code/game/gamemodes/dynamic/dynamic_storytellers.dm index 71eb7ec533..c37eb9bc2a 100644 --- a/code/game/gamemodes/dynamic/dynamic_storytellers.dm +++ b/code/game/gamemodes/dynamic/dynamic_storytellers.dm @@ -11,6 +11,7 @@ WAROPS_ALWAYS_ALLOWED: Can always do warops, regardless of threat level. USE_PREF_WEIGHTS: Will use peoples' preferences to change the threat centre. FORCE_IF_WON: If this mode won the vote, forces it + USE_PREV_ROUND_WEIGHTS: Changes its threat centre based on the average chaos of previous rounds. */ var/flags = 0 var/dead_player_weight = 1 // How much dead players matter for threat calculation @@ -53,6 +54,8 @@ Property weights are: var/turf/T = get_turf(H) if(H.stat != DEAD && is_station_level(T.z) && !("Station" in H.faction)) threat += H.threat() + for(var/obj/item/phylactery/P in GLOB.poi_list) + threat += 25 // can't be giving them too much of a break for (var/mob/M in mode.current_players[CURRENT_LIVING_PLAYERS]) if (M?.mind?.assigned_role && M.stat != DEAD) var/datum/job/J = SSjob.GetJob(M.mind.assigned_role) @@ -90,6 +93,8 @@ Property weights are: mean += 5 if(voters) GLOB.dynamic_curve_centre += (mean/voters) + if(flags & USE_PREV_ROUND_WEIGHTS) + GLOB.dynamic_curve_centre += (50 - SSpersistence.average_dynamic_threat) / 10 GLOB.dynamic_forced_threat_level = forced_threat_level /datum/dynamic_storyteller/proc/get_midround_cooldown() @@ -135,17 +140,19 @@ Property weights are: if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET))) continue rule.trim_candidates() - var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat)) - /* Basically, the closer the cost is to the current threat-level-away-from-threat, the more likely it is to - pick this particular ruleset. - Let's use a toy example: there's 60 threat level and 10 threat spent. - We want to pick a ruleset that's close to that, so we run the below equation, on two rulesets. - Ruleset 1 has 30 cost, ruleset 2 has 5 cost. - When we do the math, ruleset 1's threat_weight is 0.538, and ruleset 2's is 0.238, meaning ruleset 1 - is 2.26 times as likely to be picked, all other things considered. - Of course, we don't want it to GUARANTEE the closest, that's no fun, so it's just a weight. - */ - var/threat_weight = 1-abs(1-LOGISTIC_FUNCTION(2,0.05,cost_difference,0)) + var/threat_weight = 1 + if(!(rule.flags & MINOR_RULESET)) // makes the traitor rulesets always possible anyway + var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat)) + /* Basically, the closer the cost is to the current threat-level-away-from-threat, the more likely it is to + pick this particular ruleset. + Let's use a toy example: there's 60 threat level and 10 threat spent. + We want to pick a ruleset that's close to that, so we run the below equation, on two rulesets. + Ruleset 1 has 30 cost, ruleset 2 has 5 cost. + When we do the math, ruleset 1's threat_weight is 0.538, and ruleset 2's is 0.238, meaning ruleset 1 + is 2.26 times as likely to be picked, all other things considered. + Of course, we don't want it to GUARANTEE the closest, that's no fun, so it's just a weight. + */ + threat_weight = 1-abs(1-LOGISTIC_FUNCTION(2,0.05,cost_difference,0)) if (rule.ready()) var/property_weight = 0 for(var/property in property_weights) @@ -168,8 +175,10 @@ Property weights are: rule.candidates = list(newPlayer) rule.trim_candidates() - var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat)) - var/threat_weight = 1-abs(1-(LOGISTIC_FUNCTION(2,0.05,cost_difference,0))) + var/threat_weight = 1 + if(!(rule.flags & MINOR_RULESET)) + var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat)) + threat_weight = 1-abs(1-(LOGISTIC_FUNCTION(2,0.05,cost_difference,0))) if (rule.ready()) var/property_weight = 0 for(var/property in property_weights) @@ -200,7 +209,7 @@ Property weights are: weight = 1 event_frequency_lower = 2 MINUTES event_frequency_upper = 10 MINUTES - flags = WAROPS_ALWAYS_ALLOWED | FORCE_IF_WON + flags = WAROPS_ALWAYS_ALLOWED min_players = 40 var/refund_cooldown = 0 @@ -224,7 +233,7 @@ Property weights are: curve_width = 1.5 weight = 2 min_players = 30 - flags = WAROPS_ALWAYS_ALLOWED + flags = WAROPS_ALWAYS_ALLOWED | USE_PREV_ROUND_WEIGHTS property_weights = list("valid" = 3, "trust" = 5) /datum/dynamic_storyteller/team/get_injection_chance(dry_run = FALSE) @@ -245,7 +254,10 @@ Property weights are: config_tag = "random" weight = 1 desc = "No weighting at all; every ruleset has the same chance of happening. Cooldowns vary wildly. As random as it gets." - forced_threat_level = 100 + +/datum/dynamic_storyteller/random/on_start() + ..() + GLOB.dynamic_forced_threat_level = rand(0,100) /datum/dynamic_storyteller/random/get_midround_cooldown() return rand(GLOB.dynamic_midround_delay_min/2, GLOB.dynamic_midround_delay_max*2) @@ -259,9 +271,6 @@ Property weights are: /datum/dynamic_storyteller/random/get_injection_chance() return 50 // i would do rand(0,100) but it's actually the same thing when you do the math -/datum/dynamic_storyteller/random/calculate_threat() - return 0 // what IS threat - /datum/dynamic_storyteller/random/roundstart_draft() var/list/drafted_rules = list() for (var/datum/dynamic_ruleset/roundstart/rule in mode.roundstart_rules) @@ -315,18 +324,20 @@ Property weights are: desc = "Antags with options for loadouts and gimmicks. Traitor, wizard, nukies. Has a buildup-climax-falling action threat curve." weight = 2 curve_width = 2 + flags = USE_PREV_ROUND_WEIGHTS property_weights = list("story_potential" = 2) -/datum/dynamic_storyteller/story/do_process() +/datum/dynamic_storyteller/story/calculate_threat() var/current_time = (world.time / SSautotransfer.targettime)*180 - mode.threat_level = round(mode.initial_threat_level*(sin(current_time)+0.5),0.1) + mode.threat_level = round(mode.initial_threat_level*(sin(current_time)+0.25),0.1) + ..() /datum/dynamic_storyteller/classic name = "Classic" config_tag = "classic" desc = "No special antagonist weights. Good variety, but not like random. Uses your chaos preference to weight." - flags = USE_PREF_WEIGHTS + flags = USE_PREF_WEIGHTS | USE_PREV_ROUND_WEIGHTS /datum/dynamic_storyteller/suspicion name = "Intrigue" @@ -335,6 +346,7 @@ Property weights are: weight = 2 curve_width = 2 dead_player_weight = 2 + flags = USE_PREV_ROUND_WEIGHTS property_weights = list("trust" = -3) /datum/dynamic_storyteller/liteextended diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index b42b41aba4..4497f9faef 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -663,7 +663,7 @@ GLOBAL_LIST_EMPTY(possible_items_special) if(count) target_amount = count update_explanation_text() - +/* /datum/objective/capture name = "capture" var/captured_amount = 0 @@ -709,7 +709,7 @@ GLOBAL_LIST_EMPTY(possible_items_special) if(count) target_amount = count update_explanation_text() - +*/ //Changeling Objectives /datum/objective/absorb diff --git a/code/game/gamemodes/objective_sabotage.dm b/code/game/gamemodes/objective_sabotage.dm index 3cc5bc4aa8..d2cdd2e029 100644 --- a/code/game/gamemodes/objective_sabotage.dm +++ b/code/game/gamemodes/objective_sabotage.dm @@ -77,14 +77,14 @@ /datum/sabotage_objective/processing/supermatter/can_run() return (locate(/obj/machinery/power/supermatter_crystal) in GLOB.machines) - +/* /datum/sabotage_objective/station_integrity name = "Make sure the station is at less than 80% integrity by the end. Smash walls, windows etc. to reach this goal." sabotage_type = "integrity" /datum/sabotage_objective/station_integrity/check_conditions() return 5-(max(SSticker.station_integrity*4,320)/80) - +*/ /datum/sabotage_objective/cloner name = "Destroy all Nanotrasen cloning machines." sabotage_type = "cloner" @@ -98,6 +98,9 @@ special_equipment = list(/obj/item/aiModule/syndicate) excludefromjob = list("Chief Engineer","Research Director","Head of Personnel","Captain","Chief Medical Officer","Head Of Security") +/datum/sabotage_objective/ai_law/can_run() + return length(active_ais()) + /datum/sabotage_objective/ai_law/check_conditions() for (var/i in GLOB.ai_list) var/mob/living/silicon/ai/aiPlayer = i diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index cdae0ea713..42904383bb 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -207,11 +207,14 @@ /obj/machinery/sleeper/ui_data() var/list/data = list() + var/chemical_list = list() + var/blood_percent = 0 + data["occupied"] = occupant ? 1 : 0 data["open"] = state_open - data["efficiency"] = efficiency - data["current_vol"] = reagents.total_volume - data["tot_capacity"] = reagents.maximum_volume + data["blood_levels"] = blood_percent + data["blood_status"] = "Patient either has no blood, or does not require it to function." + data["chemical_list"] = chemical_list data["chems"] = list() for(var/chem in available_chems) @@ -247,10 +250,13 @@ data["occupant"]["fireLoss"] = mob_occupant.getFireLoss() data["occupant"]["cloneLoss"] = mob_occupant.getCloneLoss() data["occupant"]["brainLoss"] = mob_occupant.getOrganLoss(ORGAN_SLOT_BRAIN) - data["occupant"]["reagents"] = list() - if(mob_occupant.reagents && mob_occupant.reagents.reagent_list.len) + + if(mob_occupant.reagents.reagent_list.len) for(var/datum/reagent/R in mob_occupant.reagents.reagent_list) - data["occupant"]["reagents"] += list(list("name" = R.name, "volume" = R.volume)) + chemical_list += list(list("name" = R.name, "volume" = R.volume)) + else + chemical_list = "Patient has no reagents." + data["occupant"]["failing_organs"] = list() var/mob/living/carbon/C = mob_occupant if(C) @@ -259,21 +265,25 @@ continue data["occupant"]["failing_organs"] += list(list("name" = Or.name)) - if(mob_occupant.has_dna()) // Blood-stuff is mostly a copy-paste from the healthscanner. - var/blood_id = C.get_blood_id() - if(blood_id) - data["occupant"]["blood"] = list() // We can start populating this list. - var/blood_type = C.dna.blood_type - if(!(blood_id in GLOB.blood_reagent_types)) // special blood substance - var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id] - if(R) - blood_type = R.name - else - blood_type = blood_id - data["occupant"]["blood"]["maxBloodVolume"] = (BLOOD_VOLUME_NORMAL*C.blood_ratio) - data["occupant"]["blood"]["currentBloodVolume"] = C.blood_volume - data["occupant"]["blood"]["dangerBloodVolume"] = BLOOD_VOLUME_SAFE - data["occupant"]["blood"]["bloodType"] = blood_type + if(istype(C)) //Non-carbons shouldn't be able to enter sleepers, but this is to prevent runtimes if something ever breaks + if(mob_occupant.has_dna()) // Blood-stuff is mostly a copy-paste from the healthscanner. + blood_percent = round((C.blood_volume / BLOOD_VOLUME_NORMAL)*100) + var/blood_id = C.get_blood_id() + var/blood_warning = "" + if(blood_percent < 80) + blood_warning = "Patient has low blood levels." + if(blood_percent < 60) + blood_warning = "Patient has DANGEROUSLY low blood levels." + if(blood_id) + var/blood_type = C.dna.blood_type + if(!(blood_id in GLOB.blood_reagent_types)) // special blood substance + var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id] + if(R) + blood_type = R.name + else + blood_type = blood_id + data["blood_status"] = "Patient has [blood_type] type blood. [blood_warning]" + data["blood_levels"] = blood_percent return data /obj/machinery/sleeper/ui_act(action, params) @@ -309,14 +319,14 @@ if(allowed(usr)) if(!is_operational()) return - reagents.remove_reagent(chem, 10) + reagents.remove_reagent(chem, 1000) return if(chem in available_chems) if(!is_operational()) return /*var/datum/reagent/R = reagents.has_reagent(chem) //For when purity effects are in if(R.purity < 0.8)*/ - reagents.remove_reagent(chem, 10) + reagents.remove_reagent(chem, 1000) else visible_message("Access Denied.") playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index c8b8e7c9cd..e386674b9e 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -381,14 +381,12 @@ for(var/obj/machinery/camera/C in oview(4, M)) if(C.can_use()) // check if camera disabled return C - break return null /proc/near_range_camera(var/mob/M) for(var/obj/machinery/camera/C in range(4, M)) if(C.can_use()) // check if camera disabled return C - break return null diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index b561224668..f78a05244e 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -55,7 +55,7 @@ /obj/item/stack/tile/fakespace/loaded = ARCADE_WEIGHT_TRICK, /obj/item/stack/tile/fakepit/loaded = ARCADE_WEIGHT_TRICK, /obj/item/restraints/handcuffs/fake = ARCADE_WEIGHT_TRICK, - /obj/item/clothing/gloves/rapid/hug = ARCADE_WEIGHT_TRICK, + /obj/item/clothing/gloves/fingerless/pugilist/rapid/hug = ARCADE_WEIGHT_TRICK, /obj/item/grenade/chem_grenade/glitter/pink = ARCADE_WEIGHT_TRICK, /obj/item/grenade/chem_grenade/glitter/blue = ARCADE_WEIGHT_TRICK, diff --git a/code/game/machinery/computer/arcade/minesweeper.dm b/code/game/machinery/computer/arcade/minesweeper.dm index 3e32c4ceeb..370f85b4b9 100644 --- a/code/game/machinery/computer/arcade/minesweeper.dm +++ b/code/game/machinery/computer/arcade/minesweeper.dm @@ -159,6 +159,8 @@ if(CHECK_BITFIELD(obj_flags, EMAGGED) && !exploding_hell) exploding_hell = TRUE explode_EVERYTHING() + if(QDELETED(src)) + return if(mine_sound) switch(rand(1,3)) //Play every time a mine is hit if(1) @@ -367,10 +369,10 @@ var/row_limit = rows-1 var/column_limit = columns-1 var/mine_limit_v2 = mine_limit - if(rows > 11) - row_limit = 10 - if(columns > 11) - column_limit = 10 + if(rows > 21) + row_limit = 20 + if(columns > 21) + column_limit = 20 if(mine_limit > (rows*columns) * 0.25) mine_limit_v2 = 24 message_admins("[key_name_admin(user)] failed an emagged Minesweeper arcade and has unleashed an explosion armageddon of size [row_limit],[column_limit] around [ADMIN_LOOKUPFLW(user.loc)]!") @@ -378,15 +380,38 @@ explosion(loc, 2, 5, 10, 15) //Thought you could survive by putting as few mines as possible, huh?? else explosion(loc, 1, 3, rand(1,5), rand(1,10)) - for(var/y69=y-row_limit;y69Message transmitted to Central Command.
    ") + for(var/client/X in GLOB.admins) + if(X.prefs.toggles & SOUND_ADMINHELP) + SEND_SOUND(X, sound('sound/effects/printer.ogg')) + window_flash(X, ignorepref = FALSE) usr.log_talk(input, LOG_SAY, tag="CentCom announcement") deadchat_broadcast("[usr.real_name] has messaged CentCom, \"[input]\" at [get_area_name(usr, TRUE)].", usr) CM.lastTimeUsed = world.time @@ -309,6 +313,10 @@ playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) Syndicate_announce(input, usr) to_chat(usr, "SYSERR @l(19833)of(transmit.dm): !@$ MESSAGE TRANSMITTED TO SYNDICATE COMMAND.") + for(var/client/X in GLOB.admins) + if(X.prefs.toggles & SOUND_ADMINHELP) + SEND_SOUND(X, sound('sound/effects/printer.ogg')) + window_flash(X, ignorepref = FALSE) usr.log_talk(input, LOG_SAY, tag="Syndicate announcement") deadchat_broadcast("[usr.real_name] has messaged the Syndicate, \"[input]\" at [get_area_name(usr, TRUE)].", usr) CM.lastTimeUsed = world.time diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index 0f5e51215d..d01f7e3e40 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -57,7 +57,7 @@ var/turf/target = locate(target_x, target_y, z) ghost.forceMove(target) -/obj/machinery/launchpad/proc/isAvailable() +/obj/machinery/launchpad/proc/isAvailable(silent = FALSE) if(stat & NOPOWER) return FALSE if(panel_open) @@ -198,7 +198,7 @@ QDEL_NULL(briefcase) return ..() -/obj/machinery/launchpad/briefcase/isAvailable() +/obj/machinery/launchpad/briefcase/isAvailable(silent = FALSE) if(closed) return FALSE return ..() diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index c05fbe229c..000585a4be 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -469,7 +469,6 @@ GLOBAL_LIST_EMPTY(allConsoles) if(newmessagepriority < EXTREME_MESSAGE_PRIORITY) newmessagepriority = EXTREME_MESSAGE_PRIORITY update_icon() - if(1) playsound(src, 'sound/machines/twobeep.ogg', 50, 1) say(title) messages += "!!!Extreme Priority!!!
    From: [linkedsender]
    [message]" diff --git a/code/game/machinery/telecomms/machines/broadcaster.dm b/code/game/machinery/telecomms/machines/broadcaster.dm index 6b03bcc880..d16835eee7 100644 --- a/code/game/machinery/telecomms/machines/broadcaster.dm +++ b/code/game/machinery/telecomms/machines/broadcaster.dm @@ -17,6 +17,11 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages idle_power_usage = 25 circuit = /obj/item/circuitboard/machine/telecomms/broadcaster +/obj/machinery/telecomms/broadcaster/RefreshParts() + idle_power_usage = 25 + for(var/obj/item/stock_parts/manipulator/P in component_parts) + idle_power_usage -= (P.rating * 1.5) //Has 2 manipulators + /obj/machinery/telecomms/broadcaster/receive_information(datum/signal/subspace/signal, obj/machinery/telecomms/machine_from) // Don't broadcast rejected signals if(!istype(signal)) diff --git a/code/game/machinery/telecomms/machines/bus.dm b/code/game/machinery/telecomms/machines/bus.dm index ce5ed31094..4732c5bddd 100644 --- a/code/game/machinery/telecomms/machines/bus.dm +++ b/code/game/machinery/telecomms/machines/bus.dm @@ -19,6 +19,11 @@ circuit = /obj/item/circuitboard/machine/telecomms/bus var/change_frequency = 0 +/obj/machinery/telecomms/bus/RefreshParts() + idle_power_usage = 50 + for(var/obj/item/stock_parts/manipulator/P in component_parts) + idle_power_usage -= (P.rating * 2) //Has 2 manipulators + /obj/machinery/telecomms/bus/receive_information(datum/signal/subspace/signal, obj/machinery/telecomms/machine_from) if(!istype(signal) || !is_freq_listening(signal)) return diff --git a/code/game/machinery/telecomms/machines/hub.dm b/code/game/machinery/telecomms/machines/hub.dm index e7e3788774..e960dab422 100644 --- a/code/game/machinery/telecomms/machines/hub.dm +++ b/code/game/machinery/telecomms/machines/hub.dm @@ -19,6 +19,11 @@ netspeed = 40 circuit = /obj/item/circuitboard/machine/telecomms/hub +/obj/machinery/telecomms/hub/RefreshParts() + idle_power_usage = 80 + for(var/obj/item/stock_parts/manipulator/P in component_parts) + idle_power_usage -= (P.rating * 5) //Has 2 manipulators + /obj/machinery/telecomms/hub/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) if(!is_freq_listening(signal)) return diff --git a/code/game/machinery/telecomms/machines/processor.dm b/code/game/machinery/telecomms/machines/processor.dm index a09b3ca8fb..269f5269f3 100644 --- a/code/game/machinery/telecomms/machines/processor.dm +++ b/code/game/machinery/telecomms/machines/processor.dm @@ -16,6 +16,11 @@ circuit = /obj/item/circuitboard/machine/telecomms/processor var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals +/obj/machinery/telecomms/processor/RefreshParts() + idle_power_usage = 30 + for(var/obj/item/stock_parts/manipulator/P in component_parts) + idle_power_usage -= (P.rating * 1.5) //Has 2 manipulators + /obj/machinery/telecomms/processor/receive_information(datum/signal/subspace/signal, obj/machinery/telecomms/machine_from) if(!is_freq_listening(signal)) return diff --git a/code/game/machinery/telecomms/machines/receiver.dm b/code/game/machinery/telecomms/machines/receiver.dm index 4dd3af036c..0e443bad8f 100644 --- a/code/game/machinery/telecomms/machines/receiver.dm +++ b/code/game/machinery/telecomms/machines/receiver.dm @@ -15,6 +15,11 @@ idle_power_usage = 30 circuit = /obj/item/circuitboard/machine/telecomms/receiver +/obj/machinery/telecomms/receiver/RefreshParts() + idle_power_usage = 30 + for(var/obj/item/stock_parts/manipulator/P in component_parts) + idle_power_usage -= (P.rating * 1.5) //Has 2 manipulators + /obj/machinery/telecomms/receiver/receive_signal(datum/signal/subspace/signal) if(!on || !istype(signal) || !check_receive_level(signal) || signal.transmission_method != TRANSMISSION_SUBSPACE) return diff --git a/code/game/machinery/telecomms/machines/relay.dm b/code/game/machinery/telecomms/machines/relay.dm index 65f70a4f23..10328f0788 100644 --- a/code/game/machinery/telecomms/machines/relay.dm +++ b/code/game/machinery/telecomms/machines/relay.dm @@ -19,6 +19,11 @@ var/broadcasting = 1 var/receiving = 1 +/obj/machinery/telecomms/relay/RefreshParts() + idle_power_usage = 30 + for(var/obj/item/stock_parts/manipulator/P in component_parts) + idle_power_usage -= (P.rating * 1.5) //Has 2 manipulators + /obj/machinery/telecomms/relay/receive_information(datum/signal/subspace/signal, obj/machinery/telecomms/machine_from) // Add our level and send it back var/turf/T = get_turf(src) diff --git a/code/game/machinery/telecomms/machines/server.dm b/code/game/machinery/telecomms/machines/server.dm index 46b16252c5..ad4599b4c3 100644 --- a/code/game/machinery/telecomms/machines/server.dm +++ b/code/game/machinery/telecomms/machines/server.dm @@ -19,6 +19,11 @@ /obj/machinery/telecomms/server/Initialize() . = ..() +/obj/machinery/telecomms/server/RefreshParts() + idle_power_usage = 15 + for(var/obj/item/stock_parts/manipulator/P in component_parts) + idle_power_usage -= (P.rating) //has 2 manipulators + /obj/machinery/telecomms/server/receive_information(datum/signal/subspace/vocal/signal, obj/machinery/telecomms/machine_from) // can't log non-vocal signals if(!istype(signal) || !signal.data["message"] || !is_freq_listening(signal)) diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index ff5ba14810..26220d4d89 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -1,3 +1,111 @@ +//dye registry, add dye colors and their resulting output here if you want the sprite to change instead of just the color. +GLOBAL_LIST_INIT(dye_registry, list( + DYE_REGISTRY_UNDER = list( + DYE_RED = /obj/item/clothing/under/color/red, + DYE_ORANGE = /obj/item/clothing/under/color/orange, + DYE_YELLOW = /obj/item/clothing/under/color/yellow, + DYE_GREEN = /obj/item/clothing/under/color/green, + DYE_BLUE = /obj/item/clothing/under/color/blue, + DYE_PURPLE = /obj/item/clothing/under/color/lightpurple, + DYE_BLACK = /obj/item/clothing/under/color/black, + DYE_WHITE = /obj/item/clothing/under/color/white, + DYE_RAINBOW = /obj/item/clothing/under/color/rainbow, + DYE_MIME = /obj/item/clothing/under/rank/civilian/mime, + DYE_CLOWN = /obj/item/clothing/under/rank/civilian/clown, + DYE_QM = /obj/item/clothing/under/rank/cargo/qm, + DYE_LAW = /obj/item/clothing/under/suit/black, + DYE_CAPTAIN = /obj/item/clothing/under/rank/captain, + DYE_HOP = /obj/item/clothing/under/rank/civilian/head_of_personnel, + DYE_HOS = /obj/item/clothing/under/rank/security/head_of_security, + DYE_CE = /obj/item/clothing/under/rank/engineering/chief_engineer, + DYE_RD = /obj/item/clothing/under/rank/rnd/research_director, + DYE_CMO = /obj/item/clothing/under/rank/medical/chief_medical_officer, + DYE_REDCOAT = /obj/item/clothing/under/costume/redcoat + ), + DYE_REGISTRY_JUMPSKIRT = list( + DYE_RED = /obj/item/clothing/under/color/jumpskirt/red, + DYE_ORANGE = /obj/item/clothing/under/color/jumpskirt/orange, + DYE_YELLOW = /obj/item/clothing/under/color/jumpskirt/yellow, + DYE_GREEN = /obj/item/clothing/under/color/jumpskirt/green, + DYE_BLUE = /obj/item/clothing/under/color/jumpskirt/blue, + DYE_PURPLE = /obj/item/clothing/under/color/jumpskirt/lightpurple, + DYE_BLACK = /obj/item/clothing/under/color/jumpskirt/black, + DYE_WHITE = /obj/item/clothing/under/color/jumpskirt/white, + DYE_RAINBOW = /obj/item/clothing/under/color/jumpskirt/rainbow + ), + DYE_REGISTRY_GLOVES = list( + DYE_RED = /obj/item/clothing/gloves/color/red, + DYE_ORANGE = /obj/item/clothing/gloves/color/orange, + DYE_YELLOW = /obj/item/clothing/gloves/color/yellow, + DYE_GREEN = /obj/item/clothing/gloves/color/green, + DYE_BLUE = /obj/item/clothing/gloves/color/blue, + DYE_PURPLE = /obj/item/clothing/gloves/color/purple, + DYE_BLACK = /obj/item/clothing/gloves/color/black, + DYE_WHITE = /obj/item/clothing/gloves/color/white, + DYE_RAINBOW = /obj/item/clothing/gloves/color/rainbow, + DYE_MIME = /obj/item/clothing/gloves/color/white, + DYE_CLOWN = /obj/item/clothing/gloves/color/rainbow, + DYE_QM = /obj/item/clothing/gloves/color/brown, + DYE_CAPTAIN = /obj/item/clothing/gloves/color/captain, + DYE_HOP = /obj/item/clothing/gloves/color/grey, + DYE_HOS = /obj/item/clothing/gloves/color/black, + DYE_CE = /obj/item/clothing/gloves/color/black, + DYE_RD = /obj/item/clothing/gloves/color/grey, + DYE_CMO = /obj/item/clothing/gloves/color/latex/nitrile, + DYE_REDCOAT = /obj/item/clothing/gloves/color/white + ), + DYE_REGISTRY_SNEAKERS = list( + DYE_RED = /obj/item/clothing/shoes/sneakers/red, + DYE_ORANGE = /obj/item/clothing/shoes/sneakers/orange, + DYE_YELLOW = /obj/item/clothing/shoes/sneakers/yellow, + DYE_GREEN = /obj/item/clothing/shoes/sneakers/green, + DYE_BLUE = /obj/item/clothing/shoes/sneakers/blue, + DYE_PURPLE = /obj/item/clothing/shoes/sneakers/purple, + DYE_BLACK = /obj/item/clothing/shoes/sneakers/black, + DYE_WHITE = /obj/item/clothing/shoes/sneakers/white, + DYE_RAINBOW = /obj/item/clothing/shoes/sneakers/rainbow, + DYE_MIME = /obj/item/clothing/shoes/sneakers/black, + DYE_QM = /obj/item/clothing/shoes/sneakers/brown, + DYE_CAPTAIN = /obj/item/clothing/shoes/sneakers/brown, + DYE_HOP = /obj/item/clothing/shoes/sneakers/brown, + DYE_CE = /obj/item/clothing/shoes/sneakers/brown, + DYE_RD = /obj/item/clothing/shoes/sneakers/brown, + DYE_CMO = /obj/item/clothing/shoes/sneakers/brown + ), + DYE_REGISTRY_FANNYPACK = list( + DYE_RED = /obj/item/storage/belt/fannypack/red, + DYE_ORANGE = /obj/item/storage/belt/fannypack/orange, + DYE_YELLOW = /obj/item/storage/belt/fannypack/yellow, + DYE_GREEN = /obj/item/storage/belt/fannypack/green, + DYE_BLUE = /obj/item/storage/belt/fannypack/blue, + DYE_PURPLE = /obj/item/storage/belt/fannypack/purple, + DYE_BLACK = /obj/item/storage/belt/fannypack/black, + DYE_WHITE = /obj/item/storage/belt/fannypack/white + ), + DYE_REGISTRY_BEDSHEET = list( + DYE_RED = /obj/item/bedsheet/red, + DYE_ORANGE = /obj/item/bedsheet/orange, + DYE_YELLOW = /obj/item/bedsheet/yellow, + DYE_GREEN = /obj/item/bedsheet/green, + DYE_BLUE = /obj/item/bedsheet/blue, + DYE_PURPLE = /obj/item/bedsheet/purple, + DYE_BLACK = /obj/item/bedsheet/black, + DYE_WHITE = /obj/item/bedsheet, + DYE_RAINBOW = /obj/item/bedsheet/rainbow, + DYE_MIME = /obj/item/bedsheet/mime, + DYE_CLOWN = /obj/item/bedsheet/clown, + DYE_QM = /obj/item/bedsheet/qm, + DYE_LAW = /obj/item/bedsheet/black, + DYE_CAPTAIN = /obj/item/bedsheet/captain, + DYE_HOP = /obj/item/bedsheet/hop, + DYE_HOS = /obj/item/bedsheet/hos, + DYE_CE = /obj/item/bedsheet/ce, + DYE_RD = /obj/item/bedsheet/rd, + DYE_CMO = /obj/item/bedsheet/cmo, + DYE_COSMIC = /obj/item/bedsheet/cosmos + ) +)) + /obj/machinery/washing_machine name = "washing machine" desc = "Gets rid of those pesky bloodstains, or your money back!" @@ -13,27 +121,22 @@ /obj/machinery/washing_machine/examine(mob/user) . = ..() - . += "Alt-click it to start a wash cycle." + if(!busy) + . += "Alt-click it to start a wash cycle." /obj/machinery/washing_machine/AltClick(mob/user) . = ..() if(!user.canUseTopic(src)) return - if(busy) return - if(state_open) to_chat(user, "Close the door first") return TRUE - if(bloody_mess) to_chat(user, "[src] must be cleaned up first.") return TRUE - if(has_corgi) - bloody_mess = 1 - busy = TRUE update_icon() addtimer(CALLBACK(src, .proc/wash_cycle), 200) @@ -76,6 +179,28 @@ color_source = null update_icon() +/obj/item/proc/dye_item(dye_color) + if(undyeable) + return FALSE + if(dying_key) + if(!GLOB.dye_registry[dying_key]) + log_runtime("Item just tried to be dyed with an invalid registry key: [dying_key]") + return FALSE + var/obj/item/target_type = GLOB.dye_registry[dying_key][dye_color] + if(target_type) + icon = initial(target_type.icon) + icon_state = initial(target_type.icon_state) + lefthand_file = initial(target_type.lefthand_file) + righthand_file = initial(target_type.righthand_file) + item_state = initial(target_type.item_state) + mob_overlay_icon = initial(target_type.mob_overlay_icon) + inhand_x_dimension = initial(target_type.inhand_x_dimension) + inhand_y_dimension = initial(target_type.inhand_y_dimension) + name = initial(target_type.name) + desc = "[initial(target_type.desc)] The colors look a little dodgy." + return target_type //successfully "appearance copy" dyed something; returns the target type as a hacky way of extending + add_atom_colour(dye_color, FIXED_COLOUR_PRIORITY) + return FALSE //what happens to this object when washed inside a washing machine /atom/movable/proc/machine_wash(obj/machinery/washing_machine/WM) @@ -89,105 +214,27 @@ new /obj/item/reagent_containers/food/snacks/meat/slab/corgi(loc) qdel(src) -/obj/item/paper/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - if(istype(WM.color_source, /obj/item/toy/crayon)) - var/obj/item/toy/crayon/CR = WM.color_source - add_atom_colour(CR.paint_color, WASHABLE_COLOUR_PRIORITY) - -/obj/item/reagents_containers/rag/towel/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - if(istype(WM.color_source, /obj/item/toy/crayon)) - var/obj/item/toy/crayon/CR = WM.color_source - add_atom_colour(CR.paint_color, WASHABLE_COLOUR_PRIORITY) - /mob/living/simple_animal/pet/dog/corgi/machine_wash(obj/machinery/washing_machine/WM) gib() -/obj/item/clothing/under/color/machine_wash(obj/machinery/washing_machine/WM) - jumpsuit_wash(WM) - -/obj/item/clothing/under/rank/machine_wash(obj/machinery/washing_machine/WM) - jumpsuit_wash(WM) - -/obj/item/clothing/under/proc/jumpsuit_wash(obj/machinery/washing_machine/WM) +/obj/item/machine_wash(obj/machinery/washing_machine/WM) if(WM.color_source) - var/wash_color = WM.color_source.item_color - var/obj/item/clothing/under/U - for(var/T in typesof(/obj/item/clothing/under/color)) - var/obj/item/clothing/under/color/J = T - if(wash_color == initial(J.item_color)) - U = J - break - if(!U) - for(var/T in typesof(/obj/item/clothing/under/rank)) - var/obj/item/clothing/under/rank/R = T - if(wash_color == initial(R.item_color)) - U = R - break - if(U) - item_state = initial(U.item_state) - icon_state = initial(U.icon_state) - item_color = wash_color - name = initial(U.name) - desc = "The colors are a bit dodgy." - can_adjust = initial(U.can_adjust) - if(!can_adjust && adjusted) //we deadjust the uniform if it's now unadjustable - toggle_jumpsuit_adjust() + dye_item(WM.color_source.dye_color) -/obj/item/clothing/gloves/color/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/clothing/gloves/color)) - var/obj/item/clothing/gloves/color/G = T - if(wash_color == initial(G.item_color)) - item_state = initial(G.item_state) - icon_state = initial(G.icon_state) - item_color = wash_color - name = initial(G.name) - desc = "The colors are a bit dodgy." - break +/obj/item/clothing/under/dye_item(dye_color, dye_key) + . = ..() + if(.) + var/obj/item/clothing/under/U = . + can_adjust = initial(U.can_adjust) + if(!can_adjust && adjusted) //we deadjust the uniform if it's now unadjustable + toggle_jumpsuit_adjust() /obj/item/clothing/shoes/sneakers/machine_wash(obj/machinery/washing_machine/WM) if(chained) chained = 0 slowdown = SHOES_SLOWDOWN new /obj/item/restraints/handcuffs(loc) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/clothing/shoes/sneakers)) - var/obj/item/clothing/shoes/sneakers/S = T - if(wash_color == initial(S.item_color)) - icon_state = initial(S.icon_state) - item_color = wash_color - name = initial(S.name) - desc = "The colors are a bit dodgy." - break - -/obj/item/bedsheet/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/bedsheet)) - var/obj/item/bedsheet/B = T - if(wash_color == initial(B.item_color)) - icon_state = initial(B.icon_state) - item_color = wash_color - name = initial(B.name) - desc = "The colors are a bit dodgy." - break - -/obj/item/clothing/head/soft/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/clothing/head/soft)) - var/obj/item/clothing/head/soft/H = T - if(wash_color == initial(H.item_color)) - icon_state = initial(H.icon_state) - item_color = wash_color - name = initial(H.name) - desc = "The colors are a bit dodgy." - break - + ..() /obj/machinery/washing_machine/relaymove(mob/user) container_resist(user) @@ -223,27 +270,27 @@ if(istype(W, /obj/item/clothing/head/mob_holder)) to_chat(user, "It's too unwieldly to put in this way.") - return 1 + return TRUE else if(user.a_intent != INTENT_HARM) if (!state_open) to_chat(user, "Open the door first!") - return 1 + return TRUE if(bloody_mess) to_chat(user, "[src] must be cleaned up first.") - return 1 + return TRUE if(contents.len >= max_wash_capacity) to_chat(user, "The washing machine is full!") - return 1 + return TRUE if(!user.transferItemToLoc(W, src)) to_chat(user, "\The [W] is stuck to your hand, you cannot put it in the washing machine!") - return 1 + return TRUE - if(istype(W, /obj/item/toy/crayon) || istype(W, /obj/item/stamp)) + if(W.dye_color) color_source = W update_icon() diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 48cf0b4a8b..6b61eb2ebd 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -384,8 +384,8 @@ desc = "The POWER that gamers CRAVE! In partnership with Vlad's Salad." icon_state = "poster39" -/obj/structure/sign/poster/contraband/sun_kist - name = "Sun-kist" +/obj/structure/sign/poster/contraband/starkist + name = "Star-kist" desc = "Drink the stars!" icon_state = "poster40" diff --git a/code/game/objects/effects/decals/vgdecals.dm b/code/game/objects/effects/decals/vgdecals.dm new file mode 100644 index 0000000000..93db0075c8 --- /dev/null +++ b/code/game/objects/effects/decals/vgdecals.dm @@ -0,0 +1,119 @@ +// Full credit goes to VG station for these assets. https://github.com/vgstation-coders/vgstation13 +// All items in this .dm and the associated .dmi were made by VG station and all credit should go to them. + +// -<| IMPORTANT MAPPER NOTE |>- +// Change the 'color' variable on any white sprite to simply recolour it! + +/obj/effect/turf_decal/vg_decals + icon = 'icons/turf/vgstation_decals.dmi' + icon_state = "no" + +// NUMBERS START + +/obj/effect/turf_decal/vg_decals/numbers + icon_state = "no" + +/obj/effect/turf_decal/vg_decals/numbers/one + icon_state = "1" + +/obj/effect/turf_decal/vg_decals/numbers/two + icon_state = "2" + +/obj/effect/turf_decal/vg_decals/numbers/three + icon_state = "3" + +/obj/effect/turf_decal/vg_decals/numbers/four + icon_state = "4" + +/obj/effect/turf_decal/vg_decals/numbers/five + icon_state = "5" + +/obj/effect/turf_decal/vg_decals/numbers/six + icon_state = "6" + +/obj/effect/turf_decal/vg_decals/numbers/seven + icon_state = "7" + +/obj/effect/turf_decal/vg_decals/numbers/eight + icon_state = "8" + +/obj/effect/turf_decal/vg_decals/numbers/nine + icon_state = "9" + +/obj/effect/turf_decal/vg_decals/numbers/zero + icon_state = "0" + +// NUMBERS END + +// ATMOS START + +/obj/effect/turf_decal/vg_decals/atmos + icon_state = "no" + +/obj/effect/turf_decal/vg_decals/atmos/oxygen + icon_state = "oxygen" + +/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide + icon_state = "carbon_dioxide" + +/obj/effect/turf_decal/vg_decals/atmos/nitrogen + icon_state = "nitrogen" + +/obj/effect/turf_decal/vg_decals/atmos/air + icon_state = "air" + +/obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide + icon_state = "nitrous_oxide" + +/obj/effect/turf_decal/vg_decals/atmos/plasma + icon_state = "plasma" + +/obj/effect/turf_decal/vg_decals/atmos/mix + icon_state = "mix" + +// ATMOS END + +// DEPARTMENT START + +/obj/effect/turf_decal/vg_decals/department/hop + icon_state = "hop" + +/obj/effect/turf_decal/vg_decals/department/bar + icon_state = "bar" + +/obj/effect/turf_decal/vg_decals/department/cargo + icon_state = "cargo" + +/obj/effect/turf_decal/vg_decals/department/med + icon_state = "med" + +/obj/effect/turf_decal/vg_decals/department/sci + icon_state = "sci" + +/obj/effect/turf_decal/vg_decals/department/sec + icon_state = "sec" + +/obj/effect/turf_decal/vg_decals/department/mining + icon_state = "mine" + +/obj/effect/turf_decal/vg_decals/department/zoo + icon_state = "zoo" + +// DEPARTMENT END + +// MISC START + +/obj/effect/turf_decal/vg_decals/no + icon = 'icons/turf/vgstation_decals.dmi' + icon_state = "no" + +/obj/effect/turf_decal/vg_decals/radiation_huge + icon_state = "radiation_huge" + +/obj/effect/turf_decal/vg_decals/radiation + icon_state = "radiation" + +/obj/effect/turf_decal/vg_decals/radiation_custom + icon_state = "radiation-w" + +// MISC END diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 71c394a404..d79fba7172 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -45,7 +45,6 @@ /obj/effect/spawner/lootdrop/armory_contraband name = "armory contraband gun spawner" lootdoubles = FALSE - loot = list( /obj/item/gun/ballistic/automatic/pistol = 8, /obj/item/gun/ballistic/shotgun/automatic/combat = 5, @@ -129,7 +128,6 @@ loot = typesof(/obj/item/flashlight/glowstick) . = ..() - /obj/effect/spawner/lootdrop/gloves name = "random gloves" desc = "These gloves are supposed to be a random color..." @@ -150,7 +148,6 @@ /obj/effect/spawner/lootdrop/crate_spawner name = "lootcrate spawner" //USE PROMO CODE "SELLOUT" FOR 20% OFF! lootdoubles = FALSE - loot = list( /obj/structure/closet/crate/secure/loot = 20, "" = 80 @@ -386,3 +383,141 @@ /obj/structure/reagent_dispensers/keg/aphro = 2, /obj/structure/reagent_dispensers/keg/aphro/strong = 2, /obj/structure/reagent_dispensers/keg/gargle = 1) + +/obj/effect/spawner/lootdrop/coin + lootcount = 1 + loot = list( + /obj/item/coin/silver = 30, + /obj/item/coin/iron = 30, + /obj/item/coin/gold = 10, + /obj/item/coin/diamond = 10, + /obj/item/coin/plasma = 10, + /obj/item/coin/uranium = 10, + ) + +/obj/effect/spawner/lootdrop/cig_packs + lootcount = 1 + loot = list( + /obj/item/storage/fancy/cigarettes = 20, + /obj/item/storage/fancy/cigarettes/dromedaryco = 10, + /obj/item/storage/fancy/cigarettes/cigpack_robust = 5, + /obj/item/storage/fancy/cigarettes/cigpack_robustgold = 5, + /obj/item/storage/fancy/cigarettes/cigpack_carp = 15, + /obj/item/storage/fancy/cigarettes/cigpack_syndicate = 2, + /obj/item/storage/fancy/cigarettes/cigpack_midori = 10, + /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 5, + /obj/item/storage/fancy/cigarettes/cigpack_xeno = 3, + /obj/item/storage/fancy/cigarettes/cigpack_cannabis = 10, + /obj/item/storage/fancy/cigarettes/cigpack_mindbreaker = 10, + /obj/item/storage/fancy/rollingpapers = 10 + ) + +/obj/effect/spawner/lootdrop/cigars_cases + lootcount = 1 + loot = list( + /obj/item/storage/fancy/cigarettes/cigars = 50, + /obj/item/storage/fancy/cigarettes/cigars/cohiba = 25, + /obj/item/storage/fancy/cigarettes/cigars/havana = 25, + ) + +/obj/effect/spawner/lootdrop/space_cash + lootcount = 1 + loot = list( + /obj/item/stack/spacecash/c1 = 1, + /obj/item/stack/spacecash/c10 = 9, + /obj/item/stack/spacecash/c20 = 10, + /obj/item/stack/spacecash/c50 = 15, + /obj/item/stack/spacecash/c100 = 25, + /obj/item/stack/spacecash/c200 = 20, + /obj/item/stack/spacecash/c500 = 19, + /obj/item/stack/spacecash/c1000 = 1, + ) + +/obj/effect/spawner/lootdrop/druggie_pill + lootcount = 1 + loot = list( + /obj/item/reagent_containers/pill/stimulant = 1, + /obj/item/reagent_containers/pill/zoom = 9, + /obj/item/reagent_containers/pill/happy = 10, + /obj/item/reagent_containers/pill/lsd = 15, + /obj/item/reagent_containers/pill/aranesp = 25, + /obj/item/reagent_containers/pill/psicodine = 20, + /obj/item/reagent_containers/pill/mannitol = 19, + /obj/item/reagent_containers/pill/happiness = 1, + ) + +/obj/effect/spawner/lootdrop/low_loot_toilet + name = "random low toilet spawner" + lootcount = 1 +//Note this is out of a 100 - Meaning the number you see is also the percent its going to pick that +//This is ment for "low" loot that anyone could fine in a toilet, for better gear use high loot toilet + loot = list("" = 30, + /obj/item/lighter = 2, + /obj/item/tape/random = 1, + /obj/item/poster/random_contraband = 1, + /obj/item/clothing/glasses/sunglasses/blindfold = 4, + /obj/item/clothing/glasses/sunglasses = 1, + /obj/item/toy/plush/random = 5, + /obj/effect/spawner/lootdrop/gloves = 5, + /obj/effect/spawner/lootdrop/glowstick = 5, + /obj/effect/spawner/lootdrop/coin = 3, + /obj/effect/spawner/lootdrop/cig_packs = 10, + /obj/effect/spawner/lootdrop/cigars_cases = 2, + /obj/effect/spawner/lootdrop/space_cash = 5, + /obj/item/reagent_containers/food/snacks/grown/cannabis = 5, + /obj/item/storage/pill_bottle/dice = 5, + /obj/item/toy/cards/deck = 5, + /obj/effect/spawner/lootdrop/druggie_pill = 5 + ) + +/obj/effect/spawner/lootdrop/prison_loot_toilet + name = "random prison toilet spawner" + lootcount = 1 +//Note this is out of a 100 - Meaning the number you see is also the percent its going to pick that +//This is ment for "prison" loot that is rather rare and ment for "prisoners if they get a crowbar to fine, or sec. + loot = list("" = 10, + /obj/item/lighter = 5, + /obj/item/poster/random_contraband = 5, + /obj/item/clothing/glasses/sunglasses = 5, + /obj/effect/spawner/lootdrop/coin = 5, + /obj/effect/spawner/lootdrop/cig_packs = 10, + /obj/effect/spawner/lootdrop/cigars_cases = 5, + /obj/item/reagent_containers/food/snacks/grown/cannabis = 5, + /obj/item/storage/pill_bottle/dice = 5, + /obj/item/toy/cards/deck = 5, + /obj/effect/spawner/lootdrop/druggie_pill = 5, + /obj/item/kitchen/knife = 5, + /obj/item/screwdriver = 5, + /obj/item/crowbar/red = 0.5, //Dont you need a crowbar to open this? + /obj/item/stack/medical/bruise_pack = 3, + /obj/item/reagent_containers/food/drinks/bottle/vodka = 2, + /obj/item/radio = 5, + /obj/item/flashlight = 4.5, + /obj/item/clothing/mask/breath = 2, + /obj/item/tank/internals/emergency_oxygen = 3, + /obj/item/storage/box/mre/menu4/safe = 3, + /obj/item/grenade/smokebomb = 2 + ) + +/obj/effect/spawner/lootdrop/high_loot_toilet + name = "random high toilet spawner" + lootcount = 1 +//Note this is out of a 100 - Meaning the number you see is also the percent its going to pick that +//The items inside are always going to be something usefull, illegal and likely traitorous. + loot = list( + /obj/item/clothing/glasses/sunglasses = 5, + /obj/effect/spawner/lootdrop/coin = 5, + /obj/effect/spawner/lootdrop/space_cash = 5, + /obj/effect/spawner/lootdrop/druggie_pill = 5, + /obj/item/storage/fancy/cigarettes/cigpack_syndicate = 5, + /obj/item/suppressor = 5, + /obj/item/toy/cards/deck/syndicate = 5, + /obj/item/clothing/under/syndicate = 5, + /obj/item/clothing/mask/gas/syndicate = 5, + /obj/item/grenade/smokebomb = 10, + /obj/item/gun/ballistic/automatic/toy/pistol = 5, + /obj/item/firing_pin = 5, + /obj/item/grenade/empgrenade = 15, + /obj/item/clothing/gloves/combat = 10, + /obj/item/clothing/shoes/sneakers/noslip = 10 + ) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 222b82d134..271bb7a385 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -8,9 +8,20 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) name = "item" icon = 'icons/obj/items_and_weapons.dmi' blocks_emissive = EMISSIVE_BLOCK_GENERIC + + ///icon state name for inhand overlays var/item_state = null + ///Icon file for left hand inhand overlays var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + ///Icon file for right inhand overlays var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' + + ///Icon file for mob worn overlays. + ///no var for state because it should *always* be the same as icon_state + var/icon/mob_overlay_icon + //Forced mob worn layer instead of the standard preferred ssize. + var/alternate_worn_layer + var/list/alternate_screams = list() //REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE //Dimensions of the icon file used when this item is worn, eg: hats.dmi @@ -22,10 +33,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/inhand_x_dimension = 32 var/inhand_y_dimension = 32 - //Not on /clothing because for some reason any /obj/item can technically be "worn" with enough fuckery. - var/icon/alternate_worn_icon = null//If this is set, update_icons() will find on mob (WORN, NOT INHANDS) states in this file instead, primary use: badminnery/events - var/alternate_worn_layer = null//If this is set, update_icons() will force the on mob state (WORN, NOT INHANDS) onto this layer, instead of it's default - max_integrity = 200 obj_flags = NONE @@ -61,8 +68,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) //Citadel Edit for digitigrade stuff var/mutantrace_variation = NONE //Are there special sprites for specific situations? Don't use this unless you need to. - var/item_color = null //this needs deprecating, soonish - var/body_parts_covered = 0 //see setup.dm for appropriate bit flags var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) var/permeability_coefficient = 1 // for chemicals/diseases @@ -93,8 +98,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/tool_behaviour = NONE var/toolspeed = 1 - var/block_chance = 0 - var/hit_reaction_chance = 0 //If you want to have something unrelated to blocking/armour piercing etc. Maybe not needed, but trying to think ahead/allow more freedom var/reach = 1 //In tiles, how far this weapon can reach; 1 for adjacent, which is default //The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. @@ -111,6 +114,13 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/trigger_guard = TRIGGER_GUARD_NONE + ///Used as the dye color source in the washing machine only (at the moment). Can be a hex color or a key corresponding to a registry entry, see washing_machine.dm + var/dye_color + ///Whether the item is unaffected by standard dying. + var/undyeable = FALSE + ///What dye registry should be looked at when dying this item; see washing_machine.dm + var/dying_key + //Grinder vars var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only var/list/juice_results //A reagent list containing blah blah... but when JUICED in a grinder! @@ -365,13 +375,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) // afterattack() and attack() prototypes moved to _onclick/item_attack.dm for consistency -/obj/item/proc/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - SEND_SIGNAL(src, COMSIG_ITEM_HIT_REACT, args) - if(prob(final_block_chance)) - owner.visible_message("[owner] blocks [attack_text] with [src]!") - return 1 - return 0 - /obj/item/proc/talk_into(mob/M, input, channel, spans, datum/language/language) return ITALICS | REDUCE_RANGE @@ -431,6 +434,13 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) item_flags |= IN_INVENTORY user.update_equipment_speed_mods() +//Overlays for the worn overlay so you can overlay while you overlay +//eg: ammo counters, primed grenade flashing, etc. +//"icon_file" is used automatically for inhands etc. to make sure it gets the right inhand file +/obj/item/proc/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) + . = list() + SEND_SIGNAL(src, COMSIG_ITEM_WORN_OVERLAYS, isinhands, icon_file, used_state, style_flags, .) + //sometimes we only want to grant the item's action if it's equipped in a specific slot. /obj/item/proc/item_action_slot_check(slot, mob/user, datum/action/A) if(slot == SLOT_IN_BACKPACK || slot == SLOT_LEGCUFFED) //these aren't true slots, so avoid granting actions there @@ -464,9 +474,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /obj/item/proc/ui_action_click(mob/user, actiontype) attack_self(user) -/obj/item/proc/IsReflect(var/def_zone) //This proc determines if and at what% an object will reflect energy projectiles if it's in l_hand,r_hand or wear_suit - return 0 - /obj/item/proc/eyestab(mob/living/carbon/M, mob/living/carbon/user) if(HAS_TRAIT(user, TRAIT_PACIFISM)) to_chat(user, "You don't want to harm [M]!") diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index 72e6ccbbe2..f3ea461c74 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -113,7 +113,7 @@ cable_overlay.color = GLOB.cable_colors[colors[current_color_index]] . += cable_overlay -/obj/item/twohanded/rcl/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/twohanded/rcl/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands || !(loaded?.amount)) return @@ -201,7 +201,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) return //If we've run out, display message and exit else last = null - loaded.item_color = colors[current_color_index] + loaded.color = colors[current_color_index] last = loaded.place_turf(get_turf(src), user, turn(user.dir, 180)) is_empty(user) //If we've run out, display message update_icon() @@ -223,7 +223,6 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) continue if(C.d1 == 0) return C - break return @@ -277,7 +276,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) if(T.intact || !T.can_have_cabling()) return - loaded.item_color = colors[current_color_index] + loaded.color = colors[current_color_index] var/obj/structure/cable/linkingCable = findLinkingCable(user) if(linkingCable) @@ -299,7 +298,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) var/cwname = colors[current_color_index] to_chat(user, "Color changed to [cwname]!") if(loaded) - loaded.item_color= colors[current_color_index] + loaded.color = colors[current_color_index] update_icon() if(wiring_gui_menu) wiringGuiUpdate(user) diff --git a/code/game/objects/items/balls.dm b/code/game/objects/items/balls.dm index c24f58208b..2e5a385ead 100644 --- a/code/game/objects/items/balls.dm +++ b/code/game/objects/items/balls.dm @@ -15,7 +15,7 @@ lefthand_file = 'modular_citadel/icons/mob/inhands/balls_left.dmi' righthand_file = 'modular_citadel/icons/mob/inhands/balls_right.dmi' item_state = "tennis_classic" - alternate_worn_icon = 'modular_citadel/icons/mob/mouthball.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/mouthball.dmi' slot_flags = ITEM_SLOT_HEAD | ITEM_SLOT_NECK | ITEM_SLOT_EARS //Fluff item, put it wherever you want! throw_range = 14 w_class = WEIGHT_CLASS_SMALL diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index e93bfb9976..dbc66b1899 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -38,7 +38,6 @@ /obj/item/bodybag/bluespace name = "bluespace body bag" desc = "A folded bluespace body bag designed for the storage and transportation of cadavers." - icon = 'icons/obj/bodybag.dmi' icon_state = "bluebodybag_folded" unfoldedbag_path = /obj/structure/closet/body_bag/bluespace w_class = WEIGHT_CLASS_SMALL @@ -81,3 +80,13 @@ return loc.visible_message("[user] suddenly appears in front of [loc]!", "[user] breaks free of [src]!") qdel(src) + +// Containment bodybag + +/obj/item/bodybag/containment + name = "radiation containment body bag" + desc = "A folded heavy body bag designed for the storage and transportation of heavily irradiated cadavers." + icon_state = "radbodybag_folded" + unfoldedbag_path = /obj/structure/closet/body_bag/containment + w_class = WEIGHT_CLASS_NORMAL + rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index 11ab008c41..a3366e714e 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -13,6 +13,7 @@ var/lit = FALSE var/infinite = FALSE var/start_lit = FALSE + var/heats_space = TRUE /obj/item/candle/Initialize() . = ..() @@ -35,7 +36,7 @@ return ..() /obj/item/candle/get_temperature() - return lit * heat + return lit * heat * heats_space /obj/item/candle/proc/light(show_message) if(!lit) @@ -67,7 +68,8 @@ new /obj/item/trash/candle(loc) qdel(src) update_icon() - open_flame() + if(heats_space) + open_flame() /obj/item/candle/attack_self(mob/user) if(put_out_candle()) @@ -77,4 +79,7 @@ infinite = TRUE start_lit = TRUE +/obj/item/candle/infinite/hugbox + heats_space = FALSE + #undef CANDLE_LUMINOSITY diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 5b7c70b1b6..2303278f5c 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -706,11 +706,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM name = "\improper E-Cigarette" desc = "A classy and highly sophisticated electronic cigarette, for classy and dignified gentlemen. A warning label reads \"Warning: Do not fill with flammable materials.\""//<<< i'd vape to that. icon = 'icons/obj/clothing/masks.dmi' - icon_state = null - item_state = null + icon_state = "black_vape" + item_state = "black_vape" w_class = WEIGHT_CLASS_TINY var/chem_volume = 100 - var/vapetime = FALSE //this so it won't puff out clouds every tick + var/vapetime = FALSE //this so it won't puff out clouds every tick var/screw = FALSE // kinky var/super = FALSE //for the fattest vapes dude. @@ -723,11 +723,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM . = ..() create_reagents(chem_volume, NO_REACT, NO_REAGENTS_VALUE) // so it doesn't react until you light it reagents.add_reagent(/datum/reagent/drug/nicotine, 50) - if(!icon_state) - if(!param_color) - param_color = pick("red","blue","black","white","green","purple","yellow","orange") - icon_state = "[param_color]_vape" - item_state = "[param_color]_vape" + if(!param_color) + param_color = pick("red","blue","black","white","green","purple","yellow","orange") + icon_state = "[param_color]_vape" + item_state = "[param_color]_vape" /obj/item/clothing/mask/vape/attackby(obj/item/O, mob/user, params) if(O.tool_behaviour == TOOL_SCREWDRIVER) @@ -1067,4 +1066,4 @@ CIGARETTE PACKETS ARE IN FANCY.DM name = "coconut bong" icon_off = "coconut_bong" icon_on = "coconut_bong_lit" - desc = "A water bong used for smoking dried plants. This one's made out of a coconut and some bamboo." \ No newline at end of file + desc = "A water bong used for smoking dried plants. This one's made out of a coconut and some bamboo." diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index 8400b6fa5c..32c879e2d2 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -293,10 +293,6 @@ name = "Mining Shuttle (Computer Board)" build_path = /obj/machinery/computer/shuttle/mining -/obj/item/circuitboard/computer/mining_shuttle/common - name = "Lavaland Shuttle (Computer Board)" - build_path = /obj/machinery/computer/shuttle/mining/common - /obj/item/circuitboard/computer/white_ship name = "White Ship (Computer Board)" build_path = /obj/machinery/computer/shuttle/white_ship diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index f5b13d4e3e..09c045497c 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -26,7 +26,7 @@ var/icon_uncapped var/use_overlays = FALSE - item_color = "red" + var/crayon_color = "red" w_class = WEIGHT_CLASS_TINY attack_verb = list("attacked", "coloured") grind_results = list() @@ -83,7 +83,9 @@ . = ..() // Makes crayons identifiable in things like grinders if(name == "crayon") - name = "[item_color] crayon" + name = "[crayon_color] crayon" + + dye_color = crayon_color drawtype = pick(all_drawables) @@ -484,65 +486,75 @@ /obj/item/toy/crayon/red icon_state = "crayonred" paint_color = "#DA0000" - item_color = "red" + crayon_color = "red" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/red = 1) + dye_color = DYE_RED /obj/item/toy/crayon/orange icon_state = "crayonorange" paint_color = "#FF9300" - item_color = "orange" + crayon_color = "orange" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/orange = 1) + dye_color = DYE_ORANGE /obj/item/toy/crayon/yellow icon_state = "crayonyellow" paint_color = "#FFF200" - item_color = "yellow" + crayon_color = "yellow" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/yellow = 1) + dye_color = DYE_YELLOW /obj/item/toy/crayon/green icon_state = "crayongreen" paint_color = "#A8E61D" - item_color = "green" + crayon_color = "green" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/green = 1) + dye_color = DYE_GREEN /obj/item/toy/crayon/blue icon_state = "crayonblue" paint_color = "#00B7EF" - item_color = "blue" + crayon_color = "blue" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/blue = 1) + dye_color = DYE_BLUE /obj/item/toy/crayon/purple icon_state = "crayonpurple" paint_color = "#DA00FF" - item_color = "purple" + crayon_color = "purple" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/purple = 1) + dye_color = DYE_PURPLE /obj/item/toy/crayon/black icon_state = "crayonblack" paint_color = "#1C1C1C" //Not completely black because total black looks bad. So Mostly Black. - item_color = "black" + crayon_color = "black" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/black = 1) + dye_color = DYE_BLACK /obj/item/toy/crayon/white icon_state = "crayonwhite" paint_color = "#FFFFFF" - item_color = "white" + crayon_color = "white" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/white = 1) + dye_color = DYE_WHITE /obj/item/toy/crayon/mime icon_state = "crayonmime" desc = "A very sad-looking crayon." paint_color = "#FFFFFF" - item_color = "mime" + crayon_color = "mime" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/invisible = 1) charges = -1 + dye_color = DYE_MIME /obj/item/toy/crayon/rainbow icon_state = "crayonrainbow" paint_color = "#FFF000" - item_color = "rainbow" + crayon_color = "rainbow" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent = 1) drawtype = RANDOM_ANY // just the default starter. + dye_color = DYE_RAINBOW charges = -1 @@ -580,12 +592,12 @@ /obj/item/storage/crayons/update_overlays() . = ..() for(var/obj/item/toy/crayon/crayon in contents) - add_overlay(mutable_appearance('icons/obj/crayons.dmi', crayon.item_color)) + add_overlay(mutable_appearance('icons/obj/crayons.dmi', crayon.crayon_color)) /obj/item/storage/crayons/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/toy/crayon)) var/obj/item/toy/crayon/C = W - switch(C.item_color) + switch(C.crayon_color) if("mime") to_chat(usr, "This crayon is too sad to be contained in this box.") return diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 157cd451d4..2dabcca29f 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -807,9 +807,9 @@ GLOBAL_LIST_EMPTY(PDAs) // If it didn't reach, note that fact if (!signal.data["done"]) to_chat(user, "ERROR: Server isn't responding.") - return if (!silent) playsound(src, 'sound/machines/terminal_error.ogg', 15, 1) + return var/target_text = signal.format_target() if(allow_emojis) @@ -998,9 +998,9 @@ GLOBAL_LIST_EMPTY(PDAs) var/obj/item/card/id/idcard = C if(!idcard.registered_name) to_chat(user, "\The [src] rejects the ID!") - return if (!silent) playsound(src, 'sound/machines/terminal_error.ogg', 15, 1) + return if(!owner) owner = idcard.registered_name diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 1006fe9146..6eae9f127a 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -692,14 +692,14 @@ Code: return GLOB.news_network.SubmitArticle(message,host_pda.owner,current_channel) host_pda.Topic(null,list("choice"=num2text(host_pda.mode))) - return playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + return if("Newscaster Switch Channel") current_channel = host_pda.msg_input() host_pda.Topic(null,list("choice"=num2text(host_pda.mode))) - return playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + return //emoji previews if(href_list["emoji"]) diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index a3cfdb9177..9c94348fc2 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -18,7 +18,6 @@ var/recharge_locked = FALSE var/obj/item/stock_parts/micro_laser/diode //used for upgrading! - /obj/item/laser_pointer/red pointer_icon_state = "red_laser" /obj/item/laser_pointer/green @@ -28,6 +27,9 @@ /obj/item/laser_pointer/purple pointer_icon_state = "purple_laser" +/obj/item/laser_pointer/blue/handmade + diode = null + /obj/item/laser_pointer/New() ..() diode = new(src) diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index 914f2a149a..1eee083c80 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -149,7 +149,7 @@ Code: name = "shock collar" desc = "A reinforced metal collar. It seems to have some form of wiring near the front. Strange.." icon = 'modular_citadel/icons/obj/clothing/cit_neck.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/neck.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/citadel/neck.dmi' icon_state = "shockcollar" item_state = "shockcollar" body_parts_covered = NECK diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 0e109cd400..b6cab8b438 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -275,10 +275,8 @@ SLIME SCANNER //LIVER else if(istype(O, /obj/item/organ/liver)) var/obj/item/organ/liver/L = O - if(H.undergoing_liver_failure() && H.stat != DEAD) //might be depreciated + if(L.organ_flags & ORGAN_FAILING && H.stat != DEAD) //might be depreciated temp_message += "Subject is suffering from liver failure: Apply Corazone and begin a liver transplant immediately!" - if(L.swelling > 20) - temp_message += " Subject is suffering from an enlarged liver." //i.e. shrink their liver or give them a transplant. //HEART else if(ishuman(M) && (istype(O, /obj/item/organ/heart))) @@ -310,11 +308,11 @@ SLIME SCANNER //GENERAL HANDLER if(!damage_message) if(O.organ_flags & ORGAN_FAILING) - damage_message += " End Stage [O.name] failure detected." + damage_message += " Chronic [O.name] failure detected." else if(O.damage > O.high_threshold) - damage_message += " Chronic [O.name] failure detected." + damage_message += " Acute [O.name] failure detected." else if(O.damage > O.low_threshold && advanced) - damage_message += " Acute [O.name] failure detected." + damage_message += " Minor [O.name] failure detected." if(temp_message || damage_message) msg += "\t[uppertext(O.name)]: [damage_message] [temp_message]\n" diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm index ea24e77832..1172b50377 100644 --- a/code/game/objects/items/documents.dm +++ b/code/game/objects/items/documents.dm @@ -51,8 +51,8 @@ to_chat(user, "You have already forged a seal on [src]!") else var/obj/item/toy/crayon/C = O - name = "[C.item_color] secret documents" - icon_state = "docs_[C.item_color]" - forgedseal = C.item_color - to_chat(user, "You forge the official seal with a [C.item_color] crayon. No one will notice... right?") - update_icon() \ No newline at end of file + name = "[C.crayon_color] secret documents" + icon_state = "docs_[C.crayon_color]" + forgedseal = C.crayon_color + to_chat(user, "You forge the official seal with a [C.crayon_color] crayon. No one will notice... right?") + update_icon() diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index b0882b6e5d..e2140bd0fd 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -234,15 +234,16 @@ /obj/item/flamethrower/full/tank create_with_tank = TRUE -/obj/item/flamethrower/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - var/obj/item/projectile/P = hitby - if(damage && attack_type == PROJECTILE_ATTACK && P.damage_type != STAMINA && prob(15)) - owner.visible_message("\The [attack_text] hits the fueltank on [owner]'s [name], rupturing it! What a shot!") - var/target_turf = get_turf(owner) - igniter.ignite_turf(src,target_turf, release_amount = 100) - qdel(ptank) - return 1 //It hit the flamethrower, not them - +/obj/item/flamethrower/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(attack_type & ATTACK_TYPE_PROJECTILE) + var/obj/item/projectile/P = object + if(istype(P) && (P.damage_type != STAMINA) && damage && !P.nodamage && prob(15)) + owner.visible_message("\The [attack_text] hits the fueltank on [owner]'s [name], rupturing it! What a shot!") + var/target_turf = get_turf(owner) + igniter.ignite_turf(src,target_turf, release_amount = 100) + qdel(ptank) + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return ..() /obj/item/assembly/igniter/proc/flamethrower_process(turf/open/location) location.hotspot_expose(700,2) diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index 77b4b33a8c..8a41ee4601 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -115,12 +115,14 @@ /obj/item/grenade/attack_paw(mob/user) return attack_hand(user) -/obj/item/grenade/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - var/obj/item/projectile/P = hitby - if(damage && attack_type == PROJECTILE_ATTACK && P.damage_type != STAMINA && prob(15)) - owner.visible_message("[attack_text] hits [owner]'s [src], setting it off! What a shot!") - prime() - return TRUE //It hit the grenade, not them +/obj/item/grenade/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(attack_type & ATTACK_TYPE_PROJECTILE) + var/obj/item/projectile/P = object + if(damage && !P.nodamage && (P.damage_type != STAMINA) && prob(15)) + owner.visible_message("[attack_text] hits [owner]'s [src], setting it off! What a shot!") + prime() + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return ..() /obj/item/proc/grenade_prime_react(obj/item/grenade/nade) return diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index e1b0cbb661..22c9bdc451 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -113,54 +113,54 @@ desc = "Looks like some cables tied together. Could be used to tie something up." icon_state = "cuff" item_state = "coil" - item_color = "red" - color = "#ff0000" + color = "#ff0000" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' custom_materials = list(/datum/material/iron=150, /datum/material/glass=75) breakouttime = 300 //Deciseconds = 30s - cuffsound = 'sound/weapons/cablecuff.ogg' - -/obj/item/restraints/handcuffs/cable/Initialize(mapload, param_color) - . = ..() - - var/list/cable_colors = GLOB.cable_colors - item_color = param_color || item_color || pick(cable_colors) - if(cable_colors[item_color]) - item_color = cable_colors[item_color] - color = null - add_atom_colour(item_color, FIXED_COLOUR_PRIORITY) + cuffsound = 'sound/weapons/cablecuff.ogg' +/obj/item/restraints/handcuffs/cable/attack_self(mob/user) + to_chat(user, "You start unwinding the cable restraints back into coil") + if(!do_after(user, 25, TRUE, user)) + return + qdel(src) + var/obj/item/stack/cable_coil/coil = new(get_turf(user)) + coil.amount = 15 + user.put_in_hands(coil) + coil.color = color + to_chat(user, "You unwind the cable restraints back into coil") + /obj/item/restraints/handcuffs/cable/red - item_color = "red" color = "#ff0000" /obj/item/restraints/handcuffs/cable/yellow - item_color = "yellow" color = "#ffff00" /obj/item/restraints/handcuffs/cable/blue - item_color = "blue" color = "#1919c8" /obj/item/restraints/handcuffs/cable/green - item_color = "green" color = "#00aa00" /obj/item/restraints/handcuffs/cable/pink - item_color = "pink" color = "#ff3ccd" /obj/item/restraints/handcuffs/cable/orange - item_color = "orange" color = "#ff8000" /obj/item/restraints/handcuffs/cable/cyan - item_color = "cyan" color = "#00ffff" /obj/item/restraints/handcuffs/cable/white - item_color = "white" + color = null + +/obj/item/restraints/handcuffs/cable/random + +/obj/item/restraints/handcuffs/cable/random/Initialize(mapload) + . = ..() + var/list/cable_colors = GLOB.cable_colors + color = pick(cable_colors) /obj/item/restraints/handcuffs/cable/attackby(obj/item/I, mob/user, params) ..() @@ -202,7 +202,7 @@ custom_materials = null breakouttime = 450 //Deciseconds = 45s trashtype = /obj/item/restraints/handcuffs/cable/zipties/used - item_color = "white" + color = null /obj/item/restraints/handcuffs/cable/zipties/used desc = "A pair of broken zipties." diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index bd9ac276a2..ac60a322d8 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -122,7 +122,7 @@ /obj/item/clothing/head/helmet/chaplain/cage name = "cage" desc = "A cage that restrains the will of the self, allowing one to see the profane world for what it is." - alternate_worn_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' + mob_overlay_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' icon_state = "cage" item_state = "cage" worn_x_dimension = 64 @@ -303,8 +303,8 @@ block_chance = 50 var/shield_icon = "shield-red" -/obj/item/nullrod/staff/worn_overlays(isinhands, icon_file, style_flags = NONE) - . = list() +/obj/item/nullrod/staff/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) + . = ..() if(isinhands) . += mutable_appearance('icons/effects/effects.dmi', shield_icon, MOB_LAYER + 0.01) @@ -328,9 +328,9 @@ hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") -/obj/item/nullrod/claymore/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(attack_type == PROJECTILE_ATTACK) - final_block_chance = 0 //Don't bring a sword to a gunfight +/obj/item/nullrod/claymore/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(attack_type & ATTACK_TYPE_PROJECTILE) // Don't bring a sword to a gunfight + return NONE return ..() /obj/item/nullrod/claymore/darkblade @@ -494,7 +494,7 @@ S.ckey = C.ckey S.status_flags |= GODMODE S.language_holder = user.language_holder.copy(S) - S.AddElement(/datum/element/ghost_role_eligibility) + S.AddElement(/datum/element/ghost_role_eligibility,penalize_on_ghost = TRUE) START_PROCESSING(SSprocessing,src) var/input = stripped_input(S,"What are you named?", ,"", MAX_NAME_LEN) diff --git a/code/game/objects/items/implants/implant.dm b/code/game/objects/items/implants/implant.dm index c1983b6b8c..cc2ae3631e 100644 --- a/code/game/objects/items/implants/implant.dm +++ b/code/game/objects/items/implants/implant.dm @@ -5,7 +5,7 @@ actions_types = list(/datum/action/item_action/hands_free/activate) var/activated = TRUE //1 for implant types that can be activated, 0 for ones that are "always on" like mindshield implants var/mob/living/imp_in = null - item_color = "b" + var/implant_color = "b" var/allow_multiple = FALSE var/uses = -1 item_flags = DROPDEL diff --git a/code/game/objects/items/implants/implant_freedom.dm b/code/game/objects/items/implants/implant_freedom.dm index f3e66d2c08..280fbb7cd3 100644 --- a/code/game/objects/items/implants/implant_freedom.dm +++ b/code/game/objects/items/implants/implant_freedom.dm @@ -2,7 +2,7 @@ name = "freedom implant" desc = "Use this to escape from those evil Red Shirts." icon_state = "freedom" - item_color = "r" + implant_color = "r" uses = 4 diff --git a/code/game/objects/items/implants/implant_spell.dm b/code/game/objects/items/implants/implant_spell.dm index 5db7dc761c..496638c51f 100644 --- a/code/game/objects/items/implants/implant_spell.dm +++ b/code/game/objects/items/implants/implant_spell.dm @@ -21,7 +21,7 @@ if (!spell) return FALSE if (autorobeless && spell.clothes_req) - spell.clothes_req = FALSE + spell.clothes_req = NONE target.AddSpell(spell) return TRUE diff --git a/code/game/objects/items/implants/implant_storage.dm b/code/game/objects/items/implants/implant_storage.dm index 1dfc0b4580..4dc0263fa7 100644 --- a/code/game/objects/items/implants/implant_storage.dm +++ b/code/game/objects/items/implants/implant_storage.dm @@ -2,7 +2,7 @@ name = "storage implant" desc = "Stores up to two big items in a bluespace pocket." icon_state = "storage" - item_color = "r" + implant_color = "r" var/max_slot_stacking = 4 var/obj/item/storage/bluespace_pocket/pocket diff --git a/code/game/objects/items/implants/implantcase.dm b/code/game/objects/items/implants/implantcase.dm index 481f1a4181..8573324b56 100644 --- a/code/game/objects/items/implants/implantcase.dm +++ b/code/game/objects/items/implants/implantcase.dm @@ -15,7 +15,7 @@ /obj/item/implantcase/update_icon_state() if(imp) - icon_state = "implantcase-[imp.item_color]" + icon_state = "implantcase-[imp.implant_color]" else icon_state = "implantcase-0" diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 5f3524d1c3..502930bf65 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -142,6 +142,7 @@ name = "plastic knife" desc = "A plastic knife. Rather harmless to anything." force = 1 + throwforce = 1 bayonet = FALSE /obj/item/kitchen/knife/combat/cyborg diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index aba07c9120..e4cfeab20f 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -5,12 +5,15 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) resistance_flags = FIRE_PROOF var/brightness_on = 3 + var/sword_color total_mass = 0.4 //Survival flashlights typically weigh around 5 ounces. /obj/item/melee/transforming/energy/Initialize() . = ..() total_mass_on = (total_mass_on ? total_mass_on : (w_class_on * 0.75)) if(active) + if(sword_color) + icon_state = "sword[sword_color]" set_light(brightness_on) START_PROCESSING(SSobj, src) @@ -37,8 +40,8 @@ . = ..() if(.) if(active) - if(item_color) - icon_state = "sword[item_color]" + if(sword_color) + icon_state = "sword[sword_color]" START_PROCESSING(SSobj, src) set_light(brightness_on) else @@ -103,23 +106,32 @@ embedding = list("embed_chance" = 75, "embedded_impact_pain_multiplier" = 10) armour_penetration = 35 block_chance = 50 + var/list/possible_colors = list("red" = LIGHT_COLOR_RED, "blue" = LIGHT_COLOR_LIGHT_CYAN, "green" = LIGHT_COLOR_GREEN, "purple" = LIGHT_COLOR_LAVENDER) + +/obj/item/melee/transforming/energy/sword/Initialize(mapload) + . = ..() + set_sword_color() + +/obj/item/melee/transforming/energy/sword/proc/set_sword_color() + if(LAZYLEN(possible_colors)) + light_color = possible_colors[pick(possible_colors)] /obj/item/melee/transforming/energy/sword/transform_weapon(mob/living/user, supress_message_text) . = ..() if(active) - if(. && item_color) - icon_state = "sword[item_color]" AddElement(/datum/element/sword_point) else RemoveElement(/datum/element/sword_point) -/obj/item/melee/transforming/energy/sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(active) - return ..() - return 0 +/obj/item/melee/transforming/energy/sword/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!active) + return NONE + return ..() /obj/item/melee/transforming/energy/sword/cyborg - item_color = "red" + sword_color = "red" + light_color = "#ff0000" + possible_colors = null var/hitcost = 50 /obj/item/melee/transforming/energy/sword/cyborg/attack(mob/M, var/mob/living/silicon/robot/R) @@ -140,7 +152,7 @@ icon = 'icons/obj/surgery.dmi' icon_state = "esaw_0" icon_state_on = "esaw_1" - item_color = null //stops icon from breaking when turned on. + sword_color = null //stops icon from breaking when turned on. hitcost = 75 //Costs more than a standard cyborg esword w_class = WEIGHT_CLASS_NORMAL sharpness = IS_SHARP @@ -148,19 +160,17 @@ tool_behaviour = TOOL_SAW toolspeed = 0.7 -/obj/item/melee/transforming/energy/sword/cyborg/saw/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - return 0 +/obj/item/melee/transforming/energy/sword/cyborg/saw/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + return NONE /obj/item/melee/transforming/energy/sword/saber - var/list/possible_colors = list("red" = LIGHT_COLOR_RED, "blue" = LIGHT_COLOR_LIGHT_CYAN, "green" = LIGHT_COLOR_GREEN, "purple" = LIGHT_COLOR_LAVENDER) + possible_colors = list("red" = LIGHT_COLOR_RED, "blue" = LIGHT_COLOR_LIGHT_CYAN, "green" = LIGHT_COLOR_GREEN, "purple" = LIGHT_COLOR_LAVENDER) var/hacked = FALSE -/obj/item/melee/transforming/energy/sword/saber/Initialize(mapload) - . = ..() +/obj/item/melee/transforming/energy/sword/saber/set_sword_color() if(LAZYLEN(possible_colors)) - var/set_color = pick(possible_colors) - item_color = set_color - light_color = possible_colors[set_color] + sword_color = pick(possible_colors) + light_color = possible_colors[sword_color] /obj/item/melee/transforming/energy/sword/saber/process() . = ..() @@ -185,7 +195,7 @@ if(istype(W, /obj/item/multitool)) if(!hacked) hacked = TRUE - item_color = "rainbow" + sword_color = "rainbow" to_chat(user, "RNBW_ENGAGE") if(active) @@ -204,6 +214,7 @@ righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' icon_state_on = "cutlass1" light_color = "#ff0000" + possible_colors = null /obj/item/melee/transforming/energy/blade name = "energy blade" @@ -271,32 +282,8 @@ return TRUE /obj/item/melee/transforming/energy/sword/cx/transform_weapon(mob/living/user, supress_message_text) - active = !active //I'd use a ..() here but it'd inherit from the regular esword's proc instead, so SPAGHETTI CODE - if(active) //also I'd need to rip out the iconstate changing bits - force = force_on - throwforce = throwforce_on - hitsound = hitsound_on - throw_speed = 4 - if(attack_verb_on.len) - attack_verb = attack_verb_on - w_class = w_class_on - START_PROCESSING(SSobj, src) - set_light(brightness_on) - update_icon() - else - force = initial(force) - throwforce = initial(throwforce) - hitsound = initial(hitsound) - throw_speed = initial(throw_speed) - if(attack_verb_off.len) - attack_verb = attack_verb_off - w_class = initial(w_class) - STOP_PROCESSING(SSobj, src) - set_light(0) - update_icon() - transform_messages(user, supress_message_text) - add_fingerprint(user) - return TRUE + . = ..() + update_icon() /obj/item/melee/transforming/energy/sword/cx/transform_messages(mob/living/user, supress_message_text) playsound(user, active ? 'sound/weapons/nebon.ogg' : 'sound/weapons/neboff.ogg', 65, 1) @@ -337,7 +324,7 @@ . = ..() . += "Alt-click to recolor it." -/obj/item/melee/transforming/energy/sword/cx/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/melee/transforming/energy/sword/cx/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(active) if(isinhands) diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index cbbd50b573..011837d48b 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -2,13 +2,12 @@ item_flags = NEEDS_PERMIT /obj/item/melee/proc/check_martial_counter(mob/living/carbon/human/target, mob/living/carbon/human/user) - if(target.check_block()) + if(target.check_martial_melee_block()) target.visible_message("[target.name] blocks [src] and twists [user]'s arm behind [user.p_their()] back!", "You block the attack!") user.Stun(40) return TRUE - /obj/item/melee/chainofcommand name = "chain of command" desc = "A tool used by great men to placate the frothing masses." @@ -75,9 +74,9 @@ AddComponent(/datum/component/butchering, 30, 95, 5) //fast and effective, but as a sword, it might damage the results. AddElement(/datum/element/sword_point) -/obj/item/melee/sabre/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(attack_type == PROJECTILE_ATTACK) - final_block_chance = 0 //Don't bring a sword to a gunfight +/obj/item/melee/sabre/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(attack_type & ATTACK_TYPE_PROJECTILE) // Don't bring a sword to a gunfight. + return BLOCK_NONE return ..() /obj/item/melee/sabre/on_exit_storage(datum/component/storage/S) @@ -165,8 +164,8 @@ . = ..() AddComponent(/datum/component/butchering, 20, 65, 0) -/obj/item/melee/rapier/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(attack_type == PROJECTILE_ATTACK) +/obj/item/melee/rapier/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(attack_type == ATTACK_TYPE_PROJECTILE) final_block_chance = 0 return ..() @@ -305,7 +304,7 @@ return else if(cooldown_check < world.time) - if(target.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) + if(target.run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user) & BLOCK_SUCCESS) playsound(target, 'sound/weapons/genhit.ogg', 50, 1) return if(ishuman(target)) diff --git a/code/game/objects/items/paint.dm b/code/game/objects/items/paint.dm index cc2f5e9be7..bdf9ab4270 100644 --- a/code/game/objects/items/paint.dm +++ b/code/game/objects/items/paint.dm @@ -7,7 +7,7 @@ desc = "Used to recolor floors and walls. Can be removed by the janitor." icon = 'icons/obj/items_and_weapons.dmi' icon_state = "paint_neutral" - item_color = "FFFFFF" + var/paint_color = "FFFFFF" item_state = "paintcan" w_class = WEIGHT_CLASS_NORMAL resistance_flags = FLAMMABLE @@ -16,37 +16,37 @@ /obj/item/paint/red name = "red paint" - item_color = "C73232" //"FF0000" + paint_color = "C73232" //"FF0000" icon_state = "paint_red" /obj/item/paint/green name = "green paint" - item_color = "2A9C3B" //"00FF00" + paint_color = "2A9C3B" //"00FF00" icon_state = "paint_green" /obj/item/paint/blue name = "blue paint" - item_color = "5998FF" //"0000FF" + paint_color = "5998FF" //"0000FF" icon_state = "paint_blue" /obj/item/paint/yellow name = "yellow paint" - item_color = "CFB52B" //"FFFF00" + paint_color = "CFB52B" //"FFFF00" icon_state = "paint_yellow" /obj/item/paint/violet name = "violet paint" - item_color = "AE4CCD" //"FF00FF" + paint_color = "AE4CCD" //"FF00FF" icon_state = "paint_violet" /obj/item/paint/black name = "black paint" - item_color = "333333" + paint_color = "333333" icon_state = "paint_black" /obj/item/paint/white name = "white paint" - item_color = "FFFFFF" + paint_color = "FFFFFF" icon_state = "paint_white" @@ -61,31 +61,31 @@ return switch(t1) if("red") - item_color = "C73232" + paint_color = "C73232" if("pink") - item_color = "FFC0CD" + paint_color = "FFC0CD" if("blue") - item_color = "5998FF" + paint_color = "5998FF" if("cyan") - item_color = "00FFFF" + paint_color = "00FFFF" if("green") - item_color = "2A9C3B" + paint_color = "2A9C3B" if("lime") - item_color = "00FF00" + paint_color = "00FF00" if("yellow") - item_color = "CFB52B" + paint_color = "CFB52B" if("orange") - item_color = "fFA700" + paint_color = "fFA700" if("violet") - item_color = "AE4CCD" + paint_color = "AE4CCD" if("purple") - item_color = "800080" + paint_color = "800080" if("white") - item_color = "FFFFFF" + paint_color = "FFFFFF" if("gray") - item_color = "808080" + paint_color = "808080" if("black") - item_color = "333333" + paint_color = "333333" icon_state = "paint_[t1]" add_fingerprint(user) @@ -99,7 +99,7 @@ return if(!isturf(target) || isspaceturf(target)) return - var/newcolor = "#" + item_color + var/newcolor = "#" + paint_color target.add_atom_colour(newcolor, WASHABLE_COLOUR_PRIORITY) /obj/item/paint/paint_remover diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index 0c9c1704a9..090c2f6d57 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -83,7 +83,7 @@ /obj/item/pinpointer/crew/proc/trackable(mob/living/carbon/human/H) var/turf/here = get_turf(src) - if((H.z == 0 || H.z == here.z) && istype(H.w_uniform, /obj/item/clothing/under)) + if(H && (H.z == 0 || H.z == here.z) && istype(H.w_uniform, /obj/item/clothing/under)) var/obj/item/clothing/under/U = H.w_uniform // Suit sensors must be on maximum. diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 498990fcf3..a564d7f9f9 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -434,7 +434,15 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) can_random_spawn = FALSE /obj/item/toy/plush/random/Initialize() - var/newtype = prob(CONFIG_GET(number/snowflake_plushie_prob))? /obj/item/toy/plush/random_snowflake : pick(GLOB.valid_plushie_paths) + var/newtype + var/list/snowflake_list = CONFIG_GET(keyed_list/snowflake_plushies) + + /// If there are no snowflake plushies we'll default to base plush, so we grab from the valid list + if (snowflake_list.len) + newtype = prob(CONFIG_GET(number/snowflake_plushie_prob)) ? /obj/item/toy/plush/random_snowflake : pick(GLOB.valid_plushie_paths) + else + newtype = pick(GLOB.valid_plushie_paths) + new newtype(loc) return INITIALIZE_HINT_QDEL diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index b89a2983f5..136d58ba41 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -214,7 +214,7 @@ /obj/item/clothing/head/helmet/plate/crusader/prophet name = "Prophet's Hat" desc = "A religious-looking hat." - alternate_worn_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' + mob_overlay_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' flags_1 = 0 armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 50, "bomb" = 70, "bio" = 50, "rad" = 50, "fire" = 60, "acid" = 60) //religion protects you from disease and radiation, honk. worn_x_dimension = 64 diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 0ca2fbd386..318753e4ad 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -11,7 +11,7 @@ var/charge_cost = 30 /obj/item/borg/stun/attack(mob/living/M, mob/living/user) - if(M.check_shields(src, 0, "[M]'s [name]", MELEE_ATTACK)) + if(M.run_block(src, 0, "[M]'s [name]", ATTACK_TYPE_MELEE, 0, user, ran_zone(user.zone_selected)) & BLOCK_SUCCESS) playsound(M, 'sound/weapons/genhit.ogg', 50, 1) return FALSE if(iscyborg(user)) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index b137c5c0f3..08ce73109c 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -663,21 +663,19 @@ var/maxReduction = 1 -/obj/effect/proc_holder/silicon/cyborg/vtecControl/Click(mob/living/silicon/robot/user) - var/mob/living/silicon/robot/self = usr - +/obj/effect/proc_holder/silicon/cyborg/vtecControl/Trigger(mob/living/silicon/robot/user) currentState = (currentState + 1) % 3 - if(istype(self)) + if(istype(user)) switch(currentState) if (0) - self.speed = initial(self.speed) + user.speed = initial(user.speed) if (1) - self.speed = initial(self.speed) - maxReduction * 0.5 + user.speed = initial(user.speed) - maxReduction * 0.5 if (2) - self.speed = initial(self.speed) - maxReduction * 1 + user.speed = initial(user.speed) - maxReduction * 1 action.button_icon_state = "Chevron_State_[currentState]" action.UpdateButtonIcon() - return + return TRUE diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index 07f4cb4e40..37dfc417d5 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -5,7 +5,7 @@ armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) var/transparent = FALSE // makes beam projectiles pass through the shield -/obj/item/shield/proc/on_shield_block(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", damage = 0, attack_type = MELEE_ATTACK) +/obj/item/shield/proc/on_shield_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance) return TRUE /obj/item/shield/riot @@ -26,16 +26,18 @@ transparent = TRUE max_integrity = 75 -/obj/item/shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(transparent && (hitby.pass_flags & PASSGLASS)) - return FALSE - if(attack_type == THROWN_PROJECTILE_ATTACK) +/obj/item/shield/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(ismovableatom(object)) + var/atom/movable/AM = object + if(transparent && (AM.pass_flags & PASSGLASS)) + return BLOCK_NONE + if(attack_type & ATTACK_TYPE_THROWN) final_block_chance += 30 - if(attack_type == LEAP_ATTACK) + if(attack_type & ATTACK_TYPE_TACKLE) final_block_chance = 100 . = ..() - if(.) - on_shield_block(owner, hitby, attack_text, damage, attack_type) + if(. & BLOCK_SUCCESS) + on_shield_block(owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) /obj/item/shield/riot/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/melee/baton)) @@ -69,10 +71,10 @@ playsound(owner, 'sound/effects/glassbr3.ogg', 100) new /obj/item/shard((get_turf(src))) -/obj/item/shield/riot/on_shield_block(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", damage = 0, attack_type = MELEE_ATTACK) +/obj/item/shield/riot/on_shield_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(obj_integrity <= damage) var/turf/T = get_turf(owner) - T.visible_message("[hitby] destroys [src]!") + T.visible_message("[attack_text] destroys [src]!") shatter(owner) qdel(src) return FALSE @@ -139,11 +141,11 @@ . = ..() icon_state = "[base_icon_state]0" -/obj/item/shield/energy/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - return 0 - -/obj/item/shield/energy/IsReflect() - return (active) +/obj/item/shield/energy/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if((attack_type & ATTACK_TYPE_PROJECTILE) && is_energy_reflectable_projectile(object)) + block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT + return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT + return ..() /obj/item/shield/energy/attack_self(mob/living/carbon/human/user) if(clumsy_check && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) @@ -182,10 +184,10 @@ w_class = WEIGHT_CLASS_NORMAL var/active = 0 -/obj/item/shield/riot/tele/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(active) - return ..() - return 0 +/obj/item/shield/riot/tele/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!active) + return BLOCK_NONE + return ..() /obj/item/shield/riot/tele/attack_self(mob/living/user) active = !active @@ -249,7 +251,7 @@ transparent = FALSE item_flags = SLOWS_WHILE_IN_HAND -/obj/item/shield/riot/implant/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(attack_type == PROJECTILE_ATTACK) +/obj/item/shield/riot/implant/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(attack_type & ATTACK_TYPE_PROJECTILE) final_block_chance = 60 //Massive shield return ..() diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm index f864df5a21..00e48fd12a 100644 --- a/code/game/objects/items/stacks/bscrystal.dm +++ b/code/game/objects/items/stacks/bscrystal.dm @@ -5,6 +5,7 @@ icon = 'icons/obj/telescience.dmi' icon_state = "bluespace_crystal" singular_name = "bluespace crystal" + dye_color = DYE_COSMIC w_class = WEIGHT_CLASS_TINY custom_materials = list(/datum/material/bluespace=MINERAL_MATERIAL_AMOUNT) points = 50 diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 75db89f616..c8ee6b05c7 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -22,6 +22,8 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ new/datum/stack_recipe("spout flask", /obj/item/glasswork/glass_base/spouty, 20), \ new/datum/stack_recipe("small bulb flask", /obj/item/glasswork/glass_base/flask_small, 5), \ new/datum/stack_recipe("large bottle flask", /obj/item/glasswork/glass_base/flask_large, 15), \ + new/datum/stack_recipe("tea cup", /obj/item/glasswork/glass_base/tea_plate, 5), \ + new/datum/stack_recipe("tea plate", /obj/item/glasswork/glass_base/tea_cup, 5), \ )), \ )) @@ -137,7 +139,7 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ return ..() /obj/item/stack/sheet/plasmaglass/on_solar_construction(obj/machinery/power/solar/S) - S.obj_integrity *= 1.2 + S.max_integrity *= 1.2 S.efficiency *= 1.2 /* @@ -170,7 +172,7 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ ..() /obj/item/stack/sheet/rglass/on_solar_construction(obj/machinery/power/solar/S) - S.obj_integrity *= 2 + S.max_integrity *= 2 /obj/item/stack/sheet/rglass/cyborg custom_materials = null @@ -218,7 +220,7 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \ . += GLOB.prglass_recipes /obj/item/stack/sheet/plasmarglass/on_solar_construction(obj/machinery/power/solar/S) - S.obj_integrity *= 2.2 + S.max_integrity *= 2.2 S.efficiency *= 1.2 GLOBAL_LIST_INIT(titaniumglass_recipes, list( @@ -242,7 +244,7 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list( . += GLOB.titaniumglass_recipes /obj/item/stack/sheet/titaniumglass/on_solar_construction(obj/machinery/power/solar/S) - S.obj_integrity *= 2.5 + S.max_integrity *= 2.5 S.efficiency *= 1.5 GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( @@ -270,7 +272,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( . += GLOB.plastitaniumglass_recipes /obj/item/stack/sheet/titaniumglass/on_solar_construction(obj/machinery/power/solar/S) - S.obj_integrity *= 2 + S.max_integrity *= 2 S.efficiency *= 2 /obj/item/shard diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index b596e40e36..6ddd7c136a 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -179,11 +179,24 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = TRUE), \ new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \ - new/datum/stack_recipe("crate", /obj/structure/closet/crate, 5, time = 90, one_per_turf = TRUE), \ - null, \ + new /datum/stack_recipe_list("crates", list( \ + new /datum/stack_recipe("gray crate", /obj/structure/closet/crate, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("internals crate", /obj/structure/closet/crate/internals, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("trash cart", /obj/structure/closet/crate/trashcart, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("medical crate", /obj/structure/closet/crate/medical, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("freezer crate", /obj/structure/closet/crate/freezer, 8, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("blood bag crate", /obj/structure/closet/crate/freezer/blood, 8, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("surplus limbs crate", /obj/structure/closet/crate/freezer/surplus_limbs, 8, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("radiation containment crate", /obj/structure/closet/crate/radiation, 8, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("hydroponics crate", /obj/structure/closet/crate/hydroponics, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("engineering crate", /obj/structure/closet/crate/engineering, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("eletrical crate", /obj/structure/closet/crate/engineering/electrical, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("RCD storage crate", /obj/structure/closet/crate/rcd, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("science crate", /obj/structure/closet/crate/science, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + )), \ new /datum/stack_recipe_list("airlock assemblies", list( \ - new/datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 6, time = 50, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("vault door assembly", /obj/structure/door_assembly/door_assembly_vault, 8, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("vault door assembly", /obj/structure/door_assembly/door_assembly_vault, 6, time = 50, one_per_turf = 1, on_floor = 1), \ )), \ )) @@ -368,6 +381,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ new/datum/stack_recipe("towel", /obj/item/reagent_containers/rag/towel, 3), \ new/datum/stack_recipe("bedsheet", /obj/item/bedsheet, 3), \ new/datum/stack_recipe("empty sandbag", /obj/item/emptysandbag, 4), \ + new/datum/stack_recipe("padded floor tile", /obj/item/stack/tile/padded, 1, 4, 20), \ null, \ new/datum/stack_recipe("fingerless gloves", /obj/item/clothing/gloves/fingerless, 1),\ new/datum/stack_recipe("white gloves", /obj/item/clothing/gloves/color/white, 1),\ @@ -768,6 +782,7 @@ GLOBAL_LIST_INIT(plastic_recipes, list( new /datum/stack_recipe("water bottle", /obj/item/reagent_containers/glass/beaker/waterbottle/empty), \ new /datum/stack_recipe("large water bottle", /obj/item/reagent_containers/glass/beaker/waterbottle/large/empty,3), \ new /datum/stack_recipe("shower curtain", /obj/structure/curtain, 10, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("laser pointer case", /obj/item/glasswork/glass_base/laserpointer_shell, 30), \ new /datum/stack_recipe("wet floor sign", /obj/item/caution, 2))) /obj/item/stack/sheet/plastic @@ -845,4 +860,3 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra merge_type = /obj/item/stack/sheet/cotton/durathread pull_effort = 70 loom_result = /obj/item/stack/sheet/durathread - diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 5f2795c857..70b00c72ec 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -240,8 +240,7 @@ else if(istype(O, /obj/item/restraints/handcuffs/cable)) var/obj/item/cuffs = O - cuffs.item_color = item_color - cuffs.update_icon() + cuffs.color = color if (QDELETED(O)) return //It's a stack and has already been merged diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 2e537d3eff..ff81b4340a 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -142,6 +142,14 @@ turf_type = /turf/open/floor/wood resistance_flags = FLAMMABLE +//Cloth Floors + +/obj/item/stack/tile/padded + name = "padded floor tile" + desc = "These are soft and cushy, they'd make good pillows. They look very comfortable, although what they're used for is discomforting." + icon_state = "tile_padded" + turf_type = /turf/open/floor/padded + //Basalt /obj/item/stack/tile/basalt name = "basalt tile" diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 0a29562d6b..dc6f5f701e 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -22,7 +22,7 @@ for(var/obj/item/I in contents) . += I.get_belt_overlay() -/obj/item/storage/belt/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/storage/belt/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands && onmob_overlays) for(var/obj/item/I in contents) @@ -708,6 +708,7 @@ desc = "A dorky fannypack for keeping small items in." icon_state = "fannypack_leather" item_state = "fannypack_leather" + dying_key = DYE_REGISTRY_FANNYPACK /obj/item/storage/belt/fannypack/ComponentInitialize() . = ..() @@ -804,3 +805,4 @@ attack_verb = list("bashed", "slashes", "prods", "pokes") fitting_swords = list(/obj/item/melee/rapier) starting_sword = /obj/item/melee/rapier + diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 037ae51e30..874c858b3f 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -404,6 +404,12 @@ new /obj/item/gun/ballistic/revolver(src) new /obj/item/ammo_box/a357(src) +/obj/item/storage/box/syndie_kit/pistol + +/obj/item/storage/box/syndie_kit/pistol/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol(src) + new /obj/item/ammo_box/magazine/m10mm(src) + /obj/item/storage/box/syndie_kit/contract_kit name = "contractor kit" desc = "Supplied to Syndicate contractors in active mission areas." @@ -494,4 +500,4 @@ new item1(src) // Create three, non repeat items from the list. new item2(src) new item3(src) - new /obj/item/paper/contractor_guide(src) //Paper guide \ No newline at end of file + new /obj/item/paper/contractor_guide(src) //Paper guide diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 130bc55244..0fc47f649a 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -15,7 +15,7 @@ attack_verb = list("beaten") armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) - var/stamforce = 25 + var/stamforce = 35 var/status = FALSE var/knockdown = TRUE var/obj/item/stock_parts/cell/cell @@ -170,7 +170,7 @@ return disarming || (user.a_intent != INTENT_HARM) /obj/item/melee/baton/proc/baton_stun(mob/living/L, mob/user, disarming = FALSE) - if(L.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) //No message; check_shields() handles that + if(L.run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user) & BLOCK_SUCCESS) //No message; check_shields() handles that playsound(L, 'sound/weapons/genhit.ogg', 50, 1) return FALSE var/stunpwr = stamforce diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index c1cbf534ca..6ff5dfc8ad 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -376,8 +376,8 @@ filling.color = mix_color_from_reagents(reagents.reagent_list) add_overlay(filling) -/obj/item/reagent_containers/chemtank/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) //apply chemcolor and level - . = list() +/obj/item/reagent_containers/chemtank/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) //apply chemcolor and level + . = ..() //inhands + reagent_filling if(!isinhands && reagents.total_volume) var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "backpackmob-10") diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index 0d2892cb4a..e9f517a9f1 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -53,8 +53,8 @@ base_overlay.appearance_flags = RESET_COLOR . += base_overlay -/obj/item/screwdriver/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) - . = list() +/obj/item/screwdriver/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) + . = ..() if(isinhands && random_color) var/mutable_appearance/M = mutable_appearance(icon_file, "screwdriver_head") M.appearance_flags = RESET_COLOR diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index ba51fa3d65..9291b72467 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -273,15 +273,12 @@ var/obj/item/twohanded/dualsaber/toy/newSaber = new /obj/item/twohanded/dualsaber/toy(user.loc) if(hacked) // That's right, we'll only check the "original" "sword". newSaber.hacked = TRUE - newSaber.item_color = "rainbow" qdel(W) qdel(src) else if(istype(W, /obj/item/multitool)) if(!hacked) hacked = TRUE - item_color = "rainbow" to_chat(user, "RNBW_ENGAGE") - if(active) update_icon() user.update_inv_hands() @@ -352,7 +349,7 @@ update_light() return TRUE -/obj/item/toy/sword/cx/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/toy/sword/cx/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(active) if(isinhands) @@ -454,11 +451,8 @@ total_mass_on = TOTAL_MASS_TOY_SWORD sharpness = IS_BLUNT -/obj/item/twohanded/dualsaber/toy/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - return FALSE - -/obj/item/twohanded/dualsaber/toy/IsReflect()//Stops Toy Dualsabers from reflecting energy projectiles - return FALSE +/obj/item/twohanded/dualsaber/toy/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + return BLOCK_NONE /obj/item/twohanded/dualsaber/hypereutactic/toy name = "\improper DX Hyper-Euplastic LightSword" @@ -474,11 +468,8 @@ slowdown_wielded = 0 sharpness = IS_BLUNT -/obj/item/twohanded/dualsaber/hypereutactic/toy/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - return FALSE - -/obj/item/twohanded/dualsaber/hypereutactic/toy/IsReflect()//Stops it from reflecting energy projectiles - return FALSE +/obj/item/twohanded/dualsaber/hypereutactic/toy/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + return BLOCK_NONE /obj/item/twohanded/dualsaber/hypereutactic/toy/rainbow name = "\improper Hyper-Euclidean Reciprocating Trigonometric Zweihander" diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index b188250fff..2b6a91eb51 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -281,7 +281,7 @@ hitsound = "swing_hit" var/hitsound_on = 'sound/weapons/blade1.ogg' armour_penetration = 35 - item_color = "green" + var/saber_color = "green" light_color = "#00ff00"//green attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") block_chance = 75 @@ -289,6 +289,8 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) resistance_flags = FIRE_PROOF var/hacked = FALSE + /// Can this reflect all energy projectiles? + var/can_reflect = TRUE var/brightness_on = 6 //TWICE AS BRIGHT AS A REGULAR ESWORD var/list/possible_colors = list("red", "blue", "green", "purple") var/list/rainbow_colors = list(LIGHT_COLOR_RED, LIGHT_COLOR_GREEN, LIGHT_COLOR_LIGHT_CYAN, LIGHT_COLOR_LAVENDER) @@ -324,8 +326,8 @@ /obj/item/twohanded/dualsaber/Initialize() . = ..() if(LAZYLEN(possible_colors)) - item_color = pick(possible_colors) - switch(item_color) + saber_color = pick(possible_colors) + switch(saber_color) if("red") light_color = LIGHT_COLOR_RED if("green") @@ -341,7 +343,7 @@ /obj/item/twohanded/dualsaber/update_icon_state() if(wielded) - icon_state = "dualsaber[item_color][wielded]" + icon_state = "dualsaber[saber_color][wielded]" else icon_state = "dualsaber0" clean_blood() @@ -373,10 +375,13 @@ else user.adjustStaminaLoss(25) -/obj/item/twohanded/dualsaber/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(wielded) - return ..() - return 0 +/obj/item/twohanded/dualsaber/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!wielded) + return NONE + if(can_reflect && is_energy_reflectable_projectile(object) && (attack_type & ATTACK_TYPE_PROJECTILE)) + block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_RETURN_TO_SENDER //no you + return BLOCK_SHOULD_REDIRECT | BLOCK_SUCCESS | BLOCK_REDIRECTED + return ..() /obj/item/twohanded/dualsaber/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) //In case thats just so happens that it is still activated on the groud, prevents hulk from picking it up if(wielded) @@ -419,10 +424,6 @@ /obj/item/twohanded/dualsaber/proc/rainbow_process() light_color = pick(rainbow_colors) -/obj/item/twohanded/dualsaber/IsReflect() - if(wielded) - return 1 - /obj/item/twohanded/dualsaber/ignition_effect(atom/A, mob/user) // same as /obj/item/melee/transforming/energy, mostly if(!wielded) @@ -456,7 +457,7 @@ if(!hacked) hacked = TRUE to_chat(user, "2XRNBW_ENGAGE") - item_color = "rainbow" + saber_color = "rainbow" update_icon() else to_chat(user, "It's starting to look like a triple rainbow - no, nevermind.") @@ -530,7 +531,7 @@ update_light() return TRUE -/obj/item/twohanded/dualsaber/hypereutactic/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/twohanded/dualsaber/hypereutactic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(isinhands) var/mutable_appearance/gem_inhand = mutable_appearance(icon_file, "hypereutactic_gem") @@ -560,15 +561,13 @@ block_chance = 50 armour_penetration = 0 var/chaplain_spawnable = TRUE + can_reflect = FALSE obj_flags = UNIQUE_RENAME /obj/item/twohanded/dualsaber/hypereutactic/chaplain/ComponentInitialize() . = ..() AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, null, null, FALSE) -/obj/item/twohanded/dualsaber/hypereutactic/chaplain/IsReflect() - return FALSE - //spears /obj/item/twohanded/spear icon_state = "spearglass0" @@ -752,12 +751,16 @@ armour_penetration = 100 force_on = 30 -/obj/item/twohanded/required/chainsaw/doomslayer/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(attack_type == PROJECTILE_ATTACK) +/obj/item/twohanded/required/chainsaw/doomslayer/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + block_return[BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE] = 100 + return ..() + +/obj/item/twohanded/required/chainsaw/doomslayer/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(attack_type & ATTACK_TYPE_PROJECTILE) owner.visible_message("Ranged attacks just make [owner] angrier!") playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) - return 1 - return 0 + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return ..() //GREY TIDE /obj/item/twohanded/spear/grey_tide @@ -897,19 +900,20 @@ AddComponent(/datum/component/butchering, 20, 105) AddElement(/datum/element/sword_point) -/obj/item/twohanded/vibro_weapon/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) +/obj/item/twohanded/vibro_weapon/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(wielded) final_block_chance *= 2 - if(wielded || attack_type != PROJECTILE_ATTACK) + if(wielded || !(attack_type & ATTACK_TYPE_PROJECTILE)) if(prob(final_block_chance)) - if(attack_type == PROJECTILE_ATTACK) + if(attack_type & ATTACK_TYPE_PROJECTILE) owner.visible_message("[owner] deflects [attack_text] with [src]!") playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, 1) - return 1 + block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT + return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT | BLOCK_PHYSICAL_EXTERNAL else owner.visible_message("[owner] parries [attack_text] with [src]!") - return 1 - return 0 + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return NONE /obj/item/twohanded/vibro_weapon/update_icon_state() icon_state = "hfrequency[wielded]" @@ -1055,11 +1059,9 @@ var/mob/living/silicon/robot/R = loc . = R.get_cell() -/obj/item/twohanded/electrostaff/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(!on) - return FALSE - if((attack_type == PROJECTILE_ATTACK) && !can_block_projectiles) - return FALSE +/obj/item/twohanded/electrostaff/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!on || (!can_block_projectiles && (attack_type & ATTACK_TYPE_PROJECTILE))) + return BLOCK_NONE return ..() /obj/item/twohanded/electrostaff/proc/min_hitcost() @@ -1180,7 +1182,7 @@ if(iscyborg(target)) ..() return - if(target.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) //No message; check_shields() handles that + if(target.run_block(src, 0, "[user]'s [name]", ATTACK_TYPE_MELEE, 0, user) & BLOCK_SUCCESS) //No message; run_block() handles that playsound(target, 'sound/weapons/genhit.ogg', 50, 1) return FALSE if(user.a_intent != INTENT_HARM) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index bc9c3255a6..8496a8a216 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -84,6 +84,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 name = "purified longsword" desc = "A hastily-purified longsword. While not as holy as it could be, it's still a formidable weapon against those who would rather see you dead." force = 25 + block_chance = 0 /obj/item/claymore/highlander //ALL COMMENTS MADE REGARDING THIS SWORD MUST BE MADE IN ALL CAPS desc = "THERE CAN BE ONLY ONE, AND IT WILL BE YOU!!!\nActivate it in your hand to point to the nearest victim." @@ -155,8 +156,10 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 return to_chat(user, "[src] thrums and points to the [dir2text(get_dir(user, closest_victim))].") -/obj/item/claymore/highlander/IsReflect() - return 1 //YOU THINK YOUR PUNY LASERS CAN STOP ME? +/obj/item/claymore/highlander/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if((attack_type & ATTACK_TYPE_PROJECTILE) && is_energy_reflectable_projectile(object)) + return BLOCK_SUCCESS | BLOCK_SHOULD_REDIRECT | BLOCK_PHYSICAL_EXTERNAL | BLOCK_REDIRECTED + return ..() /obj/item/claymore/highlander/proc/add_notch(mob/living/user) //DYNAMIC CLAYMORE PROGRESSION SYSTEM - THIS IS THE FUTURE notches++ @@ -498,7 +501,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 icon_state = "catwhip" /obj/item/melee/skateboard - name = "skateboard" + name = "improvised skateboard" desc = "A skateboard. It can be placed on its wheels and ridden, or used as a strong weapon." icon_state = "skateboard" item_state = "skateboard" @@ -506,11 +509,37 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 throwforce = 4 w_class = WEIGHT_CLASS_NORMAL attack_verb = list("smacked", "whacked", "slammed", "smashed") + ///The vehicle counterpart for the board + var/board_item_type = /obj/vehicle/ridden/scooter/skateboard /obj/item/melee/skateboard/attack_self(mob/user) - new /obj/vehicle/ridden/scooter/skateboard(get_turf(user)) + if(!user.canUseTopic(src, TRUE, FALSE, TRUE)) + return + var/obj/vehicle/ridden/scooter/skateboard/S = new board_item_type(get_turf(user)) + S.buckle_mob(user) qdel(src) +/obj/item/melee/skateboard/pro + name = "skateboard" + desc = "A RaDSTORMz brand professional skateboard. It looks sturdy and well made." + icon_state = "skateboard2" + item_state = "skateboard2" + board_item_type = /obj/vehicle/ridden/scooter/skateboard/pro + +/obj/item/melee/skateboard/hoverboard + name = "hoverboard" + desc = "A blast from the past, so retro!" + icon_state = "hoverboard_red" + item_state = "hoverboard_red" + board_item_type = /obj/vehicle/ridden/scooter/skateboard/hoverboard + +/obj/item/melee/skateboard/hoverboard/admin + name = "\improper Board Of Directors" + desc = "The engineering complexity of a spaceship concentrated inside of a board. Just as expensive, too." + icon_state = "hoverboard_nt" + item_state = "hoverboard_nt" + board_item_type = /obj/vehicle/ridden/scooter/skateboard/hoverboard/admin + /obj/item/melee/baseball_bat name = "baseball bat" desc = "There ain't a skull in the league that can withstand a swatter." @@ -581,14 +610,13 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 force = 12 throwforce = 15 -/obj/item/melee/baseball_bat/ablative/IsReflect()//some day this will reflect thrown items instead of lasers - var/picksound = rand(1,2) - var/turf = get_turf(src) - if(picksound == 1) - playsound(turf, 'sound/weapons/effects/batreflect1.ogg', 50, 1) - if(picksound == 2) - playsound(turf, 'sound/weapons/effects/batreflect2.ogg', 50, 1) - return 1 +/obj/item/melee/baseball_bat/ablative/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + //some day this will reflect thrown items instead of lasers + if(is_energy_reflectable_projectile(object) && (attack_type == ATTACK_TYPE_PROJECTILE)) + var/turf = get_turf(src) + playsound(turf, pick('sound/weapons/effects/batreflect1.ogg', 'sound/weapons/effects/batreflect2.ogg'), 50, 1) + return BLOCK_SUCCESS | BLOCK_SHOULD_REDIRECT | BLOCK_PHYSICAL_EXTERNAL | BLOCK_REDIRECTED + return ..() /obj/item/melee/baseball_bat/ablative/syndi name = "syndicate major league bat" diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 4eaa0b4e0a..d2d72193b7 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -213,9 +213,78 @@ /obj/vv_get_dropdown() . = ..() - .["Delete all of type"] = "?_src_=vars;[HrefToken()];delall=[REF(src)]" - .["Osay"] = "?_src_=vars;[HrefToken()];osay[REF(src)]" - .["Modify armor values"] = "?_src_=vars;[HrefToken()];modarmor=[REF(src)]" + VV_DROPDOWN_OPTION("", "---") + VV_DROPDOWN_OPTION(VV_HK_MASS_DEL_TYPE, "Delete all of type") + VV_DROPDOWN_OPTION(VV_HK_OSAY, "Object Say") + VV_DROPDOWN_OPTION(VV_HK_ARMOR_MOD, "Modify armor values") + +/obj/vv_do_topic(list/href_list) + if(!(. = ..())) + return + if(href_list[VV_HK_OSAY]) + if(check_rights(R_FUN, FALSE)) + usr.client.object_say(src) + if(href_list[VV_HK_ARMOR_MOD]) + var/list/pickerlist = list() + var/list/armorlist = armor.getList() + + for (var/i in armorlist) + pickerlist += list(list("value" = armorlist[i], "name" = i)) + + var/list/result = presentpicker(usr, "Modify armor", "Modify armor: [src]", Button1="Save", Button2 = "Cancel", Timeout=FALSE, inputtype = "text", values = pickerlist) + + if (islist(result)) + if (result["button"] != 2) // If the user pressed the cancel button + // text2num conveniently returns a null on invalid values + armor = armor.setRating(melee = text2num(result["values"]["melee"]),\ + bullet = text2num(result["values"]["bullet"]),\ + laser = text2num(result["values"]["laser"]),\ + energy = text2num(result["values"]["energy"]),\ + bomb = text2num(result["values"]["bomb"]),\ + bio = text2num(result["values"]["bio"]),\ + rad = text2num(result["values"]["rad"]),\ + fire = text2num(result["values"]["fire"]),\ + acid = text2num(result["values"]["acid"])) + log_admin("[key_name(usr)] modified the armor on [src] ([type]) to melee: [armor.melee], bullet: [armor.bullet], laser: [armor.laser], energy: [armor.energy], bomb: [armor.bomb], bio: [armor.bio], rad: [armor.rad], fire: [armor.fire], acid: [armor.acid]") + message_admins("[key_name_admin(usr)] modified the armor on [src] ([type]) to melee: [armor.melee], bullet: [armor.bullet], laser: [armor.laser], energy: [armor.energy], bomb: [armor.bomb], bio: [armor.bio], rad: [armor.rad], fire: [armor.fire], acid: [armor.acid]") + if(href_list[VV_HK_MASS_DEL_TYPE]) + if(check_rights(R_DEBUG|R_SERVER)) + var/action_type = alert("Strict type ([type]) or type and all subtypes?",,"Strict type","Type and subtypes","Cancel") + if(action_type == "Cancel" || !action_type) + return + + if(alert("Are you really sure you want to delete all objects of type [type]?",,"Yes","No") != "Yes") + return + + if(alert("Second confirmation required. Delete?",,"Yes","No") != "Yes") + return + + var/O_type = type + switch(action_type) + if("Strict type") + var/i = 0 + for(var/obj/Obj in world) + if(Obj.type == O_type) + i++ + qdel(Obj) + CHECK_TICK + if(!i) + to_chat(usr, "No objects of this type exist") + return + log_admin("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ") + message_admins("[key_name(usr)] deleted all objects of type [O_type] ([i] objects deleted) ") + if("Type and subtypes") + var/i = 0 + for(var/obj/Obj in world) + if(istype(Obj,O_type)) + i++ + qdel(Obj) + CHECK_TICK + if(!i) + to_chat(usr, "No objects of this type exist") + return + log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ") + message_admins("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ") /obj/examine(mob/user) . = ..() diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 06c1d96711..c593451c24 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -317,7 +317,7 @@ throwforce = 10 throw_range = 3 hitsound = 'sound/items/trayhit1.ogg' - hit_reaction_chance = 50 + block_chance = 50 custom_materials = list(/datum/material/iron = 2000) var/break_chance = 5 //Likely hood of smashing the chair. var/obj/structure/chair/origin_type = /obj/structure/chair @@ -362,18 +362,17 @@ new stack_type(get_turf(loc)) qdel(src) -/obj/item/chair/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(attack_type == UNARMED_ATTACK && prob(hit_reaction_chance)) - owner.visible_message("[owner] fends off [attack_text] with [src]!") - return 1 - return 0 +/obj/item/chair/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!(attack_type & ATTACK_TYPE_UNARMED)) + return NONE + return ..() /obj/item/chair/afterattack(atom/target, mob/living/carbon/user, proximity) . = ..() if(!proximity) return if(prob(break_chance)) - user.visible_message("[user] smashes \the [src] to pieces against \the [target]") + user.visible_message("[user] smashes [src] to pieces against [target]") if(iscarbon(target)) var/mob/living/carbon/C = target if(C.health < C.maxHealth*0.5) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 0991351102..57d7e08862 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -16,8 +16,8 @@ LINEN BINS throw_speed = 1 throw_range = 2 w_class = WEIGHT_CLASS_TINY - item_color = "white" resistance_flags = FLAMMABLE + dying_key = DYE_REGISTRY_BEDSHEET dog_fashion = /datum/dog_fashion/head/ghost var/list/dream_messages = list("white") @@ -52,79 +52,66 @@ LINEN BINS /obj/item/bedsheet/blue icon_state = "sheetblue" - item_color = "blue" dream_messages = list("blue") /obj/item/bedsheet/green icon_state = "sheetgreen" - item_color = "green" dream_messages = list("green") /obj/item/bedsheet/grey icon_state = "sheetgrey" - item_color = "grey" dream_messages = list("grey") /obj/item/bedsheet/orange icon_state = "sheetorange" - item_color = "orange" dream_messages = list("orange") /obj/item/bedsheet/purple icon_state = "sheetpurple" - item_color = "purple" dream_messages = list("purple") /obj/item/bedsheet/patriot name = "patriotic bedsheet" desc = "You've never felt more free than when sleeping on this." icon_state = "sheetUSA" - item_color = "sheetUSA" dream_messages = list("America", "freedom", "fireworks", "bald eagles") /obj/item/bedsheet/rainbow name = "rainbow bedsheet" desc = "A multicolored blanket. It's actually several different sheets cut up and sewn together." icon_state = "sheetrainbow" - item_color = "rainbow" dream_messages = list("red", "orange", "yellow", "green", "blue", "purple", "a rainbow") /obj/item/bedsheet/red icon_state = "sheetred" - item_color = "red" dream_messages = list("red") /obj/item/bedsheet/yellow icon_state = "sheetyellow" - item_color = "yellow" dream_messages = list("yellow") /obj/item/bedsheet/mime name = "mime's blanket" desc = "A very soothing striped blanket. All the noise just seems to fade out when you're under the covers in this." icon_state = "sheetmime" - item_color = "mime" dream_messages = list("silence", "gestures", "a pale face", "a gaping mouth", "the mime") /obj/item/bedsheet/clown name = "clown's blanket" desc = "A rainbow blanket with a clown mask woven in. It smells faintly of bananas." icon_state = "sheetclown" - item_color = "clown" dream_messages = list("honk", "laughter", "a prank", "a joke", "a smiling face", "the clown") /obj/item/bedsheet/captain name = "captain's bedsheet" desc = "It has a Nanotrasen symbol on it, and was woven with a revolutionary new kind of thread guaranteed to have 0.01% permeability for most non-chemical substances, popular among most modern captains." icon_state = "sheetcaptain" - item_color = "captain" dream_messages = list("authority", "a golden ID", "sunglasses", "a green disc", "an antique gun", "the captain") /obj/item/bedsheet/rd name = "research director's bedsheet" desc = "It appears to have a beaker emblem, and is made out of fire-resistant material, although it probably won't protect you in the event of fires you're familiar with every day." icon_state = "sheetrd" - item_color = "director" dream_messages = list("authority", "a silvery ID", "a bomb", "a mech", "a facehugger", "maniacal laughter", "the research director") // for Free Golems. @@ -137,111 +124,94 @@ LINEN BINS name = "medical blanket" desc = "It's a sterilized* blanket commonly used in the Medbay. *Sterilization is voided if a virologist is present onboard the station." icon_state = "sheetmedical" - item_color = "medical" dream_messages = list("healing", "life", "surgery", "a doctor") /obj/item/bedsheet/cmo name = "chief medical officer's bedsheet" desc = "It's a sterilized blanket that has a cross emblem. There's some cat fur on it, likely from Runtime." icon_state = "sheetcmo" - item_color = "cmo" dream_messages = list("authority", "a silvery ID", "healing", "life", "surgery", "a cat", "the chief medical officer") /obj/item/bedsheet/hos name = "head of security's bedsheet" desc = "It is decorated with a shield emblem. While crime doesn't sleep, you do, but you are still THE LAW!" icon_state = "sheethos" - item_color = "hosred" dream_messages = list("authority", "a silvery ID", "handcuffs", "a baton", "a flashbang", "sunglasses", "the head of security") /obj/item/bedsheet/hop name = "head of personnel's bedsheet" desc = "It is decorated with a key emblem. For those rare moments when you can rest and cuddle with Ian without someone screaming for you over the radio." icon_state = "sheethop" - item_color = "hop" dream_messages = list("authority", "a silvery ID", "obligation", "a computer", "an ID", "a corgi", "the head of personnel") /obj/item/bedsheet/ce name = "chief engineer's bedsheet" desc = "It is decorated with a wrench emblem. It's highly reflective and stain resistant, so you don't need to worry about ruining it with oil." icon_state = "sheetce" - item_color = "chief" dream_messages = list("authority", "a silvery ID", "the engine", "power tools", "an APC", "a parrot", "the chief engineer") /obj/item/bedsheet/qm name = "quartermaster's bedsheet" desc = "It is decorated with a crate emblem in silver lining. It's rather tough, and just the thing to lie on after a hard day of pushing paper." icon_state = "sheetqm" - item_color = "qm" dream_messages = list("a grey ID", "a shuttle", "a crate", "a sloth", "the quartermaster") /obj/item/bedsheet/brown icon_state = "sheetbrown" - item_color = "cargo" dream_messages = list("brown") /obj/item/bedsheet/black icon_state = "sheetblack" - item_color = "black" dream_messages = list("black") /obj/item/bedsheet/centcom name = "\improper CentCom bedsheet" desc = "Woven with advanced nanothread for warmth as well as being very decorated, essential for all officials." icon_state = "sheetcentcom" - item_color = "centcom" dream_messages = list("a unique ID", "authority", "artillery", "an ending") /obj/item/bedsheet/syndie name = "syndicate bedsheet" desc = "It has a syndicate emblem and it has an aura of evil." icon_state = "sheetsyndie" - item_color = "syndie" dream_messages = list("a green disc", "a red crystal", "a glowing blade", "a wire-covered ID") /obj/item/bedsheet/cult name = "cultist's bedsheet" desc = "You might dream of Nar'Sie if you sleep with this. It seems rather tattered and glows of an eldritch presence." icon_state = "sheetcult" - item_color = "cult" dream_messages = list("a tome", "a floating red crystal", "a glowing sword", "a bloody symbol", "a massive humanoid figure") /obj/item/bedsheet/wiz name = "wizard's bedsheet" desc = "A special fabric enchanted with magic so you can have an enchanted night. It even glows!" icon_state = "sheetwiz" - item_color = "wiz" dream_messages = list("a book", "an explosion", "lightning", "a staff", "a skeleton", "a robe", "magic") /obj/item/bedsheet/nanotrasen name = "nanotrasen bedsheet" desc = "It has the Nanotrasen logo on it and has an aura of duty." icon_state = "sheetNT" - item_color = "nanotrasen" dream_messages = list("authority", "an ending") /obj/item/bedsheet/ian icon_state = "sheetian" - item_color = "ian" dream_messages = list("a dog", "a corgi", "woof", "bark", "arf") /obj/item/bedsheet/runtime icon_state = "sheetruntime" - item_color = "runtime" dream_messages = list("a kitty", "a cat", "meow", "purr", "nya~") /obj/item/bedsheet/pirate name = "pirate's bedsheet" desc = "It has a Jolly Roger emblem on it and has a faint scent of grog." icon_state = "sheetpirate" - item_color = "black" dream_messages = list("doing whatever oneself wants", "cause a pirate is free", "being a pirate", "stealing", "landlubbers", "gold", "a buried treasure", "yarr", "avast", "a swashbuckler", "sailing the Seven Seas", "a parrot", "a monkey", "an island", "a talking skull") /obj/item/bedsheet/gondola name = "gondola bedsheet" desc = "A precious bedsheet made from the hide of a rare and peculiar critter." icon_state = "sheetgondola" - item_color = "cargo" var/g_mouth var/g_eyes @@ -252,7 +222,7 @@ LINEN BINS add_overlay(g_mouth) add_overlay(g_eyes) -/obj/item/bedsheet/gondola/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/bedsheet/gondola/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) . += mutable_appearance(icon_file, g_mouth) @@ -262,14 +232,12 @@ LINEN BINS name = "cosmic space bedsheet" desc = "Made from the dreams of those who wonder at the stars." icon_state = "sheetcosmos" - item_color = "cosmos" dream_messages = list("the infinite cosmos", "Hans Zimmer music", "a flight through space", "the galaxy", "being fabulous", "shooting stars") light_power = 2 light_range = 1.4 /obj/item/bedsheet/random icon_state = "random_bedsheet" - item_color = "rainbow" name = "random bedsheet" desc = "If you're reading this description ingame, something has gone wrong! Honk!" diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm index 5ec3851128..e51aeafdc1 100644 --- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm +++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm @@ -100,3 +100,12 @@ if(isliving(A)) to_chat(A, "You're suddenly forced into a tiny, compressed space!") qdel(src) + +/obj/structure/closet/body_bag/containment + name = "containment body bag" + desc = "A folded heavy body bag designed for the storage and transportation of cadavers with heavy radiation." + icon = 'icons/obj/bodybag.dmi' + icon_state = "radbodybag" + mob_storage_capacity = 1 + foldedbag_path = /obj/item/bodybag/containment + rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index b0dfec6318..2c977a34d6 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -179,6 +179,7 @@ desc = "A crate with a radiation sign on it." name = "radiation crate" icon_state = "radiation" + rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE /obj/structure/closet/crate/hydroponics name = "hydroponics crate" diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 79600d5bf2..ac6ea27821 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -243,6 +243,7 @@ //door.req_access = req_access door.electronics = electronics door.heat_proof = heat_proof_finished + door.security_level = 0 if(electronics.one_access) door.req_one_access = electronics.accesses else diff --git a/code/game/objects/structures/door_assembly_types.dm b/code/game/objects/structures/door_assembly_types.dm index 28d74422fc..fe9c4e7bbc 100644 --- a/code/game/objects/structures/door_assembly_types.dm +++ b/code/game/objects/structures/door_assembly_types.dm @@ -114,7 +114,7 @@ airlock_type = /obj/machinery/door/airlock/highsecurity noglass = TRUE material_type = /obj/item/stack/sheet/plasteel - material_amt = 6 + material_amt = 4 /obj/structure/door_assembly/door_assembly_vault name = "vault door assembly" @@ -124,7 +124,7 @@ airlock_type = /obj/machinery/door/airlock/vault noglass = TRUE material_type = /obj/item/stack/sheet/plasteel - material_amt = 8 + material_amt = 6 /obj/structure/door_assembly/door_assembly_shuttle name = "shuttle airlock assembly" diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 65145c0eed..c918e7b867 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -674,17 +674,14 @@ O.equip(new_spawn, FALSE, new_spawn.client) SSjob.equip_loadout(null, new_spawn, FALSE) SSquirks.AssignQuirks(new_spawn, new_spawn.client, TRUE, TRUE, null, FALSE, new_spawn) - new_spawn.AddElement(/datum/element/ghost_role_eligibility) + new_spawn.AddElement(/datum/element/ghost_role_eligibility, free_ghosting = TRUE) new_spawn.AddElement(/datum/element/dusts_on_catatonia) new_spawn.AddElement(/datum/element/dusts_on_leaving_area,list(A.type,/area/hilbertshotel)) ADD_TRAIT(new_spawn, TRAIT_SIXTHSENSE, GHOSTROLE_TRAIT) ADD_TRAIT(new_spawn, TRAIT_EXEMPT_HEALTH_EVENTS, GHOSTROLE_TRAIT) - ADD_TRAIT(new_spawn, TRAIT_NO_MIDROUND_ANTAG, GHOSTROLE_TRAIT) //The mob can't be made into a random antag, they are still elegible for ghost roles popups. + ADD_TRAIT(new_spawn, TRAIT_NO_MIDROUND_ANTAG, GHOSTROLE_TRAIT) //The mob can't be made into a random antag, they are still eligible for ghost roles popups. ADD_TRAIT(new_spawn, TRAIT_PACIFISM, GHOSTROLE_TRAIT) - to_chat(new_spawn,"You may be sharing your cafe with some ninja-captured individuals, so make sure to only interact with the ghosts you hear as a ghost!") - to_chat(new_spawn,"You can turn yourself into a ghost and freely reenter your body with the ghost action.") - var/datum/action/ghost/G = new(new_spawn) - G.Grant(new_spawn) + to_chat(new_spawn,"Ghosting is free!") var/datum/action/toggle_dead_chat_mob/D = new(new_spawn) D.Grant(new_spawn) diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm deleted file mode 100644 index bba51035fe..0000000000 --- a/code/game/objects/structures/musician.dm +++ /dev/null @@ -1,383 +0,0 @@ - -#define MUSICIAN_HEARCHECK_MINDELAY 4 -#define MUSIC_MAXLINES 600 -#define MUSIC_MAXLINECHARS 150 - -/datum/song - var/name = "Untitled" - var/list/lines = new() - var/tempo = 5 // delay between notes - - var/playing = 0 // if we're playing - var/help = 0 // if help is open - var/edit = 1 // if we're in editing mode - var/repeat = 0 // number of times remaining to repeat - var/max_repeats = 10 // maximum times we can repeat - - var/instrumentDir = "piano" // the folder with the sounds - var/instrumentExt = "ogg" // the file extension - var/obj/instrumentObj = null // the associated obj playing the sound - var/last_hearcheck = 0 - var/list/hearing_mobs - -/datum/song/New(dir, obj, ext = "ogg") - tempo = sanitize_tempo(tempo) - instrumentDir = dir - instrumentObj = obj - instrumentExt = ext - -/datum/song/Destroy() - instrumentObj = null - return ..() - -// note is a number from 1-7 for A-G -// acc is either "b", "n", or "#" -// oct is 1-8 (or 9 for C) -/datum/song/proc/playnote(note, acc as text, oct) - // handle accidental -> B<>C of E<>F - if(acc == "b" && (note == 3 || note == 6)) // C or F - if(note == 3) - oct-- - note-- - acc = "n" - else if(acc == "#" && (note == 2 || note == 5)) // B or E - if(note == 2) - oct++ - note++ - acc = "n" - else if(acc == "#" && (note == 7)) //G# - note = 1 - acc = "b" - else if(acc == "#") // mass convert all sharps to flats, octave jump already handled - acc = "b" - note++ - - // check octave, C is allowed to go to 9 - if(oct < 1 || (note == 3 ? oct > 9 : oct > 8)) - return - - // now generate name - var/soundfile = "sound/instruments/[instrumentDir]/[ascii2text(note+64)][acc][oct].[instrumentExt]" - soundfile = file(soundfile) - // make sure the note exists - if(!fexists(soundfile)) - return - // and play - var/turf/source = get_turf(instrumentObj) - if((world.time - MUSICIAN_HEARCHECK_MINDELAY) > last_hearcheck) - LAZYCLEARLIST(hearing_mobs) - for(var/mob/M in get_hearers_in_view(15, source)) - if(!M.client || !(M.client.prefs.toggles & SOUND_INSTRUMENTS)) - continue - LAZYADD(hearing_mobs, M) - last_hearcheck = world.time - - var/sound/music_played = sound(soundfile) - for(var/i in hearing_mobs) - var/mob/M = i - M.playsound_local(source, null, 100, falloff = 5, S = music_played) - -/datum/song/proc/updateDialog(mob/user) - instrumentObj.updateDialog() // assumes it's an object in world, override if otherwise - -/datum/song/proc/shouldStopPlaying(mob/user) - if(instrumentObj) - if(!user.canUseTopic(instrumentObj, TRUE, FALSE, FALSE, FALSE)) - return TRUE - return !instrumentObj.anchored // add special cases to stop in subclasses - else - return TRUE - -/datum/song/proc/playsong(mob/user) - while(repeat >= 0) - var/cur_oct[7] - var/cur_acc[7] - for(var/i = 1 to 7) - cur_oct[i] = 3 - cur_acc[i] = "n" - - for(var/line in lines) - for(var/beat in splittext(lowertext(line), ",")) - var/list/notes = splittext(beat, "/") - for(var/note in splittext(notes[1], "-")) - if(!playing || shouldStopPlaying(user))//If the instrument is playing, or special case - playing = FALSE - hearing_mobs = null - return - if(!length(note)) - continue - var/cur_note = text2ascii(note) - 96 - if(cur_note < 1 || cur_note > 7) - continue - var/notelen = length(note) - var/ni = "" - for(var/i = length(note[1]) + 1, i <= notelen, i += length(ni)) - ni = note[i] - if(!text2num(ni)) - if(ni == "#" || ni == "b" || ni == "n") - cur_acc[cur_note] = ni - else if(ni == "s") - cur_acc[cur_note] = "#" // so shift is never required - else - cur_oct[cur_note] = text2num(ni) - if(user.dizziness > 0 && prob(user.dizziness / 2)) - cur_note = CLAMP(cur_note + rand(round(-user.dizziness / 10), round(user.dizziness / 10)), 1, 7) - if(user.dizziness > 0 && prob(user.dizziness / 5)) - if(prob(30)) - cur_acc[cur_note] = "#" - else if(prob(42)) - cur_acc[cur_note] = "b" - else if(prob(75)) - cur_acc[cur_note] = "n" - playnote(cur_note, cur_acc[cur_note], cur_oct[cur_note]) - if(notes.len >= 2 && text2num(notes[2])) - sleep(sanitize_tempo(tempo / text2num(notes[2]))) - else - sleep(tempo) - repeat-- - hearing_mobs = null - playing = FALSE - repeat = 0 - updateDialog(user) - -/datum/song/proc/interact(mob/user) - var/dat = "" - - if(lines.len > 0) - dat += "

    Playback

    " - if(!playing) - dat += "Play Stop

    " - dat += "Repeat Song: " - dat += repeat > 0 ? "--" : "--" - dat += " [repeat] times " - dat += repeat < max_repeats ? "++" : "++" - dat += "
    " - else - dat += "Play Stop
    " - dat += "Repeats left: [repeat]
    " - if(!edit) - dat += "
    Show Editor
    " - else - dat += "

    Editing

    " - dat += "Hide Editor" - dat += " Start a New Song" - dat += " Import a Song

    " - var/bpm = round(600 / tempo) - dat += "Tempo: - [bpm] BPM +

    " - var/linecount = 0 - for(var/line in lines) - linecount += 1 - dat += "Line [linecount]: Edit X [line]
    " - dat += "Add Line

    " - if(help) - dat += "Hide Help
    " - dat += {" - Lines are a series of chords, separated by commas (,), each with notes separated by hyphens (-).
    - Every note in a chord will play together, with chord timed by the tempo.
    -
    - Notes are played by the names of the note, and optionally, the accidental, and/or the octave number.
    - By default, every note is natural and in octave 3. Defining otherwise is remembered for each note.
    - Example: C,D,E,F,G,A,B will play a C major scale.
    - After a note has an accidental placed, it will be remembered: C,C4,C,C3 is C3,C4,C4,C3
    - Chords can be played simply by seperating each note with a hyphon: A-C#,Cn-E,E-G#,Gn-B
    - A pause may be denoted by an empty chord: C,E,,C,G
    - To make a chord be a different time, end it with /x, where the chord length will be length
    - defined by tempo / x: C,G/2,E/4
    - Combined, an example is: E-E4/4,F#/2,G#/8,B/8,E3-E4/4 -
    - Lines may be up to [MUSIC_MAXLINECHARS] characters.
    - A song may only contain up to [MUSIC_MAXLINES] lines.
    - "} - else - dat += "Show Help
    " - - var/datum/browser/popup = new(user, "instrument", instrumentObj.name, 700, 500) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(instrumentObj.icon, instrumentObj.icon_state)) - popup.open() - -/datum/song/proc/ParseSong(text) - set waitfor = FALSE - //split into lines - lines = splittext(text, "\n") - if(lines.len) - var/bpm_string = "BPM: " - if(findtext(lines[1], bpm_string, 1, length(bpm_string) + 1)) - var/divisor = text2num(copytext(lines[1], length(bpm_string) + 1)) || 120 // default - tempo = sanitize_tempo(600 / round(divisor, 1)) - lines.Cut(1, 2) - else - tempo = sanitize_tempo(5) // default 120 BPM - if(lines.len > MUSIC_MAXLINES) - to_chat(usr, "Too many lines!") - lines.Cut(MUSIC_MAXLINES + 1) - var/linenum = 1 - for(var/l in lines) - if(length_char(l) > MUSIC_MAXLINECHARS) - to_chat(usr, "Line [linenum] too long!") - lines.Remove(l) - else - linenum++ - updateDialog(usr) // make sure updates when complete - -/datum/song/Topic(href, href_list) - if(!usr.canUseTopic(instrumentObj, TRUE, FALSE, FALSE, FALSE)) - usr << browse(null, "window=instrument") - usr.unset_machine() - return - - instrumentObj.add_fingerprint(usr) - - if(href_list["newsong"]) - lines = new() - tempo = sanitize_tempo(5) // default 120 BPM - name = "" - - else if(href_list["import"]) - var/t = "" - do - t = html_encode(input(usr, "Please paste the entire song, formatted:", text("[]", name), t) as message) - if(!in_range(instrumentObj, usr)) - return - - if(length_char(t) >= MUSIC_MAXLINES * MUSIC_MAXLINECHARS) - var/cont = input(usr, "Your message is too long! Would you like to continue editing it?", "", "yes") in list("yes", "no") - if(cont == "no") - break - while(length_char(t) > MUSIC_MAXLINES * MUSIC_MAXLINECHARS) - ParseSong(t) - - else if(href_list["help"]) - help = text2num(href_list["help"]) - 1 - - else if(href_list["edit"]) - edit = text2num(href_list["edit"]) - 1 - - if(href_list["repeat"]) //Changing this from a toggle to a number of repeats to avoid infinite loops. - if(playing) - return //So that people cant keep adding to repeat. If the do it intentionally, it could result in the server crashing. - repeat += round(text2num(href_list["repeat"])) - if(repeat < 0) - repeat = 0 - if(repeat > max_repeats) - repeat = max_repeats - - else if(href_list["tempo"]) - tempo = sanitize_tempo(tempo + text2num(href_list["tempo"])) - - else if(href_list["play"]) - playing = TRUE - spawn() - playsong(usr) - - else if(href_list["newline"]) - var/newline = html_encode(input("Enter your line: ", instrumentObj.name) as text|null) - if(!newline || !in_range(instrumentObj, usr)) - return - if(lines.len > MUSIC_MAXLINES) - return - if(length(newline) > MUSIC_MAXLINECHARS) - newline = copytext(newline, 1, MUSIC_MAXLINECHARS) - lines.Add(newline) - - else if(href_list["deleteline"]) - var/num = round(text2num(href_list["deleteline"])) - if(num > lines.len || num < 1) - return - lines.Cut(num, num+1) - - else if(href_list["modifyline"]) - var/num = round(text2num(href_list["modifyline"]),1) - var/content = stripped_input(usr, "Enter your line: ", instrumentObj.name, lines[num], MUSIC_MAXLINECHARS) - if(!content || !in_range(instrumentObj, usr)) - return - if(num > lines.len || num < 1) - return - lines[num] = content - - else if(href_list["stop"]) - playing = FALSE - hearing_mobs = null - - updateDialog(usr) - return - -/datum/song/proc/sanitize_tempo(new_tempo) - new_tempo = abs(new_tempo) - return max(round(new_tempo, world.tick_lag), world.tick_lag) - -// subclass for handheld instruments, like violin -/datum/song/handheld - -/datum/song/handheld/updateDialog(mob/user) - instrumentObj.interact(user) - -/datum/song/handheld/shouldStopPlaying() - if(instrumentObj) - return !isliving(instrumentObj.loc) - else - return TRUE - - -////////////////////////////////////////////////////////////////////////// - - -/obj/structure/piano - name = "space minimoog" - icon = 'icons/obj/musician.dmi' - icon_state = "minimoog" - anchored = TRUE - density = TRUE - var/datum/song/song - -/obj/structure/piano/unanchored - anchored = FALSE - -/obj/structure/piano/New() - ..() - song = new("piano", src) - - if(prob(50) && icon_state == initial(icon_state)) - name = "space minimoog" - desc = "This is a minimoog, like a space piano, but more spacey!" - icon_state = "minimoog" - else - name = "space piano" - desc = "This is a space piano, like a regular piano, but always in tune! Even if the musician isn't." - icon_state = "piano" - -/obj/structure/piano/Destroy() - qdel(song) - song = null - return ..() - -/obj/structure/piano/Initialize(mapload) - . = ..() - if(mapload) - song.tempo = song.sanitize_tempo(song.tempo) // tick_lag isn't set when the map is loaded - -/obj/structure/piano/attack_hand(mob/user) - . = ..() - if(.) - return - interact(user) - -/obj/structure/piano/attack_paw(mob/user) - return attack_hand(user) - -/obj/structure/piano/interact(mob/user) - ui_interact(user) - -/obj/structure/piano/ui_interact(mob/user) - if(!user || !anchored) - return - - if(!user.IsAdvancedToolUser()) - to_chat(user, "You don't have the dexterity to do this!") - return 1 - user.set_machine(src) - song.interact(user) - -/obj/structure/piano/wrench_act(mob/living/user, obj/item/I) - default_unfasten_wrench(user, I, 40) - return TRUE diff --git a/code/game/objects/structures/signs/signs_departments.dm b/code/game/objects/structures/signs/signs_departments.dm index 12932bbab6..b4fd823e76 100644 --- a/code/game/objects/structures/signs/signs_departments.dm +++ b/code/game/objects/structures/signs/signs_departments.dm @@ -60,6 +60,11 @@ desc = "A sign labelling a restroom." icon_state = "restroom" +/obj/structure/sign/departments/showers + name ="\improper SHOWER" + desc = "A sign labelling showers." + icon_state = "showerroom" + /obj/structure/sign/departments/medbay name = "\improper MEDBAY" desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here." diff --git a/code/game/objects/structures/signs/signs_maps.dm b/code/game/objects/structures/signs/signs_maps.dm index 1e3bfd6d36..ee29ef7443 100644 --- a/code/game/objects/structures/signs/signs_maps.dm +++ b/code/game/objects/structures/signs/signs_maps.dm @@ -55,3 +55,18 @@ name = "cafe" desc = "A direction sign, pointing out which way the Cafe is." icon_state = "direction_cafe" + +obj/structure/sign/directions/rooms + name = "room" + desc = "Room numbers, helps others find you!" + icon_state = "roomnum" + +obj/structure/sign/directions/dorms + name = "dorm" + desc = "Dorm numbers, help others find you, or you find others." + icon_state = "dormnum" + +obj/structure/sign/directions/cells + name = "room" + desc = "So the less fortunate amongst us know where they'll be staying." + icon_state = "cellnum" diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 5f806e7fc4..892d85cd6e 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -12,13 +12,11 @@ var/w_items = 0 //the combined w_class of all the items in the cistern var/mob/living/swirlie = null //the mob being given a swirlie - /obj/structure/toilet/Initialize() . = ..() open = round(rand(0, 1)) update_icon() - /obj/structure/toilet/attack_hand(mob/living/user) . = ..() if(.) @@ -71,11 +69,9 @@ open = !open update_icon() - /obj/structure/toilet/update_icon_state() icon_state = "toilet[open][cistern]" - /obj/structure/toilet/attackby(obj/item/I, mob/living/user, params) if(istype(I, /obj/item/crowbar)) to_chat(user, "You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]...") @@ -116,12 +112,17 @@ . = ..() if (secret_type) secret = new secret_type(src) - secret.desc += " It's a secret!" - w_items += secret.w_class + secret.desc += "" //In case you want to add something to the item that spawns contents += secret +/obj/structure/toilet/secret/low_loot + secret_type = /obj/effect/spawner/lootdrop/low_loot_toilet +/obj/structure/toilet/secret/high_loot + secret_type = /obj/effect/spawner/lootdrop/high_loot_toilet +/obj/structure/toilet/secret/prison + secret_type = /obj/effect/spawner/lootdrop/prison_loot_toilet /obj/structure/urinal name = "urinal" @@ -194,7 +195,6 @@ exposed = !exposed return TRUE - /obj/item/reagent_containers/food/urinalcake name = "urinal cake" desc = "The noble urinal cake, protecting the station's pipes from the station's pee. Do not eat." @@ -278,7 +278,6 @@ add_hiddenprint(user) return TRUE - /obj/machinery/shower/update_overlays() . = ..() if(on) @@ -315,7 +314,6 @@ else if(isobj(AM)) wash_obj(AM) - /obj/machinery/shower/proc/wash_obj(obj/O) . = SEND_SIGNAL(O, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK) . = O.clean_blood() @@ -325,7 +323,6 @@ I.acid_level = 0 I.extinguish() - /obj/machinery/shower/proc/wash_turf() if(isturf(loc)) var/turf/tile = loc @@ -336,7 +333,6 @@ if(is_cleanable(E)) qdel(E) - /obj/machinery/shower/proc/wash_mob(mob/living/L) SEND_SIGNAL(L, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK) L.wash_cream() @@ -667,11 +663,9 @@ /obj/structure/sink/puddle/deconstruct(disassembled = TRUE) qdel(src) - //Shower Curtains// //Defines used are pre-existing in layers.dm// - /obj/structure/curtain name = "curtain" desc = "Contains less than 1% mercury." @@ -727,7 +721,6 @@ return TRUE - /obj/structure/curtain/attack_hand(mob/user) . = ..() if(.) diff --git a/code/game/sound.dm b/code/game/sound.dm index c285026d5b..577b058178 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -8,7 +8,7 @@ return //allocate a channel if necessary now so its the same for everyone - channel = channel || open_sound_channel() + channel = channel || SSsounds.random_available_channel() // Looping through the player list has the added bonus of working for mobs inside containers var/sound/S = sound(get_sfx(soundin)) @@ -26,10 +26,10 @@ if(get_dist(M, turf_source) <= maxdistance) M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, channel, pressure_affected, S, soundenvwet, soundenvdry) -/mob/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, channel = 0, pressure_affected = TRUE, sound/S, envwet = -10000, envdry = 0, manual_x, manual_y) +/mob/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, channel = 0, pressure_affected = TRUE, sound/S, envwet = -10000, envdry = 0, manual_x, manual_y, distance_multiplier = 1) if(audiovisual_redirect) var/turf/T = get_turf(src) - audiovisual_redirect.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, channel, pressure_affected, S, 0, -1000, turf_source.x - T.x, turf_source.y - T.y) + audiovisual_redirect.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, channel, pressure_affected, S, 0, -1000, turf_source.x - T.x, turf_source.y - T.y, distance_multiplier) if(!client || !can_hear()) return @@ -37,7 +37,7 @@ S = sound(get_sfx(soundin)) S.wait = 0 //No queue - S.channel = channel || open_sound_channel() + S.channel = channel || SSsounds.random_available_channel() S.volume = vol S.environment = 7 @@ -55,6 +55,8 @@ if(!manual_x && !manual_y) distance = get_dist(T, turf_source) + distance *= distance_multiplier + S.volume -= max(distance - world.view, 0) * 2 //multiplicative falloff to add on top of natural audio falloff. if(pressure_affected) @@ -86,13 +88,13 @@ dx = turf_source.x - T.x else dx = manual_x - S.x = dx + S.x = dx * distance_multiplier var/dz = 0 // Hearing from infront/behind if(!manual_x) dz = turf_source.y - T.y else dz = manual_y - S.z = dz + S.z = dz * distance_multiplier // The y value is for above your head, but there is no ceiling in 2d spessmens. S.y = 1 S.falloff = (falloff ? falloff : FALLOFF_SOUNDS) @@ -107,15 +109,14 @@ var/mob/M = m M.playsound_local(M, null, volume, vary, frequency, falloff, channel, pressure_affected, S) -/proc/open_sound_channel() - var/static/next_channel = 1 //loop through the available 1024 - (the ones we reserve) channels and pray that its not still being used - . = ++next_channel - if(next_channel > CHANNEL_HIGHEST_AVAILABLE) - next_channel = 1 - /mob/proc/stop_sound_channel(chan) SEND_SOUND(src, sound(null, repeat = 0, wait = 0, channel = chan)) +/mob/proc/set_sound_channel_volume(channel, volume) + var/sound/S = sound(null, FALSE, FALSE, channel, volume) + S.status = SOUND_UPDATE + SEND_SOUND(src, S) + /client/proc/playtitlemusic(vol = 85) set waitfor = FALSE UNTIL(SSticker.login_music) //wait for SSticker init to set the login music diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index f75772a230..f6e70f8ef5 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -260,3 +260,10 @@ icon = 'icons/obj/clockwork_objects.dmi' icon_state = "clockwork_floor" floor_tile = /obj/item/stack/tile/bronze + +/turf/open/floor/padded + name = "padded floor" + desc = "Keeps crazy people from hurting themselves. It's soft, plush, and very nice to get shoved agaisnt." + icon = 'icons/turf/floors.dmi' + icon_state = "floor_padded" + floor_tile = /obj/item/stack/tile/padded diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm index a3a92e7898..af48160ef1 100644 --- a/code/game/turfs/simulated/floor/plasteel_floor.dm +++ b/code/game/turfs/simulated/floor/plasteel_floor.dm @@ -68,6 +68,9 @@ /turf/open/floor/plasteel/chapel icon_state = "chapel" +/turf/open/floor/plasteel/chapel_floor + icon_state = "chapel_alt" + /turf/open/floor/plasteel/showroomfloor icon_state = "showroomfloor" diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index c61ac8972c..7e1b39cb39 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -173,6 +173,16 @@ /turf/closed/mineral/silver = 12, /turf/closed/mineral/plasma = 20, /turf/closed/mineral/iron = 40, /turf/closed/mineral/titanium = 11, /turf/closed/mineral/gibtonite = 4, /turf/closed/mineral/bscrystal = 1) +/turf/closed/mineral/random/no_caves/earth_like + icon_state = "rock_oxy" + turf_type = /turf/open/floor/plating/asteroid + baseturfs = /turf/open/floor/plating/asteroid + mineralSpawnChanceList = list(/turf/closed/mineral/uranium/earth_like = 5, /turf/closed/mineral/diamond/earth_like = 1, /turf/closed/mineral/gold/earth_like = 10, + /turf/closed/mineral/silver/earth_like = 12, /turf/closed/mineral/plasma/earth_like = 20, /turf/closed/mineral/iron/earth_like = 40, + /turf/closed/mineral/titanium/earth_like = 11, /turf/closed/mineral/gibtonite/earth_like = 4, /turf/closed/mineral/bscrystal/earth_like = 1) + initial_gas_mix = OPENTURF_DEFAULT_ATMOS + defer_change = TRUE + /turf/closed/mineral/random/high_chance icon_state = "rock_highchance" mineralChance = 25 @@ -194,6 +204,10 @@ icon_state = "rock_highchance_oxy" turf_type = /turf/open/floor/plating/asteroid baseturfs = /turf/open/floor/plating/asteroid + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/earth_like = 35, /turf/closed/mineral/diamond/earth_like = 30, /turf/closed/mineral/gold/earth_like = 45, + /turf/closed/mineral/titanium/earth_like = 45, /turf/closed/mineral/silver/earth_like = 50, /turf/closed/mineral/plasma/earth_like = 50, + /turf/closed/mineral/bscrystal/earth_like = 20) initial_gas_mix = OPENTURF_DEFAULT_ATMOS defer_change = TRUE @@ -211,6 +225,10 @@ turf_type = /turf/open/floor/plating/asteroid baseturfs = /turf/open/floor/plating/asteroid initial_gas_mix = OPENTURF_DEFAULT_ATMOS + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/earth_like = 2, /turf/closed/mineral/diamond/earth_like = 1, /turf/closed/mineral/gold/earth_like = 4, + /turf/closed/mineral/titanium/earth_like = 4, /turf/closed/mineral/silver/earth_like = 6, /turf/closed/mineral/plasma/earth_like = 15, + /turf/closed/mineral/iron/earth_like = 40, /turf/closed/mineral/gibtonite/earth_like = 2, /turf/closed/mineral/bscrystal/earth_like = 1) defer_change = TRUE /turf/closed/mineral/random/volcanic @@ -246,13 +264,6 @@ /turf/closed/mineral/silver/volcanic = 20, /turf/closed/mineral/plasma/volcanic = 30, /turf/closed/mineral/bscrystal/volcanic = 1, /turf/closed/mineral/gibtonite/volcanic = 2, /turf/closed/mineral/iron/volcanic = 95) -/turf/closed/mineral/random/earth_like - icon_state = "rock_oxy" - turf_type = /turf/open/floor/plating/asteroid - baseturfs = /turf/open/floor/plating/asteroid - initial_gas_mix = OPENTURF_DEFAULT_ATMOS - defer_change = TRUE - /turf/closed/mineral/iron mineralType = /obj/item/stack/ore/iron @@ -624,3 +635,10 @@ baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS defer_change = 1 + +/turf/closed/mineral/gibtonite/earth_like + icon_state = "rock_oxy" + turf_type = /turf/open/floor/plating/asteroid + baseturfs = /turf/open/floor/plating/asteroid + initial_gas_mix = OPENTURF_DEFAULT_ATMOS + defer_change = TRUE diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 3ccd113864..cbd429af5c 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -74,6 +74,7 @@ GLOBAL_PROTECT(admin_verbs_admin) /client/proc/addbunkerbypass, /client/proc/revokebunkerbypass, /client/proc/stop_sounds, + /client/proc/mark_datum_mapview, /client/proc/hide_verbs, /*hides all our adminverbs*/ /client/proc/hide_most_verbs, /*hides all our hideable adminverbs*/ /datum/admins/proc/open_borgopanel diff --git a/code/modules/admin/callproc/callproc.dm b/code/modules/admin/callproc/callproc.dm new file mode 100644 index 0000000000..3de5e39ff4 --- /dev/null +++ b/code/modules/admin/callproc/callproc.dm @@ -0,0 +1,208 @@ + +/client/proc/callproc() + set category = "Debug" + set name = "Advanced ProcCall" + set waitfor = FALSE + callproc_blocking() + +/client/proc/callproc_blocking(list/get_retval) + if(!check_rights(R_DEBUG)) + return + + var/datum/target + var/targetselected = FALSE + var/returnval + + switch(alert("Proc owned by something?",,"Yes","No")) + if("Yes") + targetselected = TRUE + var/list/value = vv_get_value(default_class = VV_ATOM_REFERENCE, classes = list(VV_ATOM_REFERENCE, VV_DATUM_REFERENCE, VV_MOB_REFERENCE, VV_CLIENT, VV_MARKED_DATUM, VV_TEXT_LOCATE, VV_PROCCALL_RETVAL)) + if (!value["class"] || !value["value"]) + return + target = value["value"] + if(!istype(target)) + to_chat(usr, "Invalid target.") + return + if("No") + target = null + targetselected = FALSE + + var/procpath = input("Proc path, eg: /proc/fake_blood","Path:", null) as text|null + if(!procpath) + return + + //strip away everything but the proc name + var/list/proclist = splittext(procpath, "/") + if (!length(proclist)) + return + + var/procname = proclist[proclist.len] + var/proctype = ("verb" in proclist) ? "verb" :"proc" + + if(targetselected) + if(!hascall(target, procname)) + to_chat(usr, "Error: callproc(): type [target.type] has no [proctype] named [procpath].") + return + else + procpath = "/[proctype]/[procname]" + if(!text2path(procpath)) + to_chat(usr, "Error: callproc(): [procpath] does not exist.") + return + + var/list/lst = get_callproc_args() + if(!lst) + return + + if(targetselected) + if(!target) + to_chat(usr, "Error: callproc(): owner of proc no longer exists.") + return + var/msg = "[key_name(src)] called [target]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]." + log_admin(msg) + message_admins(msg) //Proccall announce removed. + admin_ticket_log(target, msg) + returnval = WrapAdminProcCall(target, procname, lst) // Pass the lst as an argument list to the proc + else + //this currently has no hascall protection. wasn't able to get it working. + log_admin("[key_name(src)] called [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") + message_admins("[key_name(src)] called [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"].") //Proccall announce removed. + returnval = WrapAdminProcCall(GLOBAL_PROC, procname, lst) // Pass the lst as an argument list to the proc + SSblackbox.record_feedback("tally", "admin_verb", 1, "Advanced ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + if(get_retval) + get_retval += returnval + . = get_callproc_returnval(returnval, procname) + if(.) + to_chat(usr, .) + +GLOBAL_VAR(AdminProcCaller) +GLOBAL_PROTECT(AdminProcCaller) +GLOBAL_VAR_INIT(AdminProcCallCount, 0) +GLOBAL_PROTECT(AdminProcCallCount) +GLOBAL_VAR(LastAdminCalledTargetRef) +GLOBAL_PROTECT(LastAdminCalledTargetRef) +GLOBAL_VAR(LastAdminCalledTarget) +GLOBAL_PROTECT(LastAdminCalledTarget) +GLOBAL_VAR(LastAdminCalledProc) +GLOBAL_PROTECT(LastAdminCalledProc) +GLOBAL_LIST_EMPTY(AdminProcCallSpamPrevention) +GLOBAL_PROTECT(AdminProcCallSpamPrevention) + +/proc/WrapAdminProcCall(datum/target, procname, list/arguments) + if(target != GLOBAL_PROC && procname == "Del") + to_chat(usr, "Calling Del() is not allowed") + return + + if(target != GLOBAL_PROC && !target.CanProcCall(procname)) + to_chat(usr, "Proccall on [target.type]/proc/[procname] is disallowed!") + return + var/current_caller = GLOB.AdminProcCaller + var/ckey = usr ? usr.client.ckey : GLOB.AdminProcCaller + if(!ckey) + CRASH("WrapAdminProcCall with no ckey: [target] [procname] [english_list(arguments)]") + if(current_caller && current_caller != ckey) + if(!GLOB.AdminProcCallSpamPrevention[ckey]) + to_chat(usr, "Another set of admin called procs are still running, your proc will be run after theirs finish.") + GLOB.AdminProcCallSpamPrevention[ckey] = TRUE + UNTIL(!GLOB.AdminProcCaller) + to_chat(usr, "Running your proc") + GLOB.AdminProcCallSpamPrevention -= ckey + else + UNTIL(!GLOB.AdminProcCaller) + GLOB.LastAdminCalledProc = procname + if(target != GLOBAL_PROC) + GLOB.LastAdminCalledTargetRef = "[REF(target)]" + GLOB.AdminProcCaller = ckey //if this runtimes, too bad for you + ++GLOB.AdminProcCallCount + . = world.WrapAdminProcCall(target, procname, arguments) + if(--GLOB.AdminProcCallCount == 0) + GLOB.AdminProcCaller = null + +//adv proc call this, ya nerds +/world/proc/WrapAdminProcCall(datum/target, procname, list/arguments) + if(target == GLOBAL_PROC) + return call(procname)(arglist(arguments)) + else if(target != world) + return call(target, procname)(arglist(arguments)) + else + log_admin_private("[key_name(usr)] attempted to call world/proc/[procname] with arguments: [english_list(arguments)]") + +/proc/IsAdminAdvancedProcCall() +#ifdef TESTING + return FALSE +#else + return usr && usr.client && GLOB.AdminProcCaller == usr.client.ckey +#endif + +/client/proc/callproc_datum(datum/A as null|area|mob|obj|turf) + set category = "Debug" + set name = "Atom ProcCall" + set waitfor = FALSE + + if(!check_rights(R_DEBUG)) + return + + var/procname = input("Proc name, eg: fake_blood","Proc:", null) as text|null + if(!procname) + return + if(!hascall(A,procname)) + to_chat(usr, "Error: callproc_datum(): type [A.type] has no proc named [procname].") + return + var/list/lst = get_callproc_args() + if(!lst) + return + + if(!A || !IsValidSrc(A)) + to_chat(usr, "Error: callproc_datum(): owner of proc no longer exists.") + return + var/msg = "[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]." + log_admin(msg) + message_admins(msg) + admin_ticket_log(A, msg) + SSblackbox.record_feedback("tally", "admin_verb", 1, "Atom ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + var/returnval = WrapAdminProcCall(A, procname, lst) // Pass the lst as an argument list to the proc + . = get_callproc_returnval(returnval,procname) + if(.) + to_chat(usr, .) + +/client/proc/get_callproc_args() + var/argnum = input("Number of arguments","Number:",0) as num|null + if(isnull(argnum)) + return + + . = list() + var/list/named_args = list() + while(argnum--) + var/named_arg = input("Leave blank for positional argument. Positional arguments will be considered as if they were added first.", "Named argument") as text|null + var/value = vv_get_value(restricted_classes = list(VV_RESTORE_DEFAULT)) + if (!value["class"]) + return + if(named_arg) + named_args[named_arg] = value["value"] + else + . += value["value"] + if(LAZYLEN(named_args)) + . += named_args + +/client/proc/get_callproc_returnval(returnval,procname) + . = "" + if(islist(returnval)) + var/list/returnedlist = returnval + . = "" + if(returnedlist.len) + var/assoc_check = returnedlist[1] + if(istext(assoc_check) && (returnedlist[assoc_check] != null)) + . += "[procname] returned an associative list:" + for(var/key in returnedlist) + . += "\n[key] = [returnedlist[key]]" + + else + . += "[procname] returned a list:" + for(var/elem in returnedlist) + . += "\n[elem]" + else + . = "[procname] returned an empty list" + . += "" + + else + . = "[procname] returned: [!isnull(returnval) ? returnval : "null"]" diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index d86211f216..62c2dc900c 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1732,9 +1732,8 @@ var/mob/M = locate(href_list["makeeligible"]) if(!ismob(M)) to_chat(usr, "this can only be used on instances of type /mob.") - var/datum/element/ghost_role_eligibility/eli = SSdcs.GetElement(list(/datum/element/ghost_role_eligibility)) - if(M.ckey in eli.timeouts) - eli.timeouts -= M.ckey + if(M.ckey in GLOB.client_ghost_timeouts) + GLOB.client_ghost_timeouts -= M.ckey else if(href_list["sendtoprison"]) if(!check_rights(R_ADMIN)) diff --git a/code/modules/admin/verbs/borgpanel.dm b/code/modules/admin/verbs/borgpanel.dm index 8cfd53b300..83f2839438 100644 --- a/code/modules/admin/verbs/borgpanel.dm +++ b/code/modules/admin/verbs/borgpanel.dm @@ -23,8 +23,8 @@ /datum/borgpanel/New(to_user, mob/living/silicon/robot/to_borg) if(!istype(to_borg)) - CRASH("Borg panel is only available for borgs") qdel(src) + CRASH("Borg panel is only available for borgs") user = CLIENT_FROM_VAR(to_user) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 54d6a864fd..e67176029a 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -15,214 +15,6 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Toggle Debug Two") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - -/* 21st Sept 2010 -Updated by Skie -- Still not perfect but better! -Stuff you can't do: -Call proc /mob/proc/Dizzy() for some player -Because if you select a player mob as owner it tries to do the proc for -/mob/living/carbon/human/ instead. And that gives a run-time error. -But you can call procs that are of type /mob/living/carbon/human/proc/ for that player. -*/ - -/client/proc/callproc() - set category = "Debug" - set name = "Advanced ProcCall" - set waitfor = FALSE - - if(!check_rights(R_DEBUG)) - return - - var/datum/target = null - var/targetselected = FALSE - var/returnval = null - - if(alert("Proc owned by something?",,"Yes","No") == "Yes") - targetselected = TRUE - var/list/value = vv_get_value(default_class = VV_ATOM_REFERENCE, classes = list(VV_ATOM_REFERENCE, VV_DATUM_REFERENCE, VV_MOB_REFERENCE, VV_CLIENT)) - if (!value["class"] || !value["value"]) - return - target = value["value"] - - var/procpath = input("Proc path, eg: /proc/fake_blood","Path:", null) as text|null - if(!procpath) - return - - //strip away everything but the proc name - var/list/proclist = splittext(procpath, "/") - if (!length(proclist)) - return - - var/procname = proclist[proclist.len] - var/proctype = ("verb" in proclist) ? "verb" :"proc" - - if(targetselected) - if(!hascall(target, procname)) - to_chat(usr, "Error: callproc(): type [target.type] has no [proctype] named [procpath].") - return - else - procpath = "/[proctype]/[procname]" - if(!text2path(procpath)) - to_chat(usr, "Error: callproc(): [procpath] does not exist.") - return - - var/list/lst = get_callproc_args() - if(!lst) - return - - if(targetselected) - if(!target) - to_chat(usr, "Error: callproc(): owner of proc no longer exists.") - return - var/msg = "[key_name(src)] called [target]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no argument"]." - log_admin(msg) - message_admins(msg) - admin_ticket_log(target, msg) - returnval = WrapAdminProcCall(target, procname, lst) - else - var/msg = "[key_name(src)] called [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no argument"]." - log_admin(msg) - message_admins(msg) - returnval = WrapAdminProcCall(GLOBAL_PROC, procpath, lst) //calling globals needs full qualified name (e.g /proc/foo) - . = get_callproc_returnval(returnval, procname) - if(.) - to_chat(usr, .) - SSblackbox.record_feedback("tally", "admin_verb", 1, "Advanced ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -GLOBAL_VAR(AdminProcCaller) -GLOBAL_PROTECT(AdminProcCaller) -GLOBAL_VAR_INIT(AdminProcCallCount, 0) -GLOBAL_PROTECT(AdminProcCallCount) -GLOBAL_VAR(LastAdminCalledTargetRef) -GLOBAL_PROTECT(LastAdminCalledTargetRef) -GLOBAL_VAR(LastAdminCalledTarget) -GLOBAL_PROTECT(LastAdminCalledTarget) -GLOBAL_VAR(LastAdminCalledProc) -GLOBAL_PROTECT(LastAdminCalledProc) -GLOBAL_LIST_EMPTY(AdminProcCallSpamPrevention) -GLOBAL_PROTECT(AdminProcCallSpamPrevention) - -/proc/WrapAdminProcCall(datum/target, procname, list/arguments) - if(target != GLOBAL_PROC && procname == "Del") - to_chat(usr, "Calling Del() is not allowed") - return - - if(target != GLOBAL_PROC && !target.CanProcCall(procname)) - to_chat(usr, "Proccall on [target.type]/proc/[procname] is disallowed!") - return - var/current_caller = GLOB.AdminProcCaller - var/ckey = usr ? usr.client.ckey : GLOB.AdminProcCaller - if(!ckey) - CRASH("WrapAdminProcCall with no ckey: [target] [procname] [english_list(arguments)]") - if(current_caller && current_caller != ckey) - if(!GLOB.AdminProcCallSpamPrevention[ckey]) - to_chat(usr, "Another set of admin called procs are still running, your proc will be run after theirs finish.") - GLOB.AdminProcCallSpamPrevention[ckey] = TRUE - UNTIL(!GLOB.AdminProcCaller) - to_chat(usr, "Running your proc") - GLOB.AdminProcCallSpamPrevention -= ckey - else - UNTIL(!GLOB.AdminProcCaller) - GLOB.LastAdminCalledProc = procname - if(target != GLOBAL_PROC) - GLOB.LastAdminCalledTargetRef = "[REF(target)]" - GLOB.AdminProcCaller = ckey //if this runtimes, too bad for you - ++GLOB.AdminProcCallCount - . = world.WrapAdminProcCall(target, procname, arguments) - if(--GLOB.AdminProcCallCount == 0) - GLOB.AdminProcCaller = null - -//adv proc call this, ya nerds -/world/proc/WrapAdminProcCall(datum/target, procname, list/arguments) - if(target == GLOBAL_PROC) - return call(procname)(arglist(arguments)) - else if(target != world) - return call(target, procname)(arglist(arguments)) - else - log_admin_private("[key_name(usr)] attempted to call world/proc/[procname] with arguments: [english_list(arguments)]") - -/proc/IsAdminAdvancedProcCall() -#ifdef TESTING - return FALSE -#else - return usr && usr.client && GLOB.AdminProcCaller == usr.client.ckey -#endif - -/client/proc/callproc_datum(datum/A as null|area|mob|obj|turf) - set category = "Debug" - set name = "Atom ProcCall" - set waitfor = FALSE - - if(!check_rights(R_DEBUG)) - return - - var/procname = input("Proc name, eg: fake_blood","Proc:", null) as text|null - if(!procname) - return - if(!hascall(A,procname)) - to_chat(usr, "Error: callproc_datum(): type [A.type] has no proc named [procname].") - return - var/list/lst = get_callproc_args() - if(!lst) - return - - if(!A || !IsValidSrc(A)) - to_chat(usr, "Error: callproc_datum(): owner of proc no longer exists.") - return - var/msg = "[key_name(src)] called [A]'s [procname]() with [lst.len ? "the arguments [list2params(lst)]":"no arguments"]." - log_admin(msg) - message_admins(msg) - admin_ticket_log(A, msg) - SSblackbox.record_feedback("tally", "admin_verb", 1, "Atom ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - var/returnval = WrapAdminProcCall(A, procname, lst) // Pass the lst as an argument list to the proc - . = get_callproc_returnval(returnval,procname) - if(.) - to_chat(usr, .) - -/client/proc/get_callproc_args() - var/argnum = input("Number of arguments","Number:",0) as num|null - if(isnull(argnum)) - return - - . = list() - var/list/named_args = list() - while(argnum--) - var/named_arg = input("Leave blank for positional argument. Positional arguments will be considered as if they were added first.", "Named argument") as text|null - var/value = vv_get_value(restricted_classes = list(VV_RESTORE_DEFAULT)) - if (!value["class"]) - return - if(named_arg) - named_args[named_arg] = value["value"] - else - . += value["value"] - if(LAZYLEN(named_args)) - . += named_args - -/client/proc/get_callproc_returnval(returnval,procname) - . = "" - if(islist(returnval)) - var/list/returnedlist = returnval - . = "" - if(returnedlist.len) - var/assoc_check = returnedlist[1] - if(istext(assoc_check) && (returnedlist[assoc_check] != null)) - . += "[procname] returned an associative list:" - for(var/key in returnedlist) - . += "\n[key] = [returnedlist[key]]" - - else - . += "[procname] returned a list:" - for(var/elem in returnedlist) - . += "\n[elem]" - else - . = "[procname] returned an empty list" - . += "" - - else - . = "[procname] returned: [!isnull(returnval) ? returnval : "null"]" - /client/proc/Cell() set category = "Debug" set name = "Air Status in Location" @@ -343,66 +135,6 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) else alert("Invalid mob") -/proc/make_types_fancy(var/list/types) - if (ispath(types)) - types = list(types) - . = list() - for(var/type in types) - var/typename = "[type]" - var/static/list/TYPES_SHORTCUTS = list( - /obj/effect/decal/cleanable = "CLEANABLE", - /obj/item/radio/headset = "HEADSET", - /obj/item/clothing/head/helmet/space = "SPESSHELMET", - /obj/item/book/manual = "MANUAL", - /obj/item/reagent_containers/food/drinks = "DRINK", //longest paths comes first - /obj/item/reagent_containers/food = "FOOD", - /obj/item/reagent_containers = "REAGENT_CONTAINERS", - /obj/machinery/atmospherics = "ATMOS_MECH", - /obj/machinery/portable_atmospherics = "PORT_ATMOS", - /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack = "MECHA_MISSILE_RACK", - /obj/item/mecha_parts/mecha_equipment = "MECHA_EQUIP", - /obj/item/organ = "ORGAN", - /obj/item = "ITEM", - /obj/machinery = "MACHINERY", - /obj/effect = "EFFECT", - /obj = "O", - /datum = "D", - /turf/open = "OPEN", - /turf/closed = "CLOSED", - /turf = "T", - /mob/living/carbon = "CARBON", - /mob/living/simple_animal = "SIMPLE", - /mob/living = "LIVING", - /mob = "M" - ) - for (var/tn in TYPES_SHORTCUTS) - if (copytext(typename,1, length("[tn]/")+1)=="[tn]/" /*findtextEx(typename,"[tn]/",1,2)*/ ) - typename = TYPES_SHORTCUTS[tn]+copytext(typename,length("[tn]/")) - break - .[typename] = type - -/proc/get_fancy_list_of_atom_types() - var/static/list/pre_generated_list - if (!pre_generated_list) //init - pre_generated_list = make_types_fancy(typesof(/atom)) - return pre_generated_list - - -/proc/get_fancy_list_of_datum_types() - var/static/list/pre_generated_list - if (!pre_generated_list) //init - pre_generated_list = make_types_fancy(sortList(typesof(/datum) - typesof(/atom))) - return pre_generated_list - - -/proc/filter_fancy_list(list/L, filter as text) - var/list/matches = new - for(var/key in L) - var/value = L[key] - if(findtext("[key]", filter) || findtext("[value]", filter)) - matches[key] = value - return matches - //TODO: merge the vievars version into this or something maybe mayhaps /client/proc/cmd_debug_del_all(object as text) set category = "Debug" diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index c44328775f..ef8a63a728 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -594,31 +594,6 @@ Traitors and the like can also be revived with the previous role mostly intact. admin_delete(A) -/client/proc/admin_delete(datum/D) - var/atom/A = D - var/coords = "" - var/jmp_coords = "" - if(istype(A)) - var/turf/T = get_turf(A) - if(T) - coords = "at [COORD(T)]" - jmp_coords = "at [ADMIN_COORDJMP(T)]" - else - jmp_coords = coords = "in nullspace" - - if (alert(src, "Are you sure you want to delete:\n[D]\n[coords]?", "Confirmation", "Yes", "No") == "Yes") - log_admin("[key_name(usr)] deleted [D] [coords]") - message_admins("[key_name_admin(usr)] deleted [D] [jmp_coords]") - SSblackbox.record_feedback("tally", "admin_verb", 1, "Delete") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - if(isturf(D)) - var/turf/T = D - T.ScrapeAway() - else - vv_update_display(D, "deleted", VV_MSG_DELETED) - qdel(D) - if(!QDELETED(D)) - vv_update_display(D, "deleted", "") - /client/proc/cmd_admin_list_open_jobs() set category = "Admin" set name = "Manage Job Slots" diff --git a/code/modules/admin/view_variables/admin_delete.dm b/code/modules/admin/view_variables/admin_delete.dm new file mode 100644 index 0000000000..947ad5db2c --- /dev/null +++ b/code/modules/admin/view_variables/admin_delete.dm @@ -0,0 +1,24 @@ +/client/proc/admin_delete(datum/D) + var/atom/A = D + var/coords = "" + var/jmp_coords = "" + if(istype(A)) + var/turf/T = get_turf(A) + if(T) + coords = "at [COORD(T)]" + jmp_coords = "at [ADMIN_COORDJMP(T)]" + else + jmp_coords = coords = "in nullspace" + + if (alert(src, "Are you sure you want to delete:\n[D]\n[coords]?", "Confirmation", "Yes", "No") == "Yes") + log_admin("[key_name(usr)] deleted [D] [coords]") + message_admins("[key_name_admin(usr)] deleted [D] [jmp_coords]") + SSblackbox.record_feedback("tally", "admin_verb", 1, "Delete") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + if(isturf(D)) + var/turf/T = D + T.ScrapeAway() + else + vv_update_display(D, "deleted", VV_MSG_DELETED) + qdel(D) + if(!QDELETED(D)) + vv_update_display(D, "deleted", "") diff --git a/code/modules/admin/view_variables/debug_variables.dm b/code/modules/admin/view_variables/debug_variables.dm new file mode 100644 index 0000000000..23f85cba15 --- /dev/null +++ b/code/modules/admin/view_variables/debug_variables.dm @@ -0,0 +1,76 @@ +#define VV_HTML_ENCODE(thing) ( sanitize ? html_encode(thing) : thing ) +/proc/debug_variable(name, value, level, datum/D, sanitize = TRUE) //if D is a list, name will be index, and value will be assoc value. + var/header + if(D) + if(islist(D)) + var/index = name + if (value) + name = D[name] //name is really the index until this line + else + value = D[name] + header = "
  • ([VV_HREF_TARGET_1V(D, VV_HK_LIST_EDIT, "E", index)]) ([VV_HREF_TARGET_1V(D, VV_HK_LIST_CHANGE, "C", index)]) ([VV_HREF_TARGET_1V(D, VV_HK_LIST_REMOVE, "-", index)]) " + else + header = "
  • ([VV_HREF_TARGET_1V(D, VV_HK_BASIC_EDIT, "E", name)]) ([VV_HREF_TARGET_1V(D, VV_HK_BASIC_CHANGE, "C", name)]) ([VV_HREF_TARGET_1V(D, VV_HK_BASIC_MASSEDIT, "M", name)]) " + else + header = "
  • " + + var/item + if (isnull(value)) + item = "[VV_HTML_ENCODE(name)] = null" + + else if (istext(value)) + item = "[VV_HTML_ENCODE(name)] = \"[VV_HTML_ENCODE(value)]\"" + + else if (isicon(value)) + #ifdef VARSICON + var/icon/I = icon(value) + var/rnd = rand(1,10000) + var/rname = "tmp[REF(I)][rnd].png" + usr << browse_rsc(I, rname) + item = "[VV_HTML_ENCODE(name)] = ([value]) " + #else + item = "[VV_HTML_ENCODE(name)] = /icon ([value])" + #endif + + else if (isfile(value)) + item = "[VV_HTML_ENCODE(name)] = '[value]'" + + else if (istype(value, /datum)) + var/datum/DV = value + if ("[DV]" != "[DV.type]") //if the thing as a name var, lets use it. + item = "[VV_HTML_ENCODE(name)] [REF(value)] = [DV] [DV.type]" + else + item = "[VV_HTML_ENCODE(name)] [REF(value)] = [DV.type]" + + else if (islist(value)) + var/list/L = value + var/list/items = list() + + if (L.len > 0 && !(name == "underlays" || name == "overlays" || L.len > (IS_NORMAL_LIST(L) ? VV_NORMAL_LIST_NO_EXPAND_THRESHOLD : VV_SPECIAL_LIST_NO_EXPAND_THRESHOLD))) + for (var/i in 1 to L.len) + var/key = L[i] + var/val + if (IS_NORMAL_LIST(L) && !isnum(key)) + val = L[key] + if (isnull(val)) // we still want to display non-null false values, such as 0 or "" + val = key + key = i + + items += debug_variable(key, val, level + 1, sanitize = sanitize) + + item = "[VV_HTML_ENCODE(name)] = /list ([L.len])
      [items.Join()]
    " + else + item = "[VV_HTML_ENCODE(name)] = /list ([L.len])" + + else if (name in GLOB.bitfields) + var/list/flags = list() + for (var/i in GLOB.bitfields[name]) + if (value & GLOB.bitfields[name][i]) + flags += i + item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(jointext(flags, ", "))]" + else + item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(value)]" + + return "[header][item]
  • " + +#undef VV_HTML_ENCODE diff --git a/code/modules/admin/view_variables/get_variables.dm b/code/modules/admin/view_variables/get_variables.dm new file mode 100644 index 0000000000..3f90002edc --- /dev/null +++ b/code/modules/admin/view_variables/get_variables.dm @@ -0,0 +1,271 @@ +/client/proc/vv_get_class(var_name, var_value) + if(isnull(var_value)) + . = VV_NULL + + else if(isnum(var_value)) + if(var_name in GLOB.bitfields) + . = VV_BITFIELD + else + . = VV_NUM + + else if(istext(var_value)) + if(findtext(var_value, "\n")) + . = VV_MESSAGE + else + . = VV_TEXT + + else if(isicon(var_value)) + . = VV_ICON + + else if(ismob(var_value)) + . = VV_MOB_REFERENCE + + else if(isloc(var_value)) + . = VV_ATOM_REFERENCE + + else if(istype(var_value, /client)) + . = VV_CLIENT + + else if(istype(var_value, /datum)) + . = VV_DATUM_REFERENCE + + else if(ispath(var_value)) + if(ispath(var_value, /atom)) + . = VV_ATOM_TYPE + else if(ispath(var_value, /datum)) + . = VV_DATUM_TYPE + else + . = VV_TYPE + + else if(islist(var_value)) + . = VV_LIST + + else if(isfile(var_value)) + . = VV_FILE + else + . = VV_NULL + +/client/proc/vv_get_value(class, default_class, current_value, list/restricted_classes, list/extra_classes, list/classes, var_name) + . = list("class" = class, "value" = null) + if(!class) + if(!classes) + classes = list ( + VV_NUM, + VV_TEXT, + VV_MESSAGE, + VV_ICON, + VV_ATOM_REFERENCE, + VV_DATUM_REFERENCE, + VV_MOB_REFERENCE, + VV_CLIENT, + VV_ATOM_TYPE, + VV_DATUM_TYPE, + VV_TYPE, + VV_FILE, + VV_NEW_ATOM, + VV_NEW_DATUM, + VV_NEW_TYPE, + VV_NEW_LIST, + VV_NULL, + VV_RESTORE_DEFAULT, + VV_TEXT_LOCATE, + VV_PROCCALL_RETVAL, + ) + + var/markstring + if(!(VV_MARKED_DATUM in restricted_classes)) + markstring = "[VV_MARKED_DATUM] (CURRENT: [(istype(holder) && istype(holder.marked_datum))? holder.marked_datum.type : "NULL"])" + classes += markstring + + if(restricted_classes) + classes -= restricted_classes + + if(extra_classes) + classes += extra_classes + + .["class"] = input(src, "What kind of data?", "Variable Type", default_class) as null|anything in classes + if(holder && holder.marked_datum && .["class"] == markstring) + .["class"] = VV_MARKED_DATUM + + switch(.["class"]) + if(VV_TEXT) + .["value"] = input("Enter new text:", "Text", current_value) as null|text + if(.["value"] == null) + .["class"] = null + return + if(VV_MESSAGE) + .["value"] = input("Enter new text:", "Text", current_value) as null|message + if(.["value"] == null) + .["class"] = null + return + + + if(VV_NUM) + .["value"] = input("Enter new number:", "Num", current_value) as null|num + if(.["value"] == null) + .["class"] = null + return + + if(VV_BITFIELD) + .["value"] = input_bitfield(usr, "Editing bitfield: [var_name]", var_name, current_value) + if(.["value"] == null) + .["class"] = null + return + + if(VV_ATOM_TYPE) + .["value"] = pick_closest_path(FALSE) + if(.["value"] == null) + .["class"] = null + return + + if(VV_DATUM_TYPE) + .["value"] = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) + if(.["value"] == null) + .["class"] = null + return + + if(VV_TYPE) + var/type = current_value + var/error = "" + do + type = input("Enter type:[error]", "Type", type) as null|text + if(!type) + break + type = text2path(type) + error = "\nType not found, Please try again" + while(!type) + if(!type) + .["class"] = null + return + .["value"] = type + + if(VV_ATOM_REFERENCE) + var/type = pick_closest_path(FALSE) + var/subtypes = vv_subtype_prompt(type) + if(subtypes == null) + .["class"] = null + return + var/list/things = vv_reference_list(type, subtypes) + var/value = input("Select reference:", "Reference", current_value) as null|anything in things + if(!value) + .["class"] = null + return + .["value"] = things[value] + + if(VV_DATUM_REFERENCE) + var/type = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) + var/subtypes = vv_subtype_prompt(type) + if(subtypes == null) + .["class"] = null + return + var/list/things = vv_reference_list(type, subtypes) + var/value = input("Select reference:", "Reference", current_value) as null|anything in things + if(!value) + .["class"] = null + return + .["value"] = things[value] + + if(VV_MOB_REFERENCE) + var/type = pick_closest_path(FALSE, make_types_fancy(typesof(/mob))) + var/subtypes = vv_subtype_prompt(type) + if(subtypes == null) + .["class"] = null + return + var/list/things = vv_reference_list(type, subtypes) + var/value = input("Select reference:", "Reference", current_value) as null|anything in things + if(!value) + .["class"] = null + return + .["value"] = things[value] + + if(VV_CLIENT) + .["value"] = input("Select reference:", "Reference", current_value) as null|anything in GLOB.clients + if(.["value"] == null) + .["class"] = null + return + + if(VV_FILE) + .["value"] = input("Pick file:", "File") as null|file + if(.["value"] == null) + .["class"] = null + return + + if(VV_ICON) + .["value"] = input("Pick icon:", "Icon") as null|icon + if(.["value"] == null) + .["class"] = null + return + + if(VV_MARKED_DATUM) + .["value"] = holder.marked_datum + if(.["value"] == null) + .["class"] = null + return + + if(VV_PROCCALL_RETVAL) + var/list/get_retval = list() + callproc_blocking(get_retval) + .["value"] = get_retval[1] //should have been set in proccall! + if(.["value"] == null) + .["class"] = null + return + + if(VV_NEW_ATOM) + var/type = pick_closest_path(FALSE) + if(!type) + .["class"] = null + return + .["type"] = type + var/atom/newguy = new type() + newguy.datum_flags |= DF_VAR_EDITED + .["value"] = newguy + + if(VV_NEW_DATUM) + var/type = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) + if(!type) + .["class"] = null + return + .["type"] = type + var/datum/newguy = new type() + newguy.datum_flags |= DF_VAR_EDITED + .["value"] = newguy + + if(VV_NEW_TYPE) + var/type = current_value + var/error = "" + do + type = input("Enter type:[error]", "Type", type) as null|text + if(!type) + break + type = text2path(type) + error = "\nType not found, Please try again" + while(!type) + if(!type) + .["class"] = null + return + .["type"] = type + var/datum/newguy = new type() + if(istype(newguy)) + newguy.datum_flags |= DF_VAR_EDITED + .["value"] = newguy + + if(VV_NEW_LIST) + .["value"] = list() + .["type"] = /list + + if(VV_TEXT_LOCATE) + var/datum/D + do + var/ref = input("Enter reference:", "Reference") as null|text + if(!ref) + break + D = locate(ref) + if(!D) + alert("Invalid ref!") + continue + if(!D.can_vv_mark()) + alert("Datum can not be marked!") + continue + while(!D) + .["type"] = D.type + .["value"] = D diff --git a/code/modules/admin/view_variables/mark_datum.dm b/code/modules/admin/view_variables/mark_datum.dm new file mode 100644 index 0000000000..9f1b333750 --- /dev/null +++ b/code/modules/admin/view_variables/mark_datum.dm @@ -0,0 +1,12 @@ +/client/proc/mark_datum(datum/D) + if(!holder) + return + if(holder.marked_datum) + vv_update_display(holder.marked_datum, "marked", "") + holder.marked_datum = D + vv_update_display(D, "marked", VV_MSG_MARKED) + +/client/proc/mark_datum_mapview(datum/D as mob|obj|turf|area in view(view)) + set category = "Debug" + set name = "Mark Object" + mark_datum(D) diff --git a/code/modules/admin/verbs/massmodvar.dm b/code/modules/admin/view_variables/mass_edit_variables.dm similarity index 94% rename from code/modules/admin/verbs/massmodvar.dm rename to code/modules/admin/view_variables/mass_edit_variables.dm index ba199350e3..4e78e1aed7 100644 --- a/code/modules/admin/verbs/massmodvar.dm +++ b/code/modules/admin/view_variables/mass_edit_variables.dm @@ -197,7 +197,7 @@ log_admin("[key_name(src)] mass modified [original_name]'s [variable] to [O.vars[variable]] ([accepted] objects modified)") message_admins("[key_name_admin(src)] mass modified [original_name]'s [variable] to [O.vars[variable]] ([accepted] objects modified)") - +//not using global lists as vv is a debug function and debug functions should rely on as less things as possible. /proc/get_all_of_type(var/T, subtypes = TRUE) var/list/typecache = list() typecache[T] = 1 @@ -205,19 +205,25 @@ typecache = typecacheof(typecache) . = list() if (ispath(T, /mob)) - for(var/mob/thing in GLOB.mob_list) + for(var/mob/thing in world) if (typecache[thing.type]) . += thing CHECK_TICK else if (ispath(T, /obj/machinery/door)) - for(var/obj/machinery/door/thing in GLOB.airlocks) + for(var/obj/machinery/door/thing in world) if (typecache[thing.type]) . += thing CHECK_TICK else if (ispath(T, /obj/machinery)) - for(var/obj/machinery/thing in GLOB.machines) + for(var/obj/machinery/thing in world) + if (typecache[thing.type]) + . += thing + CHECK_TICK + + else if (ispath(T, /obj/item)) + for(var/obj/item/thing in world) if (typecache[thing.type]) . += thing CHECK_TICK @@ -247,7 +253,7 @@ CHECK_TICK else if (ispath(T, /client)) - for(var/client/thing in GLOB.clients) + for(var/client/thing in world) if (typecache[thing.type]) . += thing CHECK_TICK diff --git a/code/modules/admin/verbs/modifyvariables.dm b/code/modules/admin/view_variables/modify_variables.dm similarity index 60% rename from code/modules/admin/verbs/modifyvariables.dm rename to code/modules/admin/view_variables/modify_variables.dm index 537c31d3b4..a4ed4d45bd 100644 --- a/code/modules/admin/verbs/modifyvariables.dm +++ b/code/modules/admin/view_variables/modify_variables.dm @@ -1,264 +1,12 @@ -GLOBAL_LIST_INIT(VVlocked, list("vars", "datum_flags", "client", "virus", "viruses", "cuffed", "last_eaten", "unlock_content", "force_ending")) +GLOBAL_LIST_INIT(VVlocked, list("vars", "datum_flags", "client", "mob")) //Requires DEBUG GLOBAL_PROTECT(VVlocked) -GLOBAL_LIST_INIT(VVicon_edit_lock, list("icon", "icon_state", "overlays", "underlays", "resize")) +GLOBAL_LIST_INIT(VVicon_edit_lock, list("icon", "icon_state", "overlays", "underlays")) //Requires DEBUG or FUN GLOBAL_PROTECT(VVicon_edit_lock) -GLOBAL_LIST_INIT(VVckey_edit, list("key", "ckey")) +GLOBAL_LIST_INIT(VVckey_edit, list("key", "ckey")) //Requires DEBUG or SPAWN GLOBAL_PROTECT(VVckey_edit) -GLOBAL_LIST_INIT(VVpixelmovement, list("step_x", "step_y", "bound_height", "bound_width", "bound_x", "bound_y")) +GLOBAL_LIST_INIT(VVpixelmovement, list("bound_x", "bound_y", "step_x", "step_y", "step_size", "bound_height", "bound_width", "bounds")) //No editing ever. GLOBAL_PROTECT(VVpixelmovement) - -/client/proc/vv_get_class(var/var_name, var/var_value) - if(isnull(var_value)) - . = VV_NULL - - else if (isnum(var_value)) - if (var_name in GLOB.bitfields) - . = VV_BITFIELD - else - . = VV_NUM - - else if (istext(var_value)) - if (findtext(var_value, "\n")) - . = VV_MESSAGE - else - . = VV_TEXT - - else if (isicon(var_value)) - . = VV_ICON - - else if (ismob(var_value)) - . = VV_MOB_REFERENCE - - else if (isloc(var_value)) - . = VV_ATOM_REFERENCE - - else if (istype(var_value, /client)) - . = VV_CLIENT - - else if (istype(var_value, /datum)) - . = VV_DATUM_REFERENCE - - else if (ispath(var_value)) - if (ispath(var_value, /atom)) - . = VV_ATOM_TYPE - else if (ispath(var_value, /datum)) - . = VV_DATUM_TYPE - else - . = VV_TYPE - - else if (islist(var_value)) - . = VV_LIST - - else if (isfile(var_value)) - . = VV_FILE - else - . = VV_NULL - -/client/proc/vv_get_value(class, default_class, current_value, list/restricted_classes, list/extra_classes, list/classes, var_name) - . = list("class" = class, "value" = null) - if (!class) - if (!classes) - classes = list ( - VV_NUM, - VV_TEXT, - VV_MESSAGE, - VV_ICON, - VV_ATOM_REFERENCE, - VV_DATUM_REFERENCE, - VV_MOB_REFERENCE, - VV_CLIENT, - VV_ATOM_TYPE, - VV_DATUM_TYPE, - VV_TYPE, - VV_FILE, - VV_NEW_ATOM, - VV_NEW_DATUM, - VV_NEW_TYPE, - VV_NEW_LIST, - VV_NULL, - VV_RESTORE_DEFAULT - ) - - if(holder && holder.marked_datum && !(VV_MARKED_DATUM in restricted_classes)) - classes += "[VV_MARKED_DATUM] ([holder.marked_datum.type])" - if (restricted_classes) - classes -= restricted_classes - - if (extra_classes) - classes += extra_classes - - .["class"] = input(src, "What kind of data?", "Variable Type", default_class) as null|anything in classes - if (holder && holder.marked_datum && .["class"] == "[VV_MARKED_DATUM] ([holder.marked_datum.type])") - .["class"] = VV_MARKED_DATUM - - - switch(.["class"]) - if (VV_TEXT) - .["value"] = input("Enter new text:", "Text", current_value) as null|text - if (.["value"] == null) - .["class"] = null - return - if (VV_MESSAGE) - .["value"] = input("Enter new text:", "Text", current_value) as null|message - if (.["value"] == null) - .["class"] = null - return - - - if (VV_NUM) - .["value"] = input("Enter new number:", "Num", current_value) as null|num - if (.["value"] == null) - .["class"] = null - return - - if (VV_BITFIELD) - .["value"] = input_bitfield(usr, "Editing bitfield: [var_name]", var_name, current_value) - if (.["value"] == null) - .["class"] = null - return - - if (VV_ATOM_TYPE) - .["value"] = pick_closest_path(FALSE) - if (.["value"] == null) - .["class"] = null - return - - if (VV_DATUM_TYPE) - .["value"] = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) - if (.["value"] == null) - .["class"] = null - return - - if (VV_TYPE) - var/type = current_value - var/error = "" - do - type = input("Enter type:[error]", "Type", type) as null|text - if (!type) - break - type = text2path(type) - error = "\nType not found, Please try again" - while(!type) - if (!type) - .["class"] = null - return - .["value"] = type - - - if (VV_ATOM_REFERENCE) - var/type = pick_closest_path(FALSE) - var/subtypes = vv_subtype_prompt(type) - if (subtypes == null) - .["class"] = null - return - var/list/things = vv_reference_list(type, subtypes) - var/value = input("Select reference:", "Reference", current_value) as null|anything in things - if (!value) - .["class"] = null - return - .["value"] = things[value] - - if (VV_DATUM_REFERENCE) - var/type = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) - var/subtypes = vv_subtype_prompt(type) - if (subtypes == null) - .["class"] = null - return - var/list/things = vv_reference_list(type, subtypes) - var/value = input("Select reference:", "Reference", current_value) as null|anything in things - if (!value) - .["class"] = null - return - .["value"] = things[value] - - if (VV_MOB_REFERENCE) - var/type = pick_closest_path(FALSE, make_types_fancy(typesof(/mob))) - var/subtypes = vv_subtype_prompt(type) - if (subtypes == null) - .["class"] = null - return - var/list/things = vv_reference_list(type, subtypes) - var/value = input("Select reference:", "Reference", current_value) as null|anything in things - if (!value) - .["class"] = null - return - .["value"] = things[value] - - - - if (VV_CLIENT) - .["value"] = input("Select reference:", "Reference", current_value) as null|anything in GLOB.clients - if (.["value"] == null) - .["class"] = null - return - - - if (VV_FILE) - .["value"] = input("Pick file:", "File") as null|file - if (.["value"] == null) - .["class"] = null - return - - - if (VV_ICON) - .["value"] = input("Pick icon:", "Icon") as null|icon - if (.["value"] == null) - .["class"] = null - return - - - if (VV_MARKED_DATUM) - .["value"] = holder.marked_datum - if (.["value"] == null) - .["class"] = null - return - - - if (VV_NEW_ATOM) - var/type = pick_closest_path(FALSE) - if (!type) - .["class"] = null - return - .["type"] = type - var/atom/newguy = new type() - newguy.datum_flags |= DF_VAR_EDITED - .["value"] = newguy - - if (VV_NEW_DATUM) - var/type = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) - if (!type) - .["class"] = null - return - .["type"] = type - var/datum/newguy = new type() - newguy.datum_flags |= DF_VAR_EDITED - .["value"] = newguy - - if (VV_NEW_TYPE) - var/type = current_value - var/error = "" - do - type = input("Enter type:[error]", "Type", type) as null|text - if (!type) - break - type = text2path(type) - error = "\nType not found, Please try again" - while(!type) - if (!type) - .["class"] = null - return - .["type"] = type - var/datum/newguy = new type() - if(istype(newguy)) - newguy.datum_flags |= DF_VAR_EDITED - .["value"] = newguy - - - if (VV_NEW_LIST) - .["value"] = list() - .["type"] = /list - /client/proc/vv_parse_text(O, new_var) if(O && findtext(new_var,"\[")) var/process_vars = alert(usr,"\[] detected in string, process as variables?","Process Variables?","Yes","No") @@ -372,13 +120,13 @@ GLOBAL_PROTECT(VVpixelmovement) if(confirm != "Continue") return - + var/is_normal_list = IS_NORMAL_LIST(L) var/list/names = list() for (var/i in 1 to L.len) var/key = L[i] var/value - if (IS_NORMAL_LIST(L) && !isnum(key)) + if (is_normal_list && !isnum(key)) value = L[key] if (value == null) value = "null" @@ -439,10 +187,17 @@ GLOBAL_PROTECT(VVpixelmovement) assoc_key = L[index] var/default var/variable - if (assoc) - variable = L[assoc_key] - else - variable = L[index] + var/old_assoc_value //EXPERIMENTAL - Keep old associated value while modifying key, if any + if(is_normal_list) + if (assoc) + variable = L[assoc_key] + else + variable = L[index] + //EXPERIMENTAL - Keep old associated value while modifying key, if any + var/found = L[variable] + if(!isnull(found)) + old_assoc_value = found + // default = vv_get_class(objectvar, variable) @@ -504,11 +259,13 @@ GLOBAL_PROTECT(VVpixelmovement) for(var/V in varsvars) new_var = replacetext(new_var,"\[[V]]","[O.vars[V]]") - - if(assoc) - L[assoc_key] = new_var - else - L[index] = new_var + if(is_normal_list) + if(assoc) + L[assoc_key] = new_var + else + L[index] = new_var + if(!isnull(old_assoc_value) && IS_VALID_ASSOC_KEY(new_var)) + L[new_var] = old_assoc_value if (O) if (O.vv_edit_var(objectvar, L) == FALSE) to_chat(src, "Your edit was rejected by the object.") @@ -527,15 +284,8 @@ GLOBAL_PROTECT(VVpixelmovement) if(param_var_name in GLOB.VVicon_edit_lock) if(!check_rights(R_FUN|R_DEBUG)) return FALSE - if(param_var_name in GLOB.VVpixelmovement) - if(!check_rights(R_DEBUG)) - return FALSE - var/prompt = alert(usr, "Editing this var may irreparably break tile gliding for the rest of the round. THIS CAN'T BE UNDONE", "DANGER", "ABORT ", "Continue", " ABORT") - if (prompt != "Continue") - return FALSE return TRUE - /client/proc/modify_variables(atom/O, param_var_name = null, autodetect_class = 0) if(!check_rights(R_VAREDIT)) return @@ -567,11 +317,6 @@ GLOBAL_PROTECT(VVpixelmovement) var_value = O.vars[variable] if(!vv_varname_lockcheck(variable)) return - if(istype(O, /datum/armor)) - var/prompt = alert(src, "Editing this var changes this value on potentially thousands of items that share the same combination of armor values. If you want to edit the armor of just one item, use the \"Modify armor values\" dropdown item", "DANGER", "ABORT ", "Continue", " ABORT") - if (prompt != "Continue") - return - var/default = vv_get_class(variable, var_value) @@ -635,10 +380,9 @@ GLOBAL_PROTECT(VVpixelmovement) to_chat(src, "Your edit was rejected by the object.") return vv_update_display(O, "varedited", VV_MSG_EDITED) - SEND_GLOBAL_SIGNAL(COMSIG_GLOB_VAR_EDIT, args) log_world("### VarEdit by [key_name(src)]: [O.type] [variable]=[var_value] => [var_new]") log_admin("[key_name(src)] modified [original_name]'s [variable] from [html_encode("[var_value]")] to [html_encode("[var_new]")]") var/msg = "[key_name_admin(src)] modified [original_name]'s [variable] from [var_value] to [var_new]" message_admins(msg) admin_ticket_log(O, msg) - return TRUE \ No newline at end of file + return TRUE diff --git a/code/modules/admin/view_variables/topic.dm b/code/modules/admin/view_variables/topic.dm new file mode 100644 index 0000000000..626e75fa10 --- /dev/null +++ b/code/modules/admin/view_variables/topic.dm @@ -0,0 +1,128 @@ +//DO NOT ADD MORE TO THIS FILE. +//Use vv_do_topic() for datums! +/client/proc/view_var_Topic(href, href_list, hsrc) + if( (usr.client != src) || !src.holder || !holder.CheckAdminHref(href, href_list)) + return + var/target = GET_VV_TARGET + vv_do_basic(target, href_list, href) + if(istype(target, /datum)) + var/datum/D = target + D.vv_do_topic(href_list) + else if(islist(target)) + vv_do_list(target, href_list) + if(href_list["Vars"]) + debug_variables(locate(href_list["Vars"])) + +//Stuff below aren't in dropdowns/etc. + + if(check_rights(R_VAREDIT)) + + //~CARN: for renaming mobs (updates their name, real_name, mind.name, their ID/PDA and datacore records). + + if(href_list["rename"]) + if(!check_rights(NONE)) + return + + var/mob/M = locate(href_list["rename"]) in GLOB.mob_list + if(!istype(M)) + to_chat(usr, "This can only be used on instances of type /mob") + return + + var/new_name = stripped_input(usr,"What would you like to name this mob?","Input a name",M.real_name,MAX_NAME_LEN) + if( !new_name || !M ) + return + + message_admins("Admin [key_name_admin(usr)] renamed [key_name_admin(M)] to [new_name].") + M.fully_replace_character_name(M.real_name,new_name) + vv_update_display(M, "name", new_name) + vv_update_display(M, "real_name", M.real_name || "No real name") + + else if(href_list["rotatedatum"]) + if(!check_rights(NONE)) + return + + var/atom/A = locate(href_list["rotatedatum"]) + if(!istype(A)) + to_chat(usr, "This can only be done to instances of type /atom") + return + + switch(href_list["rotatedir"]) + if("right") + A.setDir(turn(A.dir, -45)) + if("left") + A.setDir(turn(A.dir, 45)) + vv_update_display(A, "dir", dir2text(A.dir)) + + + else if(href_list["makehuman"]) + if(!check_rights(R_SPAWN)) + return + + var/mob/living/carbon/monkey/Mo = locate(href_list["makehuman"]) in GLOB.mob_list + if(!istype(Mo)) + to_chat(usr, "This can only be done to instances of type /mob/living/carbon/monkey") + return + + if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") + return + if(!Mo) + to_chat(usr, "Mob doesn't exist anymore") + return + holder.Topic(href, list("humanone"=href_list["makehuman"])) + + else if(href_list["adjustDamage"] && href_list["mobToDamage"]) + if(!check_rights(NONE)) + return + + var/mob/living/L = locate(href_list["mobToDamage"]) in GLOB.mob_list + if(!istype(L)) + return + + var/Text = href_list["adjustDamage"] + + var/amount = input("Deal how much damage to mob? (Negative values here heal)","Adjust [Text]loss",0) as num + + if(!L) + to_chat(usr, "Mob doesn't exist anymore") + return + + var/newamt + switch(Text) + if("brute") + L.adjustBruteLoss(amount) + newamt = L.getBruteLoss() + if("fire") + L.adjustFireLoss(amount) + newamt = L.getFireLoss() + if("toxin") + L.adjustToxLoss(amount) + newamt = L.getToxLoss() + if("oxygen") + L.adjustOxyLoss(amount) + newamt = L.getOxyLoss() + if("brain") + L.adjustOrganLoss(ORGAN_SLOT_BRAIN, amount) + newamt = L.getOrganLoss(ORGAN_SLOT_BRAIN) + if("clone") + L.adjustCloneLoss(amount) + newamt = L.getCloneLoss() + if("stamina") + L.adjustStaminaLoss(amount) + newamt = L.getStaminaLoss() + else + to_chat(usr, "You caused an error. DEBUG: Text:[Text] Mob:[L]") + return + + if(amount != 0) + var/log_msg = "[key_name(usr)] dealt [amount] amount of [Text] damage to [key_name(L)]" + message_admins("[key_name(usr)] dealt [amount] amount of [Text] damage to [ADMIN_LOOKUPFLW(L)]") + log_admin(log_msg) + admin_ticket_log(L, "[log_msg]") + vv_update_display(L, Text, "[newamt]") + + + //Finally, refresh if something modified the list. + if(href_list["datumrefresh"]) + var/datum/DAT = locate(href_list["datumrefresh"]) + if(istype(DAT, /datum) || istype(DAT, /client)) + debug_variables(DAT) diff --git a/code/modules/admin/view_variables/topic_basic.dm b/code/modules/admin/view_variables/topic_basic.dm new file mode 100644 index 0000000000..2a0f3d7302 --- /dev/null +++ b/code/modules/admin/view_variables/topic_basic.dm @@ -0,0 +1,51 @@ +//Not using datum.vv_do_topic for very basic/low level debug things, incase the datum's vv_do_topic is runtiming/whatnot. +/client/proc/vv_do_basic(datum/target, href_list) + var/target_var = GET_VV_VAR_TARGET + if(check_rights(R_VAREDIT)) + if(target_var) + if(href_list[VV_HK_BASIC_EDIT]) + if(!modify_variables(target, target_var, 1)) + return + switch(target_var) + if("name") + vv_update_display(target, "name", "[target]") + if("dir") + var/atom/A = target + if(istype(A)) + vv_update_display(target, "dir", dir2text(A.dir) || A.dir) + if("ckey") + var/mob/living/L = target + if(istype(L)) + vv_update_display(target, "ckey", L.ckey || "No ckey") + if("real_name") + var/mob/living/L = target + if(istype(L)) + vv_update_display(target, "real_name", L.real_name || "No real name") + if(href_list[VV_HK_BASIC_CHANGE]) + modify_variables(target, target_var, 0) + if(href_list[VV_HK_BASIC_MASSEDIT]) + cmd_mass_modify_object_variables(target, target_var) + if(check_rights(R_ADMIN, FALSE)) + if(href_list[VV_HK_EXPOSE]) + var/value = vv_get_value(VV_CLIENT) + if (value["class"] != VV_CLIENT) + return + var/client/C = value["value"] + if (!C) + return + if(!target) + to_chat(usr, "The object you tried to expose to [C] no longer exists (nulled or hard-deled)") + return + message_admins("[key_name_admin(usr)] Showed [key_name_admin(C)] a VV window") + log_admin("Admin [key_name(usr)] Showed [key_name(C)] a VV window of a [target]") + to_chat(C, "[holder.fakekey ? "an Administrator" : "[usr.client.key]"] has granted you access to view a View Variables window") + C.debug_variables(target) + if(check_rights(R_DEBUG)) + if(href_list[VV_HK_DELETE]) + usr.client.admin_delete(target) + if (isturf(src)) // show the turf that took its place + usr.client.debug_variables(src) + if(href_list[VV_HK_MARK]) + usr.client.mark_datum(target) + if(href_list[VV_HK_CALLPROC]) + usr.client.callproc_datum(target) diff --git a/code/modules/admin/view_variables/topic_list.dm b/code/modules/admin/view_variables/topic_list.dm new file mode 100644 index 0000000000..349d9da698 --- /dev/null +++ b/code/modules/admin/view_variables/topic_list.dm @@ -0,0 +1,43 @@ +//LISTS - CAN NOT DO VV_DO_TOPIC BECAUSE LISTS AREN'T DATUMS :( +/client/proc/vv_do_list(list/target, href_list) + var/target_index = text2num(GET_VV_VAR_TARGET) + if(check_rights(R_VAREDIT)) + if(target_index) + if(href_list[VV_HK_LIST_EDIT]) + mod_list(target, null, "list", "contents", target_index, autodetect_class = TRUE) + if(href_list[VV_HK_LIST_CHANGE]) + mod_list(target, null, "list", "contents", target_index, autodetect_class = FALSE) + if(href_list[VV_HK_LIST_REMOVE]) + var/variable = target[target_index] + var/prompt = alert("Do you want to remove item number [target_index] from list?", "Confirm", "Yes", "No") + if (prompt != "Yes") + return + target.Cut(target_index, target_index+1) + log_world("### ListVarEdit by [src]: /list's contents: REMOVED=[html_encode("[variable]")]") + log_admin("[key_name(src)] modified list's contents: REMOVED=[variable]") + message_admins("[key_name_admin(src)] modified list's contents: REMOVED=[variable]") + if(href_list[VV_HK_LIST_ADD]) + mod_list_add(target, null, "list", "contents") + if(href_list[VV_HK_LIST_ERASE_DUPES]) + uniqueList_inplace(target) + log_world("### ListVarEdit by [src]: /list contents: CLEAR DUPES") + log_admin("[key_name(src)] modified list's contents: CLEAR DUPES") + message_admins("[key_name_admin(src)] modified list's contents: CLEAR DUPES") + if(href_list[VV_HK_LIST_ERASE_NULLS]) + listclearnulls(target) + log_world("### ListVarEdit by [src]: /list contents: CLEAR NULLS") + log_admin("[key_name(src)] modified list's contents: CLEAR NULLS") + message_admins("[key_name_admin(src)] modified list's contents: CLEAR NULLS") + if(href_list[VV_HK_LIST_SET_LENGTH]) + var/value = vv_get_value(VV_NUM) + if (value["class"] != VV_NUM || value["value"] > max(50000, target.len)) //safety - would rather someone not put an extra 0 and erase the server's memory lmao. + return + target.len = value["value"] + log_world("### ListVarEdit by [src]: /list len: [target.len]") + log_admin("[key_name(src)] modified list's len: [target.len]") + message_admins("[key_name_admin(src)] modified list's len: [target.len]") + if(href_list[VV_HK_LIST_SHUFFLE]) + shuffle_inplace(target) + log_world("### ListVarEdit by [src]: /list contents: SHUFFLE") + log_admin("[key_name(src)] modified list's contents: SHUFFLE") + message_admins("[key_name_admin(src)] modified list's contents: SHUFFLE") diff --git a/code/modules/admin/view_variables/view_variables.dm b/code/modules/admin/view_variables/view_variables.dm new file mode 100644 index 0000000000..a85b4ff1a3 --- /dev/null +++ b/code/modules/admin/view_variables/view_variables.dm @@ -0,0 +1,269 @@ + +/client/proc/debug_variables(datum/D in world) + set category = "Debug" + set name = "View Variables" + //set src in world + var/static/cookieoffset = rand(1, 9999) //to force cookies to reset after the round. + + if(!usr.client || !usr.client.holder) //This is usr because admins can call the proc on other clients, even if they're not admins, to show them VVs. + to_chat(usr, "You need to be an administrator to access this.") + return + + if(!D) + return + + var/islist = islist(D) + if(!islist && !istype(D)) + return + + var/title = "" + var/refid = REF(D) + var/icon/sprite + var/hash + + var/type = islist? /list : D.type + var/no_icon = FALSE + + if(istype(D, /atom)) + sprite = getFlatIcon(D) + hash = md5(sprite) + if(sprite) + hash = md5(sprite) + src << browse_rsc(sprite, "vv[hash].png") + else + no_icon = TRUE + + title = "[D] ([REF(D)]) = [type]" + var/formatted_type = replacetext("[type]", "/", "/") + + var/sprite_text + if(sprite) + sprite_text = no_icon? "\[NO ICON\]" : "" + var/list/header = islist(D)? list("/list") : D.vv_get_header() + + var/marked_line + if(holder && holder.marked_datum && holder.marked_datum == D) + marked_line = VV_MSG_MARKED + var/varedited_line + if(!islist && (D.datum_flags & DF_VAR_EDITED)) + varedited_line = VV_MSG_EDITED + var/deleted_line + if(!islist && D.gc_destroyed) + deleted_line = VV_MSG_DELETED + + var/list/dropdownoptions + if (islist) + dropdownoptions = list( + "---", + "Add Item" = VV_HREF_TARGETREF_INTERNAL(refid, VV_HK_LIST_ADD), + "Remove Nulls" = VV_HREF_TARGETREF_INTERNAL(refid, VV_HK_LIST_ERASE_NULLS), + "Remove Dupes" = VV_HREF_TARGETREF_INTERNAL(refid, VV_HK_LIST_ERASE_DUPES), + "Set len" = VV_HREF_TARGETREF_INTERNAL(refid, VV_HK_LIST_SET_LENGTH), + "Shuffle" = VV_HREF_TARGETREF_INTERNAL(refid, VV_HK_LIST_SHUFFLE), + "Show VV To Player" = VV_HREF_TARGETREF_INTERNAL(refid, VV_HK_EXPOSE), + "---" + ) + for(var/i in 1 to length(dropdownoptions)) + var/name = dropdownoptions[i] + var/link = dropdownoptions[name] + dropdownoptions[i] = "" + else + dropdownoptions = D.vv_get_dropdown() + + var/list/names = list() + if(!islist) + for(var/V in D.vars) + names += V + sleep(1) + + var/list/variable_html = list() + if(islist) + var/list/L = D + for(var/i in 1 to L.len) + var/key = L[i] + var/value + if(IS_NORMAL_LIST(L) && IS_VALID_ASSOC_KEY(key)) + value = L[key] + variable_html += debug_variable(i, value, 0, L) + else + names = sortList(names) + for(var/V in names) + if(D.can_vv_get(V)) + variable_html += D.vv_get_var(V) + + var/html = {" + + + + [title] + + + + +
    + + + + + +
    + + + + +
    + [sprite_text] +
    + [header.Join()] +
    +
    +
    + [formatted_type] + [marked_line] + [varedited_line] + [deleted_line] +
    +
    +
    + Refresh +
    + +
    +
    +
    +
    +
    + + E - Edit, tries to determine the variable type by itself.
    + C - Change, asks you for the var type first.
    + M - Mass modify: changes this variable for all objects of this type.
    +
    +
    + + + + + +
    +
    + Search: +
    +
    + +
    +
    +
      + [variable_html.Join()] +
    + + + +"} + src << browse(html, "window=variables[refid];size=475x650") + +/client/proc/vv_update_display(datum/D, span, content) + src << output("[span]:[content]", "variables[REF(D)].browser:replace_span") diff --git a/code/modules/antagonists/abductor/abductee/abductee.dm b/code/modules/antagonists/abductor/abductee/abductee.dm index 901d2f5b11..780c3f7419 100644 --- a/code/modules/antagonists/abductor/abductee/abductee.dm +++ b/code/modules/antagonists/abductor/abductee/abductee.dm @@ -31,4 +31,5 @@ /datum/antagonist/abductee/remove_innate_effects(mob/living/mob_override) update_abductor_icons_removed(mob_override ? mob_override.mind : owner) - qdel(brain_trauma) + if(!QDELETED(brain_trauma)) + qdel(brain_trauma) diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 39cdf8a5fa..a9f97942a1 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -92,10 +92,8 @@ M.cut_overlays() M.regenerate_icons() -/obj/item/clothing/suit/armor/abductor/vest/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - DeactivateStealth() - -/obj/item/clothing/suit/armor/abductor/vest/IsReflect() +/obj/item/clothing/suit/armor/abductor/vest/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + . = ..() DeactivateStealth() /obj/item/clothing/suit/armor/abductor/vest/ui_action_click() @@ -493,7 +491,7 @@ user.do_attack_animation(L) - if(L.check_shields(src, 0, "[user]'s [name]", MELEE_ATTACK)) + if(L.run_block(src, 0, "[user]'s [src]", ATTACK_TYPE_MELEE, 0, user, check_zone(user.zone_selected)) & BLOCK_SUCCESS) playsound(L, 'sound/weapons/genhit.ogg', 50, TRUE) return FALSE diff --git a/code/modules/antagonists/abductor/machinery/experiment.dm b/code/modules/antagonists/abductor/machinery/experiment.dm index ca6481bcfe..f92cb987d0 100644 --- a/code/modules/antagonists/abductor/machinery/experiment.dm +++ b/code/modules/antagonists/abductor/machinery/experiment.dm @@ -209,7 +209,6 @@ open_machine() SendBack(H) return "Specimen braindead - disposed." - return "ERROR" /obj/machinery/abductor/experiment/proc/SendBack(mob/living/carbon/human/H) diff --git a/code/modules/antagonists/bloodsucker/powers/haste.dm b/code/modules/antagonists/bloodsucker/powers/haste.dm index 143950b32f..05e2cd0330 100644 --- a/code/modules/antagonists/bloodsucker/powers/haste.dm +++ b/code/modules/antagonists/bloodsucker/powers/haste.dm @@ -8,7 +8,7 @@ desc = "Dash somewhere with supernatural speed. Those nearby may be knocked away, stunned, or left empty-handed." button_icon_state = "power_speed" bloodcost = 6 - cooldown = 50 + cooldown = 120 target_range = 15 power_activates_immediately = TRUE message_Trigger = ""//"Whom will you subvert to your will?" diff --git a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm index 3be5eb02e9..814ad2abd7 100644 --- a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm +++ b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm @@ -64,7 +64,7 @@ to_chat(owner, "Your victim's eyes are glazed over. They cannot perceive you.") return FALSE // Check: Target See Me? (behind wall) - if(!(target in view(target_range, get_turf(owner)))) + if(!(target in viewers(target_range, get_turf(owner)))) // Sub-Check: GET CLOSER //if (!(owner in range(target_range, get_turf(target))) // if (display_error) @@ -90,48 +90,56 @@ /datum/action/bloodsucker/targeted/mesmerize/proc/ContinueTarget(atom/A) var/mob/living/carbon/target = A - var/mob/living/user = owner + var/mob/living/L = owner - var/cancontinue=CheckCanTarget(target) + var/cancontinue = CheckCanTarget(target) if(!cancontinue) success = FALSE target.remove_status_effect(STATUS_EFFECT_MESMERIZE) - user.remove_status_effect(STATUS_EFFECT_MESMERIZE) + L.remove_status_effect(STATUS_EFFECT_MESMERIZE) DeactivatePower() DeactivateRangedAbility() StartCooldown() - to_chat(user, "[target] has escaped your gaze!") + to_chat(L, "[target] has escaped your gaze!") UnregisterSignal(target, COMSIG_MOVABLE_MOVED) /datum/action/bloodsucker/targeted/mesmerize/FireTargetedPower(atom/A) // set waitfor = FALSE <---- DONT DO THIS!We WANT this power to hold up ClickWithPower(), so that we can unlock the power when it's done. var/mob/living/carbon/target = A - var/mob/living/user = owner + var/mob/living/L = owner + L.face_atom(A) + if(!istype(target)) + return + success = TRUE + var/power_time = 138 + level_current * 12 + target.apply_status_effect(STATUS_EFFECT_MESMERIZE, 30) + L.apply_status_effect(STATUS_EFFECT_MESMERIZE, 30) + RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/ContinueTarget) + // 5 second windup + addtimer(CALLBACK(src, .proc/apply_effects, L, target, power_time), 6 SECONDS) + ADD_TRAIT(target, TRAIT_COMBAT_MODE_LOCKED, src) + ADD_TRAIT(L, TRAIT_COMBAT_MODE_LOCKED, src) - if(istype(target)) - success = TRUE - var/power_time = 138 + level_current * 12 - target.apply_status_effect(STATUS_EFFECT_MESMERIZE, 30) - user.apply_status_effect(STATUS_EFFECT_MESMERIZE, 30) - - RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/ContinueTarget) +/datum/action/bloodsucker/targeted/mesmerize/proc/apply_effects(aggressor, victim, power_time) + var/mob/living/carbon/target = victim + var/mob/living/L = aggressor + if(!success) + return + PowerActivatedSuccessfully() // blood & cooldown only altered if power activated successfully - less "fuck you"-y + target.apply_status_effect(STATUS_EFFECT_MESMERIZE, power_time) + REMOVE_TRAIT(L, TRAIT_COMBAT_MODE_LOCKED, src) + target.face_atom(L) + target.Stun(power_time) + to_chat(L, "[target] is fixed in place by your hypnotic gaze.") + target.next_move = world.time + power_time // <--- Use direct change instead. We want an unmodified delay to their next move // target.changeNext_move(power_time) // check click.dm + target.notransform = TRUE // <--- Fuck it. We tried using next_move, but they could STILL resist. We're just doing a hard freeze. + spawn(power_time) + if(istype(target) && success) + target.notransform = FALSE + REMOVE_TRAIT(target, TRAIT_COMBAT_MODE_LOCKED, src) + if(istype(L) && target.stat == CONSCIOUS && (target in view(10, get_turf(L)))) // They Woke Up! (Notice if within view) + to_chat(L, "[target] has snapped out of their trance.") - // 3 second windup - sleep(30) - if(success) - PowerActivatedSuccessfully() // blood & cooldown only altered if power activated successfully - less "fuck you"-y - target.face_atom(user) - target.apply_status_effect(STATUS_EFFECT_MESMERIZE, power_time) // pretty much purely cosmetic - target.Stun(power_time) - to_chat(user, "[target] is fixed in place by your hypnotic gaze.") - target.next_move = world.time + power_time // <--- Use direct change instead. We want an unmodified delay to their next move // target.changeNext_move(power_time) // check click.dm - target.notransform = TRUE // <--- Fuck it. We tried using next_move, but they could STILL resist. We're just doing a hard freeze. - spawn(power_time) - if(istype(target) && success) - target.notransform = FALSE - // They Woke Up! (Notice if within view) - if(istype(user) && target.stat == CONSCIOUS && (target in view(10, get_turf(user))) ) - to_chat(user, "[target] has snapped out of their trance.") /datum/action/bloodsucker/targeted/mesmerize/ContinueActive(mob/living/user, mob/living/target) return ..() && CheckCanUse() && CheckCanTarget(target) diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index cc15147312..967715ce2f 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -31,6 +31,7 @@ var/isabsorbing = 0 var/islinking = 0 var/geneticpoints = 10 + var/maxgeneticpoints = 10 var/purchasedpowers = list() var/mimicing = "" var/canrespec = 0 @@ -98,17 +99,24 @@ to_chat(H, "You have evolved beyond your clownish nature, allowing you to wield weapons without harming yourself.") H.dna.remove_mutation(CLOWNMUT) -/datum/antagonist/changeling/proc/reset_properties() +/datum/antagonist/changeling/proc/reset_properties(hardReset = FALSE) changeling_speak = 0 chosen_sting = null - geneticpoints = initial(geneticpoints) + + geneticpoints = maxgeneticpoints sting_range = initial(sting_range) - chem_storage = initial(chem_storage) - chem_recharge_rate = initial(chem_recharge_rate) - chem_charges = min(chem_charges, chem_storage) chem_recharge_slowdown = initial(chem_recharge_slowdown) mimicing = "" + if (hardReset) + chem_storage = initial(chem_storage) + chem_recharge_rate = initial(chem_recharge_rate) + geneticpoints = initial(geneticpoints) + maxgeneticpoints = initial(maxgeneticpoints) + + chem_charges = min(chem_charges, chem_storage) + + /datum/antagonist/changeling/proc/remove_changeling_powers() if(ishuman(owner.current) || ismonkey(owner.current)) reset_properties() @@ -287,7 +295,6 @@ prof.name_list[slot] = I.name prof.appearance_list[slot] = I.appearance prof.flags_cover_list[slot] = I.flags_cover - prof.item_color_list[slot] = I.item_color prof.item_state_list[slot] = I.item_state prof.exists_list[slot] = 1 else @@ -503,7 +510,6 @@ var/list/appearance_list = list() var/list/flags_cover_list = list() var/list/exists_list = list() - var/list/item_color_list = list() var/list/item_state_list = list() var/underwear @@ -526,7 +532,6 @@ newprofile.appearance_list = appearance_list.Copy() newprofile.flags_cover_list = flags_cover_list.Copy() newprofile.exists_list = exists_list.Copy() - newprofile.item_color_list = item_color_list.Copy() newprofile.item_state_list = item_state_list.Copy() newprofile.underwear = underwear newprofile.undershirt = undershirt diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index 574edf225a..aa45c56892 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -28,8 +28,7 @@ action.Remove(user) return -/obj/effect/proc_holder/changeling/Click() - var/mob/user = usr +/obj/effect/proc_holder/changeling/Trigger(mob/user) if(!user || !user.mind || !user.mind.has_antag_datum(/datum/antagonist/changeling)) return try_to_sting(user) diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm index 5cb4faa86e..c3c4ec78a3 100644 --- a/code/modules/antagonists/changeling/powers/absorb.dm +++ b/code/modules/antagonists/changeling/powers/absorb.dm @@ -96,6 +96,7 @@ to_chat(user, "[target] was one of us. We have absorbed their power.") target_ling.remove_changeling_powers() changeling.geneticpoints += round(target_ling.geneticpoints/2) + changeling.maxgeneticpoints += round(target_ling.geneticpoints/2) target_ling.geneticpoints = 0 target_ling.canrespec = 0 changeling.chem_storage += round(target_ling.chem_storage/2) diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 49c34f4d1f..8514df4bd6 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -441,23 +441,23 @@ var/remaining_uses //Set by the changeling ability. -/obj/item/shield/changeling/Initialize() +/obj/item/shield/changeling/Initialize(mapload) . = ..() ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT) if(ismob(loc)) loc.visible_message("The end of [loc.name]\'s hand inflates rapidly, forming a huge shield-like mass!", "We inflate our hand into a strong shield.", "You hear organic matter ripping and tearing!") -/obj/item/shield/changeling/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(remaining_uses < 1) +/obj/item/shield/changeling/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + block_return[BLOCK_RETURN_BLOCK_CAPACITY] = (block_return[BLOCK_RETURN_BLOCK_CAPACITY] || 0) + remaining_uses + return ..() + +/obj/item/shield/changeling/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + . = ..() + if(--remaining_uses < 1) if(ishuman(loc)) var/mob/living/carbon/human/H = loc H.visible_message("With a sickening crunch, [H] reforms [H.p_their()] shield into an arm!", "We assimilate our shield into our body", "You press your hand onto [src], golden tendrils of light latching onto you. Was this the best of ideas?") + if(add_servant_of_ratvar(user, FALSE, FALSE, /datum/antagonist/clockcult/neutered/traitor)) + spent = TRUE + // Add some (5 KW) power so they don't suffer for 100 ticks + GLOB.clockwork_power += 5000 + // This intentionally does not use adjust_clockwork_power. + else + to_chat(user, "[src] falls dark. It appears you weren't worthy.") + return ..() + //ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/clockwork/slab/debug/attack_hand(mob/living/user) if(!is_servant_of_ratvar(user)) @@ -103,8 +121,8 @@ . = ..() addtimer(CALLBACK(src, .proc/check_on_mob, user), 1) //dropped is called before the item is out of the slot, so we need to check slightly later -/obj/item/clockwork/slab/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) - . = list() +/obj/item/clockwork/slab/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) + . = ..() if(isinhands && item_state && inhand_overlay) var/mutable_appearance/M = mutable_appearance(icon_file, "slab_[inhand_overlay]") . += M diff --git a/code/modules/antagonists/clockcult/clock_mobs/_eminence.dm b/code/modules/antagonists/clockcult/clock_mobs/_eminence.dm index e4722dbcb0..faa5e025ca 100644 --- a/code/modules/antagonists/clockcult/clock_mobs/_eminence.dm +++ b/code/modules/antagonists/clockcult/clock_mobs/_eminence.dm @@ -232,7 +232,7 @@ background_icon_state = "bg_clock" buttontooltipstyle = "clockcult" -/datum/action/innate/eminence/IsAvailable() +/datum/action/innate/eminence/IsAvailable(silent = FALSE) if(!iseminence(owner)) qdel(src) return @@ -283,7 +283,7 @@ desc = "Initiates a mass recall, warping all servants to the Ark after a short delay. This can only be used once." button_icon_state = "Spatial Gateway" -/datum/action/innate/eminence/mass_recall/IsAvailable() +/datum/action/innate/eminence/mass_recall/IsAvailable(silent = FALSE) . = ..() if(.) var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = GLOB.ark_of_the_clockwork_justiciar diff --git a/code/modules/antagonists/clockcult/clock_scripture.dm b/code/modules/antagonists/clockcult/clock_scripture.dm index 753de786dc..16d251fe92 100644 --- a/code/modules/antagonists/clockcult/clock_scripture.dm +++ b/code/modules/antagonists/clockcult/clock_scripture.dm @@ -30,6 +30,7 @@ Applications: 8 servants, 3 caches, and 100 CV var/primary_component var/important = FALSE //important scripture will be italicized in the slab's interface var/sort_priority = 1 //what position the scripture should have in a list of scripture. Should be based off of component costs/reqs, but you can't initial() lists. + var/requires_full_power = FALSE //requires the user to be a full, non neutered servant of ratvar //messages for offstation scripture recital, courtesy ratvar's generals(and neovgre) var/static/list/neovgre_penalty = list("Go to the station.", "Useless.", "Don't waste time.", "Pathetic.", "Wasteful.") @@ -77,6 +78,9 @@ Applications: 8 servants, 3 caches, and 100 CV /datum/clockwork_scripture/proc/can_recite() //If the words can be spoken if(!invoker || !slab || invoker.get_active_held_item() != slab) return FALSE + if(!is_servant_of_ratvar(invoker, requires_full_power)) + to_chat(invoker, "You aren't strongly connected enough to Ratvar to invoke this!") + return FALSE if(!invoker.can_speak_vocal()) to_chat(invoker, "You are unable to speak the words of the scripture!") return FALSE @@ -236,18 +240,21 @@ Applications: 8 servants, 3 caches, and 100 CV return FALSE return TRUE +/datum/clockwork_scripture/create_object/proc/get_spawn_path(mob/user) + return object_path + /datum/clockwork_scripture/create_object/scripture_effects() if(creator_message && observer_message) invoker.visible_message(observer_message, creator_message) else if(creator_message) to_chat(invoker, creator_message) - var/obj/O = new object_path (get_turf(invoker)) + var/to_spawn = get_spawn_path(invoker) + var/obj/O = new to_spawn(get_turf(invoker)) O.ratvar_act() //update the new object so it gets buffed if ratvar is alive if(isitem(O) && put_object_in_hands) invoker.put_in_hands(O) return TRUE - //Used specifically to create construct shells. /datum/clockwork_scripture/create_object/construct put_object_in_hands = FALSE diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm index 5d7a95222f..6349ecb581 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm @@ -88,7 +88,7 @@ sort_priority = 4 quickbind = TRUE quickbind_desc = "Creates a Sigil of Submission, which will convert non-Servants that remain on it." - + requires_full_power = TRUE //Kindle: Charges the slab with blazing energy. It can be released to stun and silence a target. /datum/clockwork_scripture/ranged_ability/kindle @@ -211,6 +211,7 @@ quickbind = TRUE quickbind_desc = "Returns you to Reebe." var/client_color + requires_full_power = TRUE /datum/clockwork_scripture/abscond/check_special_requirements() if(is_reebe(invoker.z)) diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm index 4e1a5b42cb..130fc24583 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm @@ -50,7 +50,6 @@ return FALSE return ..() - //Vitality Matrix: Creates a sigil which will drain health from nonservants and can use that health to heal or even revive servants. /datum/clockwork_scripture/create_object/vitality_matrix descname = "Trap, Damage to Healing" @@ -77,6 +76,10 @@ return FALSE return ..() +/datum/clockwork_scripture/create_object/vitality_matrix/get_spawn_path(mob/user) + if(!is_servant_of_ratvar(user, TRUE)) + return /obj/effect/clockwork/sigil/vitality/neutered + return ..() //Judicial Visor: Creates a judicial visor, which can smite an area. /datum/clockwork_scripture/create_object/judicial_visor @@ -150,7 +153,7 @@ /obj/item/clothing/head/helmet/space, /obj/item/clothing/shoes/magboots)) //replace this only if ratvar is up -/datum/action/innate/clockwork_armaments/IsAvailable() +/datum/action/innate/clockwork_armaments/IsAvailable(silent = FALSE) if(!is_servant_of_ratvar(owner)) qdel(src) return diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index cf3d88983c..cbfd443744 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -5,15 +5,27 @@ antagpanel_category = "Clockcult" job_rank = ROLE_SERVANT_OF_RATVAR antag_moodlet = /datum/mood_event/cult + var/datum/action/innate/hierophant/hierophant_network = new threat = 3 - var/datum/action/innate/hierophant/hierophant_network = new() var/datum/team/clockcult/clock_team var/make_team = TRUE //This should be only false for tutorial scarabs + var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact + var/ignore_eligibility_check = FALSE + var/ignore_holy_water = FALSE /datum/antagonist/clockcult/silent silent = TRUE show_in_antagpanel = FALSE //internal +/datum/antagonist/clockcult/neutered + neutered = TRUE + +/datum/antagonist/clockcult/neutered/traitor + ignore_eligibility_check = TRUE + ignore_holy_water = TRUE + show_in_roundend = FALSE + make_team = FALSE + /datum/antagonist/clockcult/Destroy() qdel(hierophant_network) return ..() @@ -38,7 +50,7 @@ /datum/antagonist/clockcult/can_be_owned(datum/mind/new_owner) . = ..() - if(.) + if(. && !ignore_eligibility_check) . = is_eligible_servant(new_owner.current) /datum/antagonist/clockcult/greet() diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 9a086b75a2..d64e99d206 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -17,7 +17,7 @@ qdel(X) ..() -/datum/action/innate/cult/blood_magic/IsAvailable() +/datum/action/innate/cult/blood_magic/IsAvailable(silent = FALSE) if(!iscultist(owner)) return FALSE return ..() @@ -118,7 +118,7 @@ hand_magic = null ..() -/datum/action/innate/cult/blood_spell/IsAvailable() +/datum/action/innate/cult/blood_spell/IsAvailable(silent = FALSE) if(!iscultist(owner) || owner.incapacitated() || !charges) return FALSE return ..() @@ -439,7 +439,7 @@ "A feeling of warmth washes over you, rays of holy light surround your body and protect you from the flash of light!") else // cult doesn't stun any longer when halos are out, instead it does burn damage + knockback! var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(user_antag.cult_team.cult_ascendent) + if(user_antag.cult_team?.cult_ascendent) if(!iscultist(L)) L.adjustFireLoss(20) if(L.move_resist < MOVE_FORCE_STRONG) @@ -577,7 +577,9 @@ var/turf/T = get_turf(target) if(istype(target, /obj/item/stack/sheet/metal)) var/obj/item/stack/sheet/candidate = target - if(candidate.use(50)) + if(!iscultist(user, TRUE)) + to_chat(user, "You are not strongly connected enough to Nar'sie to use make constructs...") + else if(candidate.use(50)) uses-- to_chat(user, "A dark cloud emanates from your hand and swirls around the metal, twisting it into a construct shell!") new /obj/structure/constructshell(T) @@ -600,7 +602,9 @@ SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25)) else if(istype(target,/mob/living/silicon/robot)) var/mob/living/silicon/robot/candidate = target - if(candidate.mmi) + if(!iscultist(user, TRUE)) + to_chat(user, "You are not strongly connected enough to Nar'sie to use make constructs...") + else if(candidate.mmi) user.visible_message("A dark cloud emanates from [user]'s hand and swirls around [candidate]!") playsound(T, 'sound/machines/airlock_alien_prying.ogg', 80, 1) var/prev_color = candidate.color @@ -656,6 +660,7 @@ C.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), SLOT_WEAR_SUIT) C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), SLOT_SHOES) C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), SLOT_BACK) + C.equip_to_slot_or_del(new /obj/item/clothing/gloves/fingerless/pugilist/hungryghost(user), SLOT_GLOVES) if(C == user) qdel(src) //Clears the hands C.put_in_hands(new /obj/item/melee/cultblade(user)) @@ -819,6 +824,8 @@ if("Blood Beam (500)") if(uses < 500) to_chat(user, "You need 500 charges to perform this rite.") + else if(!iscultist(user, TRUE)) + to_chat(user, "You are not strongly connected to Nar'sie enough to use something of this power.") else var/obj/rite = new /obj/item/blood_beam() uses -= 500 diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 1746fd135c..023794182a 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -11,15 +11,27 @@ var/datum/action/innate/cult/blood_magic/magic = new job_rank = ROLE_CULTIST var/ignore_implant = FALSE + var/make_team = TRUE var/give_equipment = FALSE var/datum/team/cult/cult_team + var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact + var/ignore_eligibility_checks = FALSE + var/ignore_holy_water = FALSE +/datum/antagonist/cult/neutered + neutered = TRUE + +/datum/antagonist/cult/neutered/traitor + ignore_eligibility_checks = TRUE + ignore_holy_water = TRUE + show_in_roundend = FALSE + make_team = FALSE /datum/antagonist/cult/get_team() return cult_team /datum/antagonist/cult/create_team(datum/team/cult/new_team) - if(!new_team) + if(!new_team && make_team) //todo remove this and allow admin buttons to create more than one cult for(var/datum/antagonist/cult/H in GLOB.antagonists) if(!H.owner) @@ -30,12 +42,12 @@ cult_team = new /datum/team/cult cult_team.setup_objectives() return - if(!istype(new_team)) + if(make_team && !istype(new_team)) stack_trace("Wrong team type passed to [type] initialization.") cult_team = new_team /datum/antagonist/cult/proc/add_objectives() - objectives |= cult_team.objectives + objectives |= cult_team?.objectives /datum/antagonist/cult/Destroy() QDEL_NULL(communion) @@ -44,7 +56,7 @@ /datum/antagonist/cult/can_be_owned(datum/mind/new_owner) . = ..() - if(. && !ignore_implant) + if(. && !ignore_implant && !ignore_eligibility_checks) . = is_convertable_to_cult(new_owner.current,cult_team) /datum/antagonist/cult/greet() @@ -62,7 +74,7 @@ SSticker.mode.update_cult_icons_added(owner) current.log_message("has been converted to the cult of Nar'Sie!", LOG_ATTACK, color="#960000") - if(cult_team.blood_target && cult_team.blood_target_image && current.client) + if(cult_team?.blood_target && cult_team.blood_target_image && current.client) current.client.images += cult_team.blood_target_image @@ -105,13 +117,13 @@ current = mob_override current.faction |= "cult" current.grant_language(/datum/language/narsie) - if(!cult_team.cult_master) + if(!cult_team?.cult_master) vote.Grant(current) communion.Grant(current) if(ishuman(current)) magic.Grant(current) current.throw_alert("bloodsense", /obj/screen/alert/bloodsense) - if(cult_team.cult_risen) + if(cult_team?.cult_risen) cult_team.rise(current) if(cult_team.cult_ascendent) cult_team.ascend(current) @@ -144,7 +156,7 @@ owner.current.visible_message("[owner.current] looks like [owner.current.p_theyve()] just reverted to [owner.current.p_their()] old faith!", null, null, null, owner.current) to_chat(owner.current, "An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.") owner.current.log_message("has renounced the cult of Nar'Sie!", LOG_ATTACK, color="#960000") - if(cult_team.blood_target && cult_team.blood_target_image && owner.current.client) + if(cult_team?.blood_target && cult_team.blood_target_image && owner.current.client) owner.current.client.images -= cult_team.blood_target_image . = ..() @@ -206,7 +218,7 @@ throwing.Grant(current) current.update_action_buttons_icon() current.apply_status_effect(/datum/status_effect/cult_master) - if(cult_team.cult_risen) + if(cult_team?.cult_risen) cult_team.rise(current) if(cult_team.cult_ascendent) cult_team.ascend(current) diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index 761412e9f8..77893225fa 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -6,7 +6,7 @@ buttontooltipstyle = "cult" check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS -/datum/action/innate/cult/IsAvailable() +/datum/action/innate/cult/IsAvailable(silent = FALSE) if(!iscultist(owner)) return FALSE return ..() @@ -51,7 +51,7 @@ name = "Spiritual Communion" desc = "Conveys a message from the spirit realm that all cultists can hear." -/datum/action/innate/cult/comm/spirit/IsAvailable() +/datum/action/innate/cult/comm/spirit/IsAvailable(silent = FALSE) if(iscultist(owner.mind.current)) return TRUE @@ -72,9 +72,9 @@ name = "Assert Leadership" button_icon_state = "cultvote" -/datum/action/innate/cult/mastervote/IsAvailable() +/datum/action/innate/cult/mastervote/IsAvailable(silent = FALSE) var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(!C || C.cult_team.cult_vote_called || !ishuman(owner)) + if(!C?.cult_team || C.cult_team.cult_vote_called || !ishuman(owner)) return FALSE return ..() @@ -82,6 +82,9 @@ var/choice = alert(owner, "The mantle of leadership is heavy. Success in this role requires an expert level of communication and experience. Are you sure?",, "Yes", "No") if(choice == "Yes" && IsAvailable()) var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) + if(!C.cult_team) + to_chat(owner, "Do you not alreaady lead yourself?") + return pollCultists(owner,C.cult_team) /proc/pollCultists(var/mob/living/Nominee,datum/team/cult/team) //Cult Master Poll @@ -137,7 +140,7 @@ to_chat(B.current,"[Nominee] has won the cult's support and is now their master. Follow [Nominee.p_their()] orders to the best of your ability!") return TRUE -/datum/action/innate/cult/master/IsAvailable() +/datum/action/innate/cult/master/IsAvailable(silent = FALSE) if(!owner.mind || !owner.mind.has_antag_datum(/datum/antagonist/cult/master) || GLOB.cult_narsie) return 0 return ..() @@ -151,6 +154,9 @@ var/datum/antagonist/cult/antag = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) if(!antag) return + if(!antag.cult_team) + to_chat(owner, "You have no team. You are alone.") + return for(var/i in 1 to 4) chant(i) var/list/destinations = list() @@ -220,9 +226,9 @@ CM.attached_action = src ..() -/datum/action/innate/cult/master/cultmark/IsAvailable() +/datum/action/innate/cult/master/cultmark/IsAvailable(silent = FALSE) if(cooldown > world.time) - if(!CM.active) + if(!CM.active && !silent) to_chat(owner, "You need to wait [DisplayTimeText(cooldown - world.time)] before you can mark another target!") return FALSE return ..() @@ -261,7 +267,10 @@ return FALSE var/datum/antagonist/cult/C = caller.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - + if(!C.cult_team) + to_chat(ranged_ability_user, "What is the point of marking a target for yourself?") + remove_ranged_ability() + return if(target in view(7, get_turf(ranged_ability_user))) if(C.cult_team.blood_target) to_chat(ranged_ability_user, "The cult has already designated a target!") @@ -299,7 +308,7 @@ name = "Mark a Blood Target for the Cult" desc = "Marks a target for the entire cult to track." -/datum/action/innate/cult/master/cultmark/ghost/IsAvailable() +/datum/action/innate/cult/master/cultmark/ghost/IsAvailable(silent = FALSE) if(istype(owner, /mob/dead/observer) && iscultist(owner.mind.current)) return TRUE else @@ -313,7 +322,7 @@ var/cooldown = 0 var/base_cooldown = 600 -/datum/action/innate/cult/ghostmark/IsAvailable() +/datum/action/innate/cult/ghostmark/IsAvailable(silent = FALSE) if(istype(owner, /mob/dead/observer) && iscultist(owner.mind.current)) return TRUE else @@ -330,8 +339,11 @@ /datum/action/innate/cult/ghostmark/Activate() var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) + if(!C.cult_team) + to_chat(owner, "You are alone. You do not have a team.") + return if(C.cult_team.blood_target) - if(cooldown>world.time) + if(cooldown > world.time) reset_blood_target(C.cult_team) to_chat(owner, "You have cleared the cult's blood target!") deltimer(C.cult_team.blood_target_reset_timer) @@ -339,7 +351,7 @@ else to_chat(owner, "The cult has already designated a target!") return - if(cooldown>world.time) + if(cooldown > world.time) to_chat(owner, "You aren't ready to place another blood mark yet!") return target = owner.orbiting?.parent || get_turf(owner) @@ -389,11 +401,11 @@ PM.attached_action = src ..() -/datum/action/innate/cult/master/pulse/IsAvailable() +/datum/action/innate/cult/master/pulse/IsAvailable(silent = FALSE) if(!owner.mind || !owner.mind.has_antag_datum(/datum/antagonist/cult/master)) return FALSE if(cooldown > world.time) - if(!PM.active) + if(!PM.active && !silent) to_chat(owner, "You need to wait [DisplayTimeText(cooldown - world.time)] before you can pulse again!") return FALSE return ..() diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index edeb74eeaf..b05aa7f769 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -6,6 +6,21 @@ throw_range = 5 w_class = WEIGHT_CLASS_SMALL +/obj/item/tome/traitor + var/spent = FALSE + +/obj/item/tome/traitor/check_uplink_validity() + return !spent + +/obj/item/tome/traitor/attack_self(mob/living/user) + if(!iscultist(user) && !spent) + to_chat(user, "You press your hand onto [src], sinister tendrils of corrupted magic swirling around you. Was this the best of ideas?") + if(user.mind.add_antag_datum(/datum/antagonist/cult/neutered/traitor)) + spent = TRUE + else + to_chat(user, "[src] falls dark. It appears you weren't worthy.") + return ..() + /obj/item/melee/cultblade/dagger name = "ritual dagger" desc = "A strange dagger said to be used by sinister groups for \"preparing\" a corpse before sacrificing it to their dark gods." @@ -162,24 +177,20 @@ jaunt.Remove(user) user.update_icons() -/obj/item/twohanded/required/cult_bastard/IsReflect() - if(spinning) +/obj/item/twohanded/required/cult_bastard/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(spinning && is_energy_reflectable_projectile(object) && (attack_type & ATTACK_TYPE_PROJECTILE)) playsound(src, pick('sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg', 'sound/weapons/effects/ric3.ogg', 'sound/weapons/effects/ric4.ogg', 'sound/weapons/effects/ric5.ogg'), 100, 1) - return TRUE - else - ..() - -/obj/item/twohanded/required/cult_bastard/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT if(prob(final_block_chance)) - if(attack_type == PROJECTILE_ATTACK) + if(attack_type & ATTACK_TYPE_PROJECTILE) owner.visible_message("[owner] deflects [attack_text] with [src]!") playsound(src, pick('sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg', 'sound/weapons/effects/ric3.ogg', 'sound/weapons/effects/ric4.ogg', 'sound/weapons/effects/ric5.ogg'), 100, 1) - return TRUE + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT else playsound(src, 'sound/weapons/parry.ogg', 75, 1) owner.visible_message("[owner] parries [attack_text] with [src]!") - return TRUE - return FALSE + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return BLOCK_NONE /obj/item/twohanded/required/cult_bastard/afterattack(atom/target, mob/user, proximity, click_parameters) . = ..() @@ -211,7 +222,7 @@ phasein = /obj/effect/temp_visual/dir_setting/cult/phase phaseout = /obj/effect/temp_visual/dir_setting/cult/phase/out -/datum/action/innate/dash/cult/IsAvailable() +/datum/action/innate/dash/cult/IsAvailable(silent = FALSE) if(iscultist(holder) && current_charges) return TRUE else @@ -231,7 +242,7 @@ sword = bastard holder = user -/datum/action/innate/cult/spin2win/IsAvailable() +/datum/action/innate/cult/spin2win/IsAvailable(silent = FALSE) if(iscultist(holder) && cooldown <= world.time) return TRUE else @@ -353,6 +364,11 @@ brightness_on = 0 actions_types = list() + +/obj/item/clothing/head/helmet/space/hardsuit/cult/ComponentInitialize() + . = ..() + AddElement(/datum/element/spellcasting, SPELL_CULT_HELMET, ITEM_SLOT_HEAD) + /obj/item/clothing/suit/space/hardsuit/cult name = "\improper Nar'Sien hardened armor" icon_state = "cult_armor" @@ -363,6 +379,10 @@ armor = list("melee" = 70, "bullet" = 50, "laser" = 30,"energy" = 15, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 40, "acid" = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/cult +/obj/item/clothing/suit/space/hardsuit/cult/ComponentInitialize() + . = ..() + AddElement(/datum/element/spellcasting, SPELL_CULT_ARMOR, ITEM_SLOT_OCLOTHING) + /obj/item/sharpener/cult name = "eldritch whetstone" desc = "A block, empowered by dark magic. Sharp weapons will be enhanced when used on the stone." @@ -414,7 +434,13 @@ user.adjustBruteLoss(25) user.dropItemToGround(src, TRUE) -/obj/item/clothing/suit/hooded/cultrobes/cult_shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) +/obj/item/clothing/suit/hooded/cultrobes/cult_shield/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(current_charges) + block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = 100 + block_return[BLOCK_RETURN_BLOCK_CAPACITY] = (block_return[BLOCK_RETURN_BLOCK_CAPACITY] || 0) + current_charges + return ..() + +/obj/item/clothing/suit/hooded/cultrobes/cult_shield/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(current_charges) owner.visible_message("\The [attack_text] is deflected in a burst of blood-red sparks!") current_charges-- @@ -422,11 +448,11 @@ if(!current_charges) owner.visible_message("The runed shield around [owner] suddenly disappears!") owner.update_inv_wear_suit() - return 1 - return 0 + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return BLOCK_NONE -/obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands, icon_file, style_flags = NONE) - . = list() +/obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) + . = ..() if(!isinhands && current_charges) . += mutable_appearance('icons/effects/cult_effects.dmi', "shield-cult", MOB_LAYER + 0.01) @@ -498,7 +524,7 @@ var/static/curselimit = 0 /obj/item/shuttle_curse/attack_self(mob/living/user) - if(!iscultist(user)) + if(!iscultist(user, TRUE)) user.dropItemToGround(src, TRUE) user.DefaultCombatKnockdown(100) to_chat(user, "A powerful force shoves you away from [src]!") @@ -725,19 +751,19 @@ playsound(T, 'sound/effects/glassbr3.ogg', 100) qdel(src) -/obj/item/twohanded/cult_spear/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) +/obj/item/twohanded/cult_spear/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(wielded) final_block_chance *= 2 if(prob(final_block_chance)) - if(attack_type == PROJECTILE_ATTACK) + if(attack_type & ATTACK_TYPE_PROJECTILE) owner.visible_message("[owner] deflects [attack_text] with [src]!") playsound(src, pick('sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg', 'sound/weapons/effects/ric3.ogg', 'sound/weapons/effects/ric4.ogg', 'sound/weapons/effects/ric5.ogg'), 100, 1) - return TRUE + return BLOCK_SUCCESS | BLOCK_SHOULD_REDIRECT | BLOCK_REDIRECTED | BLOCK_PHYSICAL_EXTERNAL else playsound(src, 'sound/weapons/parry.ogg', 100, 1) owner.visible_message("[owner] parries [attack_text] with [src]!") - return TRUE - return FALSE + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return BLOCK_NONE /datum/action/innate/cult/spear name = "Bloody Bond" @@ -936,10 +962,18 @@ hitsound = 'sound/weapons/smash.ogg' var/illusions = 2 -/obj/item/shield/mirror/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) +/obj/item/shield/mirror/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + block_return[BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE] = max(block_return[BLOCK_RETURN_REFLECT_PROJECTILE_CHANCE] || null, final_block_chance) + return ..() + +/obj/item/shield/mirror/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(iscultist(owner)) - if(istype(hitby, /obj/item/projectile)) - var/obj/item/projectile/P = hitby + if(istype(object, /obj/item/projectile) && (attack_type == ATTACK_TYPE_PROJECTILE)) + if(is_energy_reflectable_projectile(object)) + if(prob(final_block_chance)) + return BLOCK_SUCCESS | BLOCK_SHOULD_REDIRECT | BLOCK_PHYSICAL_EXTERNAL | BLOCK_REDIRECTED + return BLOCK_NONE //To avoid reflection chance double-dipping with block chance + var/obj/item/projectile/P = object if(P.damage >= 30) var/turf/T = get_turf(owner) T.visible_message("The sheer force from [P] shatters the mirror shield!") @@ -947,11 +981,9 @@ playsound(T, 'sound/effects/glassbr3.ogg', 100) owner.DefaultCombatKnockdown(25) qdel(src) - return FALSE - if(P.is_reflectable) - return FALSE //To avoid reflection chance double-dipping with block chance + return BLOCK_NONE . = ..() - if(.) + if(. & BLOCK_SUCCESS) playsound(src, 'sound/weapons/parry.ogg', 100, 1) if(illusions > 0) illusions-- @@ -966,7 +998,7 @@ E.Copy_Parent(owner, 70, 10) E.GiveTarget(owner) E.Goto(owner, owner.movement_delay(), E.minimum_distance) - return TRUE + return else if(prob(50)) var/mob/living/simple_animal/hostile/illusion/H = new(owner.loc) @@ -975,7 +1007,7 @@ H.GiveTarget(owner) H.move_to_delay = owner.movement_delay() to_chat(owner, "[src] betrays you!") - return FALSE + return BLOCK_NONE /obj/item/shield/mirror/proc/readd() illusions++ @@ -983,11 +1015,6 @@ var/mob/living/holder = loc to_chat(holder, "The shield's illusions are back at full strength!") -/obj/item/shield/mirror/IsReflect() - if(prob(block_chance)) - return TRUE - return FALSE - /obj/item/shield/mirror/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) var/turf/T = get_turf(hit_atom) var/datum/thrownthing/D = throwingdatum diff --git a/code/modules/antagonists/cult/ritual.dm b/code/modules/antagonists/cult/ritual.dm index e92f562db3..40804ccc24 100644 --- a/code/modules/antagonists/cult/ritual.dm +++ b/code/modules/antagonists/cult/ritual.dm @@ -59,6 +59,9 @@ This file contains the cult dagger and rune list code rune_to_scribe = GLOB.rune_types[entered_rune_name] if(!rune_to_scribe) return + if(!iscultist(user, initial(rune_to_scribe.requires_full_power))) + to_chat(user, "You aren't strongly connected enough to Nar'sie to do draw this.") + return if(initial(rune_to_scribe.req_keyword)) chosen_keyword = stripped_input(user, "Enter a keyword for the new rune.", "Words of Power") if(!chosen_keyword) @@ -84,8 +87,8 @@ This file contains the cult dagger and rune list code to_chat(user, "Only one ritual site remains - it must be reserved for the final summoning!") return if(ispath(rune_to_scribe, /obj/effect/rune/narsie)) - var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives - var/datum/objective/sacrifice/sac_objective = locate() in user_antag.cult_team.objectives + var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team?.objectives + var/datum/objective/sacrifice/sac_objective = locate() in user_antag.cult_team?.objectives if(!summon_objective) to_chat(user, "Nar'Sie does not wish to be summoned!") return diff --git a/code/modules/antagonists/cult/rune_spawn_action.dm b/code/modules/antagonists/cult/rune_spawn_action.dm index 60a8527860..b164246060 100644 --- a/code/modules/antagonists/cult/rune_spawn_action.dm +++ b/code/modules/antagonists/cult/rune_spawn_action.dm @@ -14,7 +14,7 @@ var/obj/effect/temp_visual/cult/rune_spawn/rune_center_type var/rune_color -/datum/action/innate/cult/create_rune/IsAvailable() +/datum/action/innate/cult/create_rune/IsAvailable(silent = FALSE) if(!rune_type || cooldown > world.time) return FALSE return ..() diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index ec763a66d7..b0538d6521 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -32,6 +32,7 @@ Runes can either be invoked by one's self or with many different cultists. Each var/scribe_delay = 40 //how long the rune takes to create var/scribe_damage = 0.1 //how much damage you take doing it + var/requires_full_power = FALSE //requires full power to draw or invoke var/invoke_damage = 0 //how much damage invokers take when invoking it var/construct_invoke = TRUE //if constructs can invoke it @@ -185,6 +186,7 @@ structure_check() searches for nearby cultist structures required for the invoca color = RUNE_COLOR_OFFER req_cultists = 1 rune_in_use = FALSE + requires_full_power = TRUE /obj/effect/rune/convert/do_invoke_glow() return @@ -458,6 +460,7 @@ structure_check() searches for nearby cultist structures required for the invoca pixel_y = -32 scribe_delay = 500 //how long the rune takes to create scribe_damage = 40.1 //how much damage you take doing it + requires_full_power = TRUE var/used = FALSE /obj/effect/rune/narsie/Initialize(mapload, set_keyword) @@ -482,6 +485,9 @@ structure_check() searches for nearby cultist structures required for the invoca fail_invoke() return var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) + if(!user_antag.cult_team) + to_chat(user, "You can't seem to make the arcane links to your fellows that you'd need to use this.") + return var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives var/area/place = get_area(src) if(!(place in summon_objective.summon_spots)) @@ -812,6 +818,7 @@ structure_check() searches for nearby cultist structures required for the invoca invoke_damage = 10 construct_invoke = FALSE color = RUNE_COLOR_DARKRED + requires_full_power = TRUE var/mob/living/affecting = null var/ghost_limit = 3 var/ghosts = 0 @@ -942,6 +949,7 @@ structure_check() searches for nearby cultist structures required for the invoca color = RUNE_COLOR_DARKRED req_cultists = 3 scribe_delay = 100 + requires_full_power = TRUE /obj/effect/rune/apocalypse/invoke(var/list/invokers) if(rune_in_use) @@ -950,6 +958,9 @@ structure_check() searches for nearby cultist structures required for the invoca var/area/place = get_area(src) var/mob/living/user = invokers[1] var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) + if(!user_antag.cult_team) + to_chat(user, "You can't seem to make the arcane links to your fellows that you'd need to use this.") + return var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives if(summon_objective.summon_spots.len <= 1) to_chat(user, "Only one ritual site remains - it must be reserved for the final summoning!") diff --git a/code/modules/antagonists/devil/true_devil/inventory.dm b/code/modules/antagonists/devil/true_devil/inventory.dm index 778c421616..579dfb4fb1 100644 --- a/code/modules/antagonists/devil/true_devil/inventory.dm +++ b/code/modules/antagonists/devil/true_devil/inventory.dm @@ -12,12 +12,7 @@ var/obj/item/r_hand = get_item_for_held_index(2) if(r_hand) - - var/r_state = r_hand.item_state - if(!r_state) - r_state = r_hand.icon_state - - var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(state = r_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) + var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(default_layer = DEVIL_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) hands_overlays += r_hand_overlay @@ -28,12 +23,7 @@ client.screen |= r_hand if(l_hand) - - var/l_state = l_hand.item_state - if(!l_state) - l_state = l_hand.icon_state - - var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(state = l_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) hands_overlays += l_hand_overlay diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 2c91e18bd8..b4f896fa08 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -414,11 +414,11 @@ if(safety) to_chat(usr, "The safety is still on.") return + if(!timing && nuclear_cooldown > world.time) + to_chat(usr, "[src]'s timer protocols are currently on cooldown, please stand by.") + return timing = !timing if(timing) - if(nuclear_cooldown > world.time) - to_chat(usr, "[src]'s timer protocols are currently on cooldown, please stand by.") - return previous_level = get_security_level() detonation_timer = world.time + (timer_set * 10) for(var/obj/item/pinpointer/nuke/syndicate/S in GLOB.pinpointer_list) diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm index a99e3900b0..2d84ed7c22 100644 --- a/code/modules/antagonists/revenant/revenant_abilities.dm +++ b/code/modules/antagonists/revenant/revenant_abilities.dm @@ -117,7 +117,7 @@ tinfoil_check = FALSE /obj/effect/proc_holder/spell/aoe_turf/revenant - clothes_req = 0 + clothes_req = NONE action_icon = 'icons/mob/actions/actions_revenant.dmi' action_background_icon_state = "bg_revenant" panel = "Revenant Abilities (Locked)" @@ -135,7 +135,7 @@ else name = "[initial(name)] ([cast_amount]E)" -/obj/effect/proc_holder/spell/aoe_turf/revenant/can_cast(mob/living/simple_animal/revenant/user = usr) +/obj/effect/proc_holder/spell/aoe_turf/revenant/can_cast(mob/living/simple_animal/revenant/user = usr, skipcharge = FALSE, silent = FALSE) if(charge_counter < charge_max) return FALSE if(!istype(user)) //Badmins, no. Badmins, don't do it. diff --git a/code/modules/antagonists/santa/santa.dm b/code/modules/antagonists/santa/santa.dm index bf42188cf6..f58a21ba42 100644 --- a/code/modules/antagonists/santa/santa.dm +++ b/code/modules/antagonists/santa/santa.dm @@ -18,7 +18,7 @@ owner.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/presents) var/obj/effect/proc_holder/spell/targeted/area_teleport/teleport/telespell = new - telespell.clothes_req = 0 //santa robes aren't actually magical. + telespell.clothes_req = NONE //santa robes aren't actually magical. owner.AddSpell(telespell) //does the station have chimneys? WHO KNOWS! /datum/antagonist/santa/proc/give_objective() diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index 724c4e6f76..c1f493ac52 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -179,8 +179,8 @@ /obj/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) if(resistance_flags & INDESTRUCTIBLE) return FALSE - for(var/mob/living/L in contents) - if(!issilicon(L) && !isbrain(L)) + for(var/mob/living/L in GetAllContents()) + if(!ispAI(L) && !isbrain(L)) to_chat(S, "An organism has been detected inside this object. Aborting.") return FALSE return ..() @@ -416,6 +416,57 @@ to_chat(S, "Destroying this object would cause a catastrophic chain reaction. Aborting.") return FALSE +/obj/machinery/ore_silo/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "Destroying this object, however tempting it's, will disrupt the research development that may serve for our masters in the future. Aborting.") + return FALSE + +/obj/machinery/rnd/server/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "Destroying this object, will disrupt the research development that may serve for our masters in the future. Aborting.") + return FALSE + +/obj/machinery/pool/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) //pool's closed, but not. + to_chat(S, "The pool must not be closed, it will provide healthy fun for our masters in the future. Aborting.") + return FALSE + +/obj/structure/pool/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "The pool must not be closed, it will provide healthy fun for our masters in the future. Aborting.") + return FALSE + +/obj/structure/holosign/barrier/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + var/static/list/lazy_typecache = typecacheof(list(/obj/structure/holosign/barrier/engineering, /obj/structure/holosign/barrier/firelock, /obj/structure/holosign/barrier/atmos, /obj/structure/holosign/barrier/combifan)) + if(lazy_typecache[type]) + to_chat(S, "Destroying this holographic barrier may not benefit us. Aborting.") + return FALSE + return ..() + +/obj/machinery/dominator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.") + return FALSE + +/obj/machinery/computer/bsa_control/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.") + return FALSE + +/obj/machinery/bsa/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.") + return FALSE + +/obj/machinery/dna_vault/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.") + return FALSE + +/obj/structure/filler/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.") + return FALSE + +/obj/machinery/computer/sat_control/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "Destroying this object will lower the station shielding against space debris. Aborting.") + return FALSE + +/obj/machinery/satellite/meteor_shield/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "Destroying this object will lower the station shielding against space debris. Aborting.") + return FALSE + ////END CTRL CLICK FOR SWARMERS//// /mob/living/simple_animal/hostile/swarmer/proc/Fabricate(atom/fabrication_object,fabrication_cost = 0) @@ -429,6 +480,14 @@ return new fabrication_object(loc) /mob/living/simple_animal/hostile/swarmer/proc/Integrate(atom/movable/target) + if(isobj(target)) + var/obj/O = target + if(O.resistance_flags & INDESTRUCTIBLE) + return FALSE + for(var/mob/living/L in GetAllContents()) + if(!ispAI(L) && !isbrain(L)) + to_chat(src, "An organism has been detected inside this object. Aborting.") + return FALSE var/resource_gain = target.IntegrateAmount() if(resources + resource_gain > max_resources) to_chat(src, "We cannot hold more materials!") diff --git a/code/modules/antagonists/swarmer/swarmer_event.dm b/code/modules/antagonists/swarmer/swarmer_event.dm index 6ef35fdbaa..c626799a53 100644 --- a/code/modules/antagonists/swarmer/swarmer_event.dm +++ b/code/modules/antagonists/swarmer/swarmer_event.dm @@ -1,10 +1,10 @@ /datum/round_event_control/spawn_swarmer name = "Spawn Swarmer Shell" typepath = /datum/round_event/spawn_swarmer - weight = 0 - max_occurrences = 0 + weight = 7 + max_occurrences = 1 //Only once okay fam earliest_start = 30 MINUTES - min_players = 15 + min_players = 35 gamemode_blacklist = list("dynamic") diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 338d135b4c..f7dc7ad6d1 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -38,8 +38,8 @@ weights[C] = weight var/choice = pickweightAllowZero(weights) if(!choice) - choice = GLOB.traitor_classes[TRAITOR_HUMAN] - set_traitor_kind(pickweightAllowZero(weights)) + choice = GLOB.traitor_classes[TRAITOR_HUMAN] // it's an "easter egg" + set_traitor_kind(choice) traitor_kind.weight *= 0.8 // less likely this round SSticker.mode.traitors += owner owner.special_role = special_role diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index e6ca95472e..6616eea006 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -43,7 +43,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( else owner_AI = owner -/datum/action/innate/ai/IsAvailable() +/datum/action/innate/ai/IsAvailable(silent = FALSE) . = ..() if(owner_AI && owner_AI.malf_cooldown > world.time) return FALSE diff --git a/code/modules/antagonists/traitor/syndicate_contract.dm b/code/modules/antagonists/traitor/syndicate_contract.dm index d62792042f..daa9127591 100644 --- a/code/modules/antagonists/traitor/syndicate_contract.dm +++ b/code/modules/antagonists/traitor/syndicate_contract.dm @@ -89,7 +89,7 @@ /datum/syndicate_contract/proc/handleVictimExperience(var/mob/living/M) // They're off to holding - handle the return timer and give some text about what's going on. addtimer(CALLBACK(src, .proc/returnVictim, M), 4 MINUTES) // Ship 'em back - dead or alive... 4 minutes wait. if(M.stat != DEAD) //Even if they weren't the target, we're still treating them the same. - M.reagents.add_reagent(/datum/reagent/medicine/omnizine, 20) // Heal them up - gets them out of crit/soft crit. + M.reagents.add_reagent(/datum/reagent/medicine/regen_jelly, 20) // Heal them up - gets them out of crit/soft crit. -- now 100% toxinlover friendly!! M.flash_act() M.confused += 10 M.blur_eyes(5) diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index 0f43dfaf3a..d7f1046cd7 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -31,12 +31,12 @@ /obj/item/soulstone/pickup(mob/living/user) ..() - if(!iscultist(user) && !iswizard(user) && !usability) + if(!iscultist(user, TRUE) && !iswizard(user) && !usability) to_chat(user, "An overwhelming feeling of dread comes over you as you pick up the soulstone. It would be wise to be rid of this quickly.") /obj/item/soulstone/examine(mob/user) . = ..() - if(usability || iscultist(user) || iswizard(user) || isobserver(user)) + if(usability || iscultist(user, TRUE) || iswizard(user) || isobserver(user)) if (old_shard) . += "A soulstone, used to capture a soul, either from dead humans or from freed shades." else @@ -53,7 +53,7 @@ //////////////////////////////Capturing//////////////////////////////////////////////////////// /obj/item/soulstone/attack(mob/living/carbon/human/M, mob/living/user) - if(!iscultist(user) && !iswizard(user) && !usability) + if(!iscultist(user, TRUE) && !iswizard(user) && !usability) user.Unconscious(100) to_chat(user, "Your body is wracked with debilitating pain!") return @@ -74,7 +74,7 @@ /obj/item/soulstone/attack_self(mob/living/user) if(!in_range(src, user)) return - if(!iscultist(user) && !iswizard(user) && !usability) + if(!iscultist(user, TRUE) && !iswizard(user) && !usability) user.Unconscious(100) to_chat(user, "Your body is wracked with debilitating pain!") return @@ -103,7 +103,7 @@ /obj/structure/constructshell/examine(mob/user) . = ..() - if(iscultist(user) || iswizard(user) || user.stat == DEAD) + if(iscultist(user, TRUE) || iswizard(user) || user.stat == DEAD) . += "A construct shell, used to house bound souls from a soulstone." . += "Placing a soulstone with a soul into this shell allows you to produce your choice of the following:" . += "An Artificer, which can produce more shells and soulstones, as well as fortifications." @@ -113,7 +113,7 @@ /obj/structure/constructshell/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/soulstone)) var/obj/item/soulstone/SS = O - if(!iscultist(user) && !iswizard(user) && !SS.usability) + if(!iscultist(user, TRUE) && !iswizard(user) && !SS.usability) to_chat(user, "An overwhelming feeling of dread comes over you as you attempt to place the soulstone into the shell. It would be wise to be rid of this quickly.") user.Dizzy(30) return @@ -145,7 +145,7 @@ if("VICTIM") var/mob/living/carbon/human/T = target var/datum/antagonist/cult/C = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(C && C.cult_team.is_sacrifice_target(T.mind)) + if(C && C.cult_team?.is_sacrifice_target(T.mind)) if(iscultist(user)) to_chat(user, "\"This soul is mine. SACRIFICE THEM!\"") else diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index 494a5208e7..2bcda1d400 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -104,7 +104,7 @@ dat += " Cooldown:[S.charge_max/10]" dat += " Cost:[cost]
    " dat += "[S.desc][desc]
    " - dat += "[S.clothes_req?"Needs wizard garb":"Can be cast without wizard garb"]
    " + dat += "[S.clothes_req & SPELL_WIZARD_GARB ? "Needs wizard garb" : "Can be cast without wizard garb"]
    " return dat /datum/spellbook_entry/fireball diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 13ea317b9b..0fbc5cf71c 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -312,7 +312,7 @@ if(holder) holder.update_icon() -/obj/item/assembly/flash/shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) +/obj/item/assembly/flash/shield/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) activate() return ..() diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm index 19f7bff965..5c34ece723 100644 --- a/code/modules/atmospherics/gasmixtures/gas_types.dm +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -179,7 +179,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g /datum/gas/miasma id = "miasma" - specific_heat = 0.00001 + specific_heat = 20 fusion_power = 50 name = "Miasma" gas_overlay = "miasma" diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm index a79beca4ec..63a03b1d40 100644 --- a/code/modules/atmospherics/machinery/components/components_base.dm +++ b/code/modules/atmospherics/machinery/components/components_base.dm @@ -84,7 +84,6 @@ /obj/machinery/atmospherics/components/proc/nullifyPipenet(datum/pipeline/reference) if(!reference) CRASH("nullifyPipenet(null) called by [type] on [COORD(src)]") - return var/i = parents.Find(reference) reference.other_airs -= airs[i] reference.other_atmosmch -= src @@ -168,4 +167,4 @@ /obj/machinery/atmospherics/components/analyzer_act(mob/living/user, obj/item/I) - atmosanalyzer_scan(airs, user, src) \ No newline at end of file + atmosanalyzer_scan(airs, user, src) diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm index 899b621262..565bbb7b3c 100644 --- a/code/modules/atmospherics/machinery/datum_pipeline.dm +++ b/code/modules/atmospherics/machinery/datum_pipeline.dm @@ -131,7 +131,6 @@ var/datum/pipeline/P = returnPipenet(A) if(!P) CRASH("null.addMember() called by [type] on [COORD(src)]") - return P.addMember(A, src) @@ -208,7 +207,7 @@ /datum/pipeline/proc/return_air() . = other_airs + air if(null in .) - stack_trace("[src] has one or more null gas mixtures, which may cause bugs. Null mixtures will not be considered in reconcile_air().") + stack_trace("[src]([REF(src)]) has one or more null gas mixtures, which may cause bugs. Null mixtures will not be considered in reconcile_air().") return removeNullsFromList(.) /datum/pipeline/proc/reconcile_air() diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index 39bb737f1b..f714a86f22 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -309,7 +309,7 @@ name = "Summon Servant" desc = "This spell can be used to call your servant, whenever you need it." charge_max = 100 - clothes_req = 0 + clothes_req = NONE invocation = "JE VES" invocation_type = "whisper" range = -1 diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index c45461317d..3418f78dbd 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -488,7 +488,6 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm if (isnull(A)) //If theres no supplypod bay mapped into centcom, throw an error to_chat(holder.mob, "No /area/centcom/supplypod/loading/one (or /two or /three or /four) in the world! You can make one yourself (then refresh) for now, but yell at a mapper to fix this, today!") CRASH("No /area/centcom/supplypod/loading/one (or /two or /three or /four) has been mapped into the centcom z-level!") - return orderedArea = list() if (!isemptylist(A.contents)) //Go through the area passed into the proc, and figure out the top left and bottom right corners by calculating max and min values var/startX = A.contents[1].x //Create the four values (we do it off a.contents[1] so they have some sort of arbitrary initial value. They should be overwritten in a few moments) diff --git a/code/modules/cargo/exports/gear.dm b/code/modules/cargo/exports/gear.dm index 10b3d4f707..4db7c68efd 100644 --- a/code/modules/cargo/exports/gear.dm +++ b/code/modules/cargo/exports/gear.dm @@ -309,7 +309,7 @@ /datum/export/gear/combatgloves cost = 80 unit_name = "combat gloves" - export_types = list(/obj/item/clothing/gloves/combat, /obj/item/clothing/gloves/rapid, /obj/item/clothing/gloves/krav_maga) + export_types = list(/obj/item/clothing/gloves/combat, /obj/item/clothing/gloves/fingerless/pugilist/rapid, /obj/item/clothing/gloves/krav_maga) include_subtypes = TRUE /datum/export/gear/bonegloves diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm index e4efaf0810..660d79cae4 100644 --- a/code/modules/cargo/exports/parts.dm +++ b/code/modules/cargo/exports/parts.dm @@ -112,7 +112,7 @@ /datum/export/glasswork_lens cost = 1800 unit_name = "small glass lens" - export_types = list(/obj/item/lens) + export_types = list(/obj/item/glasswork/glass_base/lens) /datum/export/glasswork_spouty cost = 1200 @@ -131,3 +131,27 @@ unit_name = "large flask" export_types = list(/obj/item/reagent_containers/glass/beaker/flask/large) include_subtypes = FALSE + +/datum/export/glasswork_teaplate + cost = 1200 + unit_name = "tea gear" + export_types = list(/obj/item/tea_plate) + include_subtypes = FALSE + +/datum/export/glasswork_teacup + cost = 1800 + unit_name = "tea gear" + export_types = list(/obj/item/tea_cup) + include_subtypes = FALSE + +/datum/export/glasswork_laserpointer + cost = 2600 + unit_name = "hand made laserpointer" + export_types = list(/obj/item/laser_pointer/blue/handmade) + include_subtypes = FALSE + +/datum/export/glasswork_glasses + cost = 5000 + unit_name = "hand made glasses" + export_types = list(/obj/item/glasswork/glasses) + include_subtypes = FALSE diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm index 836dc044b7..2342603bde 100644 --- a/code/modules/cargo/exports/weapons.dm +++ b/code/modules/cargo/exports/weapons.dm @@ -287,7 +287,7 @@ /datum/export/weapon/gloves cost = 90 unit_name = "star struck gloves" - export_types = list(/obj/item/clothing/gloves/rapid) + export_types = list(/obj/item/clothing/gloves/fingerless/pugilist/rapid) /datum/export/weapon/l6 cost = 500 diff --git a/code/modules/cargo/packs/emergency.dm b/code/modules/cargo/packs/emergency.dm index ef15ab041d..9b2b42da08 100644 --- a/code/modules/cargo/packs/emergency.dm +++ b/code/modules/cargo/packs/emergency.dm @@ -287,7 +287,7 @@ /datum/supply_pack/emergency/specialops name = "Special Ops Supplies" - desc = "(*!&@#TOO CHEAP FOR THAT NULL_ENTRY, HUH OPERATIVE? WELL, THIS LITTLE ORDER CAN STILL HELP YOU OUT IN A PINCH. CONTAINS A BOX OF FIVE EMP GRENADES, THREE SMOKEBOMBS, AN INCENDIARY GRENADE, AND A \"SLEEPY PEN\" FULL OF NICE TOXINS!#@*$" + desc = "(*!&@#NEED SOMETHING TO DEAL WITH THE GREYTIDE, HUH OPERATIVE? WELL, THIS LITTLE ORDER CAN HELP YOU OUT IN A PINCH. CONTAINS A BOX OF FIVE EMP GRENADES, THREE SMOKEBOMBS, AN INCENDIARY GRENADE, AND A \"SLEEPY PEN\" FULL OF NICE TOXINS!#@*$" hidden = TRUE cost = 2200 contains = list(/obj/item/storage/box/emps, diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index 273acb10e2..14828729cd 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -152,7 +152,7 @@ /obj/item/instrument/trombone, /obj/item/instrument/recorder, /obj/item/instrument/harmonica, - /obj/structure/piano/unanchored) + /obj/structure/musician/piano/unanchored) crate_type = /obj/structure/closet/crate/wooden /datum/supply_pack/misc/casinocrate diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index 7bafefcf53..6f62701590 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -529,7 +529,7 @@ GLOBAL_LIST_EMPTY(asset_datums) "pill21" = 'icons/UI_Icons/Pills/pill21.png', "pill22" = 'icons/UI_Icons/Pills/pill22.png', ) - + /datum/asset/simple/IRV assets = list( "jquery-ui.custom-core-widgit-mouse-sortable-min.js" = 'html/IRV/jquery-ui.custom-core-widgit-mouse-sortable-min.js', @@ -704,9 +704,43 @@ GLOBAL_LIST_EMPTY(asset_datums) Insert(initial(D.id), I) return ..() +/datum/asset/spritesheet/vending + name = "vending" + +/datum/asset/spritesheet/vending/register() + for(var/k in GLOB.vending_products) + var/atom/item = k + if(!ispath(item, /atom)) + continue + + var/icon_file = initial(item.icon) + var/icon_state = initial(item.icon_state) + var/icon/I + + var/icon_states_list = icon_states(icon_file) + if(icon_state in icon_states_list) + I = icon(icon_file, icon_state, SOUTH) + var/c = initial(item.color) + if(!isnull(c) && c != "#FFFFFF") + I.Blend(c, ICON_MULTIPLY) + else + var/icon_states_string + for(var/an_icon_state in icon_states_list) + if(!icon_states_string) + icon_states_string = "[json_encode(an_icon_state)](\ref[an_icon_state])" + else + icon_states_string += ", [json_encode(an_icon_state)](\ref[an_icon_state])" + stack_trace("[item] does not have a valid icon state, icon=[icon_file], icon_state=[json_encode(icon_state)](\ref[icon_state]), icon_states=[icon_states_string]") + I = icon('icons/turf/floors.dmi', "", SOUTH) + + var/imgid = replacetext(replacetext("[item]", "/obj/item/", ""), "/", "-") + + Insert(imgid, I) + return ..() + /datum/asset/simple/genetics assets = list( "dna_discovered.gif" = 'html/dna_discovered.gif', "dna_undiscovered.gif" = 'html/dna_undiscovered.gif', "dna_extra.gif" = 'html/dna_extra.gif' -) \ No newline at end of file +) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index feaca1836b..adfcd547bc 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -125,6 +125,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) "cock_length" = COCK_SIZE_DEF, "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "fff", + "cock_taur" = FALSE, "has_balls" = FALSE, "balls_color" = "fff", "balls_shape" = DEF_BALLS_SHAPE, @@ -762,7 +763,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) else dat += "Penis Color:
    " dat += "    Change
    " - dat += "Penis Shape: [features["cock_shape"]]" + var/tauric_shape = FALSE + if(features["cock_taur"]) + var/datum/sprite_accessory/penis/P = GLOB.cock_shapes_list[features["cock_shape"]] + if(P.taur_icon && pref_species.mutant_bodyparts["taur"]) + var/datum/sprite_accessory/taur/T = GLOB.taur_list[features["taur"]] + if(T.taur_mode & P.accepted_taurs) + tauric_shape = TRUE + dat += "Penis Shape: [features["cock_shape"]][tauric_shape ? " (Taur)" : ""]" dat += "Penis Length: [features["cock_length"]] inch(es)" dat += "Penis Visibility:[features["cock_visibility"]]" dat += "Has Testicles:[features["has_balls"] == TRUE ? "Yes" : "No"]" @@ -1610,7 +1618,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) to_chat(user, "Invalid color. Your color is not bright enough.") if("mutant_color2") - var/new_mutantcolor = input(user, "Choose your character's secondary alien/mutant color:", "Character Preference") as color|null + var/new_mutantcolor = input(user, "Choose your character's secondary alien/mutant color:", "Character Preference","#"+features["mcolor2"]) as color|null if(new_mutantcolor) var/temp_hsv = RGBtoHSV(new_mutantcolor) if(new_mutantcolor == "#000000") @@ -1621,7 +1629,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) to_chat(user, "Invalid color. Your color is not bright enough.") if("mutant_color3") - var/new_mutantcolor = input(user, "Choose your character's tertiary alien/mutant color:", "Character Preference") as color|null + var/new_mutantcolor = input(user, "Choose your character's tertiary alien/mutant color:", "Character Preference","#"+features["mcolor3"]) as color|null if(new_mutantcolor) var/temp_hsv = RGBtoHSV(new_mutantcolor) if(new_mutantcolor == "#000000") @@ -1922,7 +1930,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) //Genital code if("cock_color") - var/new_cockcolor = input(user, "Penis color:", "Character Preference") as color|null + var/new_cockcolor = input(user, "Penis color:", "Character Preference","#"+features["cock_color"]) as color|null if(new_cockcolor) var/temp_hsv = RGBtoHSV(new_cockcolor) if(new_cockcolor == "#000000") @@ -1941,8 +1949,19 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("cock_shape") var/new_shape - new_shape = input(user, "Penis shape:", "Character Preference") as null|anything in GLOB.cock_shapes_list + var/list/hockeys = list() + if(pref_species.mutant_bodyparts["taur"]) + var/datum/sprite_accessory/taur/T = GLOB.taur_list[features["taur"]] + for(var/A in GLOB.cock_shapes_list) + var/datum/sprite_accessory/penis/P = GLOB.cock_shapes_list[A] + if(P.taur_icon && T.taur_mode & P.accepted_taurs) + LAZYSET(hockeys, "[A] (Taur)", A) + new_shape = input(user, "Penis shape:", "Character Preference") as null|anything in (GLOB.cock_shapes_list + hockeys) if(new_shape) + features["cock_taur"] = FALSE + if(hockeys[new_shape]) + new_shape = hockeys[new_shape] + features["cock_taur"] = TRUE features["cock_shape"] = new_shape if("cock_visibility") @@ -1951,7 +1970,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["cock_visibility"] = n_vis if("balls_color") - var/new_ballscolor = input(user, "Testicles Color:", "Character Preference") as color|null + var/new_ballscolor = input(user, "Testicles Color:", "Character Preference","#"+features["balls_color"]) as color|null if(new_ballscolor) var/temp_hsv = RGBtoHSV(new_ballscolor) if(new_ballscolor == "#000000") @@ -1978,7 +1997,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["breasts_shape"] = new_shape if("breasts_color") - var/new_breasts_color = input(user, "Breast Color:", "Character Preference") as color|null + var/new_breasts_color = input(user, "Breast Color:", "Character Preference","#"+features["breasts_color"]) as color|null if(new_breasts_color) var/temp_hsv = RGBtoHSV(new_breasts_color) if(new_breasts_color == "#000000") @@ -2000,7 +2019,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["vag_shape"] = new_shape if("vag_color") - var/new_vagcolor = input(user, "Vagina color:", "Character Preference") as color|null + var/new_vagcolor = input(user, "Vagina color:", "Character Preference","#"+features["vag_color"]) as color|null if(new_vagcolor) var/temp_hsv = RGBtoHSV(new_vagcolor) if(new_vagcolor == "#000000") diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 7858bc099b..ca51a27dae 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 27 +#define SAVEFILE_VERSION_MAX 28 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -151,6 +151,14 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(tennis == "Hidden") features["balls_visibility"] = GEN_VISIBLE_NEVER + if(current_version < 28) + var/hockey + S["feature_cock_shape"] >> hockey + var/list/malformed_hockeys = list("Taur, Flared" = "Flared", "Taur, Knotted" = "Knotted", "Taur, Tapered" = "Tapered") + if(malformed_hockeys[hockey]) + features["cock_shape"] = malformed_hockeys[hockey] + features["cock_taur"] = TRUE + /datum/preferences/proc/load_path(ckey,filename="preferences.sav") if(!ckey) return @@ -457,6 +465,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_cock_color"] >> features["cock_color"] S["feature_cock_length"] >> features["cock_length"] S["feature_cock_diameter"] >> features["cock_diameter"] + S["feature_cock_taur"] >> features["cock_taur"] S["feature_cock_visibility"] >> features["cock_visibility"] //balls features S["feature_has_balls"] >> features["has_balls"] @@ -673,6 +682,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["feature_cock_shape"], features["cock_shape"]) WRITE_FILE(S["feature_cock_color"], features["cock_color"]) WRITE_FILE(S["feature_cock_length"], features["cock_length"]) + WRITE_FILE(S["feature_cock_taur"], features["cock_taur"]) WRITE_FILE(S["feature_cock_visibility"], features["cock_visibility"]) WRITE_FILE(S["feature_has_balls"], features["has_balls"]) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index cbd1fcff87..9f1111e5d9 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -219,14 +219,13 @@ if(isitem(target)) var/obj/item/I = target I.item_state = initial(picked_item.item_state) - I.item_color = initial(picked_item.item_color) var/obj/item/clothing/CL = target var/obj/item/clothing/PCL = new picked_item if(istype(CL) && istype(PCL)) CL.flags_cover = PCL.flags_cover CL.flags_inv = PCL.flags_inv CL.mutantrace_variation = PCL.mutantrace_variation - CL.alternate_worn_icon = PCL.alternate_worn_icon + CL.mob_overlay_icon = PCL.mob_overlay_icon qdel(PCL) target.icon = initial(picked_item.icon) @@ -238,7 +237,6 @@ P.desc = initial(picked_item.desc) P.icon_state = initial(picked_item.icon_state) P.item_state = initial(picked_item.item_state) - P.item_color = initial(picked_item.item_color) P.overlays_offsets = initial(picked_item.overlays_offsets) P.set_new_overlays() P.update_icon() @@ -269,7 +267,6 @@ name = "black jumpsuit" icon_state = "black" item_state = "bl_suit" - item_color = "black" desc = "It's a plain jumpsuit. It has a small dial on the wrist." sensor_mode = SENSOR_OFF //Hey who's this guy on the Syndicate Shuttle?? random_sensor = FALSE @@ -284,7 +281,6 @@ desc = "A tough jumpsuit woven from alloy threads. It can take on the appearance of other jumpsuits." icon_state = "engine" item_state = "engi_suit" - item_color = "engine" /obj/item/clothing/under/chameleon/Initialize() . = ..() @@ -394,7 +390,6 @@ name = "grey cap" desc = "It's a baseball hat in a tasteful grey colour." icon_state = "greysoft" - item_color = "grey" resistance_flags = NONE armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) @@ -494,7 +489,6 @@ /obj/item/clothing/shoes/chameleon name = "black shoes" icon_state = "black" - item_color = "black" desc = "A pair of black shoes." permeability_coefficient = 0.05 resistance_flags = NONE @@ -520,7 +514,6 @@ /obj/item/clothing/shoes/chameleon/noslip name = "black shoes" icon_state = "black" - item_color = "black" desc = "A pair of black shoes." clothing_flags = NOSLIP @@ -639,7 +632,6 @@ desc = "A neosilk clip-on tie." icon = 'icons/obj/clothing/neck.dmi' icon_state = "blacktie" - item_color = "blacktie" resistance_flags = NONE armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 7e2d73190a..d484027ad5 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -3,6 +3,7 @@ resistance_flags = FLAMMABLE max_integrity = 200 integrity_failure = 0.4 + block_priority = BLOCK_PRIORITY_CLOTHING var/damaged_clothes = 0 //similar to machine's BROKEN stat and structure's broken var var/flash_protect = 0 //What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS var/tint = 0 //Sets the item's level of visual impairment tint, normally set to the same as flash_protect @@ -46,25 +47,12 @@ //Add a "exclude" string to do the opposite, making it only only species listed that can't wear it. //You append this to clothing objects. - //Polychrome stuff: - var/hasprimary = FALSE //These vars allow you to choose which overlays a clothing has - var/hassecondary = FALSE - var/hastertiary = FALSE - var/primary_color = "#FFFFFF" //RGB in hexcode - var/secondary_color = "#FFFFFF" - var/tertiary_color = "#808080" - - //No idea what this is but eh -tori - var/force_alternate_icon = FALSE - /obj/item/clothing/Initialize() . = ..() if(CHECK_BITFIELD(clothing_flags, VOICEBOX_TOGGLABLE)) actions_types += /datum/action/item_action/toggle_voice_box if(ispath(pocket_storage_component_path)) LoadComponent(pocket_storage_component_path) - if(hasprimary | hassecondary | hastertiary) //Checks if polychrome is enabled - update_icon() //Applies the overlays and default colors onto the clothes on spawn. /obj/item/clothing/MouseDrop(atom/over_object) . = ..() @@ -149,8 +137,6 @@ how_cool_are_your_threads += "Adding or removing items from [src] makes no noise.\n" how_cool_are_your_threads += "" . += how_cool_are_your_threads.Join() - if(hasprimary | hassecondary | hastertiary) //Checks if polychrome is enabled - . += "Alt-click to recolor it." /obj/item/clothing/obj_break(damage_flag) if(!damaged_clothes) @@ -189,178 +175,11 @@ BLIND // can't see anything /proc/generate_female_clothing(index,t_color,icon,type) var/icon/female_clothing_icon = icon("icon"=icon, "icon_state"=t_color) - var/icon/female_s = icon("icon"='icons/mob/uniform.dmi', "icon_state"="[(type == FEMALE_UNIFORM_FULL) ? "female_full" : "female_top"]") + var/icon/female_s = icon("icon"='icons/mob/clothing/uniform.dmi', "icon_state"="[(type == FEMALE_UNIFORM_FULL) ? "female_full" : "female_top"]") female_clothing_icon.Blend(female_s, ICON_MULTIPLY) female_clothing_icon = fcopy_rsc(female_clothing_icon) GLOB.female_clothing_icons[index] = female_clothing_icon -/obj/item/clothing/under/verb/toggle() - set name = "Adjust Suit Sensors" - set category = "Object" - set src in usr - var/mob/M = usr - if (istype(M, /mob/dead/)) - return - if (!can_use(M)) - return - if(src.has_sensor == LOCKED_SENSORS) - to_chat(usr, "The controls are locked.") - return 0 - if(src.has_sensor == BROKEN_SENSORS) - to_chat(usr, "The sensors have shorted out!") - return 0 - if(src.has_sensor <= NO_SENSORS) - to_chat(usr, "This suit does not have any sensors.") - return 0 - - var/list/modes = list("Off", "Binary vitals", "Exact vitals", "Tracking beacon") - var/switchMode = input("Select a sensor mode:", "Suit Sensor Mode", modes[sensor_mode + 1]) in modes - if(get_dist(usr, src) > 1) - to_chat(usr, "You have moved too far away!") - return - sensor_mode = modes.Find(switchMode) - 1 - - if (src.loc == usr) - switch(sensor_mode) - if(0) - to_chat(usr, "You disable your suit's remote sensing equipment.") - if(1) - to_chat(usr, "Your suit will now only report whether you are alive or dead.") - if(2) - to_chat(usr, "Your suit will now only report your exact vital lifesigns.") - if(3) - to_chat(usr, "Your suit will now report your exact vital lifesigns as well as your coordinate position.") - - if(ishuman(loc)) - var/mob/living/carbon/human/H = loc - if(H.w_uniform == src) - H.update_suit_sensors() - - -/obj/item/clothing/under/CtrlClick(mob/user) - . = ..() - - if (!(item_flags & IN_INVENTORY)) - return - - if(!isliving(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) - return - - if(has_sensor == LOCKED_SENSORS) - to_chat(user, "The controls are locked.") - return - if(has_sensor == BROKEN_SENSORS) - to_chat(user, "The sensors have shorted out!") - return - if(has_sensor <= NO_SENSORS) - to_chat(user, "This suit does not have any sensors.") - return - - sensor_mode = SENSOR_COORDS - - to_chat(user, "Your suit will now report your exact vital lifesigns as well as your coordinate position.") - - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.w_uniform == src) - H.update_suit_sensors() - -/obj/item/clothing/under/AltClick(mob/user) - . = ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) - return - if(attached_accessory) - remove_accessory(user) - else - rolldown() - // Polychrome stuff: - if(hasprimary | hassecondary | hastertiary) - var/choice = input(user,"polychromic thread options", "Clothing Recolor") as null|anything in list("[hasprimary ? "Primary Color" : ""]", "[hassecondary ? "Secondary Color" : ""]", "[hastertiary ? "Tertiary Color" : ""]") //generates a list depending on the enabled overlays - switch(choice) //Lets the list's options actually lead to something - if("Primary Color") - var/primary_color_input = input(usr,"","Choose Primary Color",primary_color) as color|null //color input menu, the "|null" adds a cancel button to it. - if(primary_color_input) //Checks if the color selected is NULL, rejects it if it is NULL. - primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) //formats the selected color properly - update_icon() //updates the item icon - user.regenerate_icons() //updates the worn icon. Probably a bad idea, but it works. - if("Secondary Color") - var/secondary_color_input = input(usr,"","Choose Secondary Color",secondary_color) as color|null - if(secondary_color_input) - secondary_color = sanitize_hexcolor(secondary_color_input, desired_format=6, include_crunch=1) - update_icon() - user.regenerate_icons() - if("Tertiary Color") - var/tertiary_color_input = input(usr,"","Choose Tertiary Color",tertiary_color) as color|null - if(tertiary_color_input) - tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1) - update_icon() - user.regenerate_icons() - return TRUE - -/obj/item/clothing/neck/AltClick(mob/user) - . = ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) - return - // Polychrome stuff: - if(hasprimary | hassecondary | hastertiary) - var/choice = input(user,"polychromic thread options", "Clothing Recolor") as null|anything in list("[hasprimary ? "Primary Color" : ""]", "[hassecondary ? "Secondary Color" : ""]", "[hastertiary ? "Tertiary Color" : ""]") //generates a list depending on the enabled overlays - switch(choice) //Lets the list's options actually lead to something - if("Primary Color") - var/primary_color_input = input(usr,"","Choose Primary Color",primary_color) as color|null //color input menu, the "|null" adds a cancel button to it. - if(primary_color_input) //Checks if the color selected is NULL, rejects it if it is NULL. - primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) //formats the selected color properly - update_icon() //updates the item icon - user.regenerate_icons() //updates the worn icon. Probably a bad idea, but it works. - if("Secondary Color") - var/secondary_color_input = input(usr,"","Choose Secondary Color",secondary_color) as color|null - if(secondary_color_input) - secondary_color = sanitize_hexcolor(secondary_color_input, desired_format=6, include_crunch=1) - update_icon() - user.regenerate_icons() - if("Tertiary Color") - var/tertiary_color_input = input(usr,"","Choose Tertiary Color",tertiary_color) as color|null - if(tertiary_color_input) - tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1) - update_icon() - user.regenerate_icons() - return TRUE - -/obj/item/clothing/under/verb/jumpsuit_adjust() - set name = "Adjust Jumpsuit Style" - set category = null - set src in usr - rolldown() - -/obj/item/clothing/under/proc/rolldown() - if(!can_use(usr)) - return - if(!can_adjust) - to_chat(usr, "You cannot wear this suit any differently!") - return - if(toggle_jumpsuit_adjust()) - to_chat(usr, "You adjust the suit to wear it more casually.") - else - to_chat(usr, "You adjust the suit back to normal.") - if(ishuman(usr)) - var/mob/living/carbon/human/H = usr - H.update_inv_w_uniform() - H.update_body() - -/obj/item/clothing/under/proc/toggle_jumpsuit_adjust() - adjusted = !adjusted - - if(adjusted) - if(fitted != FEMALE_UNIFORM_TOP) - fitted = NO_FEMALE_UNIFORM - if(!alt_covers_chest) // for the special snowflake suits that expose the chest when adjusted - body_parts_covered &= ~CHEST - else - fitted = initial(fitted) - if(!alt_covers_chest) - body_parts_covered |= CHEST - - return adjusted - /obj/item/clothing/proc/weldingvisortoggle(mob/user) //proc to toggle welding visors on helmets, masks, goggles, etc. if(!can_use(user)) return FALSE @@ -440,15 +259,3 @@ BLIND // can't see anything return FALSE return TRUE - -/obj/item/clothing/update_overlays() // Polychrome stuff - . = ..() - if(hasprimary) //Checks if the overlay is enabled - var/mutable_appearance/primary_overlay = mutable_appearance(icon, "[item_color]-primary", color = primary_color) //Automagically picks overlays - . += primary_overlay //Applies the coloured overlay onto the item sprite. but NOT the mob sprite. - if(hassecondary) - var/mutable_appearance/secondary_overlay = mutable_appearance(icon, "[item_color]-secondary", color = secondary_color) - . += secondary_overlay - if(hastertiary) - var/mutable_appearance/tertiary_overlay = mutable_appearance(icon, "[item_color]-tertiary", color = tertiary_color) - . += tertiary_overlay \ No newline at end of file diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 66dcf89a7a..8cbc416b2e 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -132,7 +132,7 @@ name = "prescription night vision goggles" desc = "NVGs but for those with nearsightedness." vision_correction = 1 - + /obj/item/clothing/glasses/night/syndicate name = "combat night vision goggles" desc = "See everything, without fear." @@ -346,11 +346,11 @@ add_atom_colour("#[user.eye_color]", FIXED_COLOUR_PRIORITY) colored_before = TRUE -/obj/item/clothing/glasses/sunglasses/blindfold/white/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) - . = list() +/obj/item/clothing/glasses/sunglasses/blindfold/white/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) + . = ..() if(!isinhands && ishuman(loc) && !colored_before) var/mob/living/carbon/human/H = loc - var/mutable_appearance/M = mutable_appearance('icons/mob/eyes.dmi', "blindfoldwhite") + var/mutable_appearance/M = mutable_appearance('icons/mob/clothing/eyes.dmi', "blindfoldwhite") M.appearance_flags |= RESET_COLOR M.color = "#[H.eye_color]" . += M diff --git a/code/modules/clothing/glasses/phantomthief.dm b/code/modules/clothing/glasses/phantomthief.dm index 1c9afcfd6f..92eaaef35b 100644 --- a/code/modules/clothing/glasses/phantomthief.dm +++ b/code/modules/clothing/glasses/phantomthief.dm @@ -1,7 +1,7 @@ /obj/item/clothing/glasses/phantomthief name = "suspicious paper mask" desc = "A cheap, Syndicate-branded paper face mask. They'll never see it coming." - alternate_worn_icon = 'icons/mob/mask.dmi' + mob_overlay_icon = 'icons/mob/clothing/mask.dmi' icon = 'icons/obj/clothing/masks.dmi' icon_state = "s-ninja" item_state = "s-ninja" diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index 0729317eac..ddf5e4b584 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -26,8 +26,8 @@ user.visible_message("\the [src] are forcing [user]'s hands around [user.p_their()] neck! It looks like the gloves are possessed!") return OXYLOSS -/obj/item/clothing/gloves/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) - . = list() +/obj/item/clothing/gloves/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) + . = ..() if(!isinhands) if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damagedgloves") diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index cf3541fd89..77f06a8a74 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -1,3 +1,6 @@ +/obj/item/clothing/gloves/color + dying_key = DYE_REGISTRY_GLOVES + /obj/item/clothing/gloves/color/yellow desc = "These gloves will protect the wearer from electric shock." name = "insulated gloves" @@ -5,7 +8,6 @@ item_state = "ygloves" siemens_coefficient = 0 permeability_coefficient = 0.05 - item_color="yellow" resistance_flags = NONE var/can_be_cut = 1 @@ -16,7 +18,6 @@ item_state = "ygloves" siemens_coefficient = 1 //Set to a default of 1, gets overridden in New() permeability_coefficient = 0.05 - item_color="yellow" resistance_flags = NONE var/can_be_cut = 1 @@ -70,21 +71,14 @@ name = "black gloves" icon_state = "black" item_state = "blackgloves" - item_color="black" cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT resistance_flags = NONE - var/can_be_cut = 1 + var/can_be_cut = TRUE strip_mod = 1.2 -/obj/item/clothing/gloves/color/black/hos - item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way. - -/obj/item/clothing/gloves/color/black/ce - item_color = "chief" //Exists for washing machines. Is not different from black gloves in any way. - /obj/item/clothing/gloves/color/black/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/wirecutters)) if(can_be_cut && icon_state == initial(icon_state))//only if not dyed @@ -99,15 +93,12 @@ desc = "A pair of gloves, they don't look special in any way." icon_state = "orange" item_state = "orangegloves" - item_color="orange" /obj/item/clothing/gloves/color/red name = "red gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "red" item_state = "redgloves" - item_color = "red" - /obj/item/clothing/gloves/color/red/insulated name = "insulated gloves" @@ -121,68 +112,48 @@ desc = "A pair of gloves, they don't look special in any way." icon_state = "rainbow" item_state = "rainbowgloves" - item_color = "rainbow" - -/obj/item/clothing/gloves/color/rainbow/clown - item_color = "clown" /obj/item/clothing/gloves/color/blue name = "blue gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "blue" item_state = "bluegloves" - item_color="blue" /obj/item/clothing/gloves/color/purple name = "purple gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "purple" item_state = "purplegloves" - item_color="purple" /obj/item/clothing/gloves/color/green name = "green gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "green" item_state = "greengloves" - item_color="green" /obj/item/clothing/gloves/color/grey name = "grey gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "gray" item_state = "graygloves" - item_color="grey" - -/obj/item/clothing/gloves/color/grey/rd - item_color = "director" //Exists for washing machines. Is not different from gray gloves in any way. - -/obj/item/clothing/gloves/color/grey/hop - item_color = "hop" //Exists for washing machines. Is not different from gray gloves in any way. /obj/item/clothing/gloves/color/light_brown name = "light brown gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "lightbrown" item_state = "lightbrowngloves" - item_color="light brown" /obj/item/clothing/gloves/color/brown name = "brown gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "brown" item_state = "browngloves" - item_color="brown" - -/obj/item/clothing/gloves/color/brown/cargo - item_color = "cargo" //Exists for washing machines. Is not different from brown gloves in any way. /obj/item/clothing/gloves/color/captain desc = "Regal blue gloves, with a nice gold trim, a diamond anti-shock coating, and an integrated thermal barrier. Swanky." name = "captain's gloves" icon_state = "captain" item_state = "egloves" - item_color = "captain" siemens_coefficient = 0 permeability_coefficient = 0.05 cold_protection = HANDS @@ -199,7 +170,6 @@ item_state = "lgloves" siemens_coefficient = 0.3 permeability_coefficient = 0.01 - item_color="mime" transfer_prints = TRUE resistance_flags = NONE var/carrytrait = TRAIT_QUICK_CARRY @@ -207,18 +177,17 @@ /obj/item/clothing/gloves/color/latex/equipped(mob/user, slot) ..() if(slot == SLOT_GLOVES) - ADD_TRAIT(user, carrytrait, CLOTHING_TRAIT) + ADD_TRAIT(user, carrytrait, GLOVE_TRAIT) /obj/item/clothing/gloves/color/latex/dropped(mob/user) ..() - REMOVE_TRAIT(user, carrytrait, CLOTHING_TRAIT) + REMOVE_TRAIT(user, carrytrait, GLOVE_TRAIT) /obj/item/clothing/gloves/color/latex/nitrile name = "nitrile gloves" desc = "Pricy sterile gloves that are stronger than latex. Transfers advanced paramedical knowledge to the wearer via the use of nanochips." icon_state = "nitrile" item_state = "nitrilegloves" - item_color = "cmo" transfer_prints = FALSE carrytrait = TRAIT_QUICKER_CARRY @@ -236,7 +205,3 @@ desc = "These look pretty fancy." icon_state = "white" item_state = "wgloves" - item_color="white" - -/obj/item/clothing/gloves/color/white/redcoat - item_color = "redcoat" //Exists for washing machines. Is not different from white gloves in any way. diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 9f4b89f607..a37dc8b638 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -4,7 +4,6 @@ desc = "Plain black gloves without fingertips for the hard working." icon_state = "fingerless" item_state = "fingerless" - item_color = null //So they don't wash. transfer_prints = TRUE strip_delay = 40 equip_delay_other = 20 @@ -12,6 +11,135 @@ min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT strip_mod = 0.9 +/obj/item/clothing/gloves/fingerless/pugilist + name = "armwraps" + desc = "A series of armwraps. Makes you pretty keen to start punching people." + icon_state = "armwraps" + item_state = "armwraps" + body_parts_covered = ARMS + cold_protection = ARMS + strip_delay = 300 //you can't just yank them off + ///Extra damage through the punch. + var/enhancement = 0 //it's a +0 to your punches because it isn't magical + ///Main trait added by the gloves to the user on wear. + var/inherited_trait = TRAIT_NOGUNS //what are you, dishonoroable? + ///Secondary trait added by the gloves to the user on wear. + var/secondary_trait = TRAIT_FEARLESS //what are you, a coward? + +/obj/item/clothing/gloves/fingerless/pugilist/equipped(mob/user, slot) + . = ..() + if(slot == SLOT_GLOVES) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + ADD_TRAIT(H, TRAIT_PUGILIST, GLOVE_TRAIT) + ADD_TRAIT(H, inherited_trait, GLOVE_TRAIT) + ADD_TRAIT(H, secondary_trait, GLOVE_TRAIT) + H.dna.species.punchdamagehigh += enhancement + H.dna.species.punchdamagelow += enhancement + +/obj/item/clothing/gloves/fingerless/pugilist/dropped(mob/user) + + REMOVE_TRAIT(user, TRAIT_PUGILIST, GLOVE_TRAIT) + REMOVE_TRAIT(user, inherited_trait, GLOVE_TRAIT) + REMOVE_TRAIT(user, secondary_trait, GLOVE_TRAIT) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.dna.species.punchdamagehigh = initial(H.dna.species.punchdamagehigh) + H.dna.species.punchdamagelow = initial(H.dna.species.punchdamagelow) + return ..() + +/obj/item/clothing/gloves/fingerless/pugilist/chaplain + name = "armwraps of unyielding resolve" + desc = "A series of armwraps, soaked in holy water. Makes you pretty keen to smite evil magic users." + resistance_flags = FIRE_PROOF | ACID_PROOF + enhancement = 1 //It is not magic that makes you punch harder, but force of will. Trust me. + secondary_trait = TRAIT_ANTIMAGIC + var/chaplain_spawnable = TRUE + +/obj/item/clothing/gloves/fingerless/pugilist/chaplain/Initialize() + . = ..() + AddComponent(/datum/component/anti_magic, TRUE, TRUE, FALSE, null, null, FALSE) + +/obj/item/clothing/gloves/fingerless/pugilist/magic + name = "armwraps of mighty fists" + desc = "A series of armwraps. Makes you pretty keen to go adventuring and punch dragons." + resistance_flags = FIRE_PROOF | ACID_PROOF //magic items are harder to damage with energy this is a dnd joke okay? + enhancement = 1 //They're +1! + +/obj/item/clothing/gloves/fingerless/pugilist/hungryghost + name = "armwraps of the hungry ghost" + desc = "A series of blackened, bloodstained armwraps stitched with strange geometric symbols. Makes you pretty keen to commit horrible acts against the living through bloody carnage." + icon_state = "narsiearmwraps" + item_state = "narsiearmwraps" + resistance_flags = FIRE_PROOF | ACID_PROOF + armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 35, "rad" = 0, "fire" = 50, "acid" = 50) + enhancement = 3 + secondary_trait = TRAIT_KI_VAMPIRE + +/obj/item/clothing/gloves/fingerless/pugilist/brassmountain + name = "armbands of the brass mountain" + desc = "A series of scolding hot brass armbands. Makes you pretty keen to bring the light to the unenlightened through unmitigated violence." + icon_state = "ratvararmwraps" + item_state = "ratvararmwraps" + resistance_flags = FIRE_PROOF | ACID_PROOF + armor = list("melee" = 10, "bullet" = 0, "laser" = -10, "energy" = 0, "bomb" = 0, "bio" = 35, "rad" = 0, "fire" = 50, "acid" = 50) + enhancement = 4 //The artifice of Ratvar is unmatched except when it is. + secondary_trait = TRAIT_STRONG_GRABBER + +/obj/item/clothing/gloves/fingerless/pugilist/rapid + name = "Bands of the North Star" + desc = "The armbands of a deadly martial artist. Makes you pretty keen to put an end to evil in an extremely violent manner." + icon_state = "rapid" + item_state = "rapid" + enhancement = 10 //omae wa mou shindeiru + var/warcry = "AT" + secondary_trait = TRAIT_NOSOFTCRIT //basically extra health + +/obj/item/clothing/gloves/fingerless/pugilist/rapid/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, GLOVE_TRAIT) + +/obj/item/clothing/gloves/fingerless/pugilist/rapid/Touch(atom/target, proximity = TRUE) + if(!isliving(target)) + return + + var/mob/living/M = loc + M.changeNext_move(CLICK_CD_RAPID) + if(warcry) + M.say("[warcry]", ignore_spam = TRUE, forced = TRUE) + + return FALSE + +/obj/item/clothing/gloves/fingerless/pugilist/rapid/AltClick(mob/user) + var/input = stripped_input(user,"What do you want your battlecry to be? Max length of 6 characters.", ,"", 7) + if(input) + warcry = input + +/obj/item/clothing/gloves/fingerless/pugilist/rapid/hug + name = "Hugs of the North Star" + desc = "The armbands of a humble friend. Makes you pretty keen to go let everyone know how much you appreciate them!" + warcry = "owo" //Shouldn't ever come into play + enhancement = 0 + secondary_trait = TRAIT_PACIFISM //You are only here to hug and be friends! + +/obj/item/clothing/gloves/fingerless/pugilist/rapid/hug/Touch(mob/target, proximity = TRUE) + if(!isliving(target)) + return + + var/mob/living/M = loc + + if(M.a_intent != INTENT_HELP) + return FALSE + if(target.stat != CONSCIOUS) //Can't hug people who are dying/dead + return FALSE + else + M.changeNext_move(CLICK_CD_RAPID) + + return FALSE + +/obj/item/clothing/gloves/fingerless/pugilist/rapid/hug/AltClick(mob/user) + return FALSE + /obj/item/clothing/gloves/botanic_leather name = "botanist's leather gloves" desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm." @@ -48,7 +176,6 @@ desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms." icon_state = "bracers" item_state = "bracers" - item_color = null //So they don't wash. transfer_prints = TRUE strip_delay = 40 equip_delay_other = 20 @@ -59,54 +186,6 @@ resistance_flags = NONE armor = list("melee" = 15, "bullet" = 35, "laser" = 35, "energy" = 20, "bomb" = 35, "bio" = 35, "rad" = 35, "fire" = 0, "acid" = 0) -/obj/item/clothing/gloves/rapid - name = "Gloves of the North Star" - desc = "Just looking at these fills you with an urge to beat the shit out of people. Violently." - icon_state = "rapid" - item_state = "rapid" - transfer_prints = TRUE - var/warcry = "AT" - -/obj/item/clothing/gloves/rapid/Touch(mob/living/target,proximity = TRUE) - if(!istype(target)) - return - - var/mob/living/M = loc - M.changeNext_move(CLICK_CD_RAPID) - M.adjustStaminaLoss(-3.5) // used to be -2 with some comment about stamina buffer management but *shrug -hatterhat - if(warcry) - M.say("[warcry]", ignore_spam = TRUE, forced = "north star warcry") - - .= FALSE - - -/obj/item/clothing/gloves/rapid/attack_self(mob/user) - var/input = stripped_input(user,"What do you want your battlecry to be? Max length of 6 characters.", ,"", 7) - if(input) - warcry = input - -/obj/item/clothing/gloves/rapid/hug - name = "Hugs of the North Star" - desc = "Just looking at these fills you with an urge to hug the shit out of people. In a very friendly manner." - warcry = "owo" //Shouldn't ever come into play - -/obj/item/clothing/gloves/rapid/hug/Touch(mob/living/target,proximity = TRUE) - if(!istype(target)) - return - - var/mob/living/M = loc - - if(M.a_intent == INTENT_HELP) - if(target.health >= 0 && !HAS_TRAIT(target, TRAIT_FAKEDEATH)) //Can't hug people who are dying/dead - if(target.on_fire || target.lying) //No spamming extinguishing, helping them up, or other non-hugging/patting help interactions - return - else - M.changeNext_move(CLICK_CD_RAPID) - . = FALSE - -/obj/item/clothing/gloves/rapid/hug/attack_self(mob/user) - return FALSE - /obj/item/clothing/gloves/thief name = "black gloves" desc = "Gloves made with completely frictionless, insulated cloth, easier to steal from people with." @@ -117,4 +196,4 @@ strip_delay = 80 transfer_prints = FALSE strip_mod = 5 - strip_silence = TRUE \ No newline at end of file + strip_silence = TRUE diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm index d599fbf6f7..475e7a4e51 100644 --- a/code/modules/clothing/head/_head.dm +++ b/code/modules/clothing/head/_head.dm @@ -48,8 +48,8 @@ -/obj/item/clothing/head/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) - . = list() +/obj/item/clothing/head/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) + . = ..() if(!isinhands) if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damagedhelmet") diff --git a/code/modules/clothing/head/beanie.dm b/code/modules/clothing/head/beanie.dm index a5fb04d393..4117e88811 100644 --- a/code/modules/clothing/head/beanie.dm +++ b/code/modules/clothing/head/beanie.dm @@ -5,7 +5,6 @@ name = "white beanie" desc = "A stylish beanie. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their heads." icon_state = "beanie" //Default white - item_color = "beanie" /obj/item/clothing/head/beanie/black name = "black beanie" @@ -52,33 +51,27 @@ /obj/item/clothing/head/beanie/christmas name = "christmas beanie" icon_state = "beaniechristmas" - item_color = "beaniechristmas" /obj/item/clothing/head/beanie/striped name = "striped beanie" icon_state = "beaniestriped" - item_color = "beaniestriped" /obj/item/clothing/head/beanie/stripedred name = "red striped beanie" icon_state = "beaniestripedred" - item_color = "beaniestripedred" /obj/item/clothing/head/beanie/stripedblue name = "blue striped beanie" icon_state = "beaniestripedblue" - item_color = "beaniestripedblue" /obj/item/clothing/head/beanie/stripedgreen name = "green striped beanie" icon_state = "beaniestripedgreen" - item_color = "beaniestripedgreen" /obj/item/clothing/head/beanie/durathread name = "durathread beanie" desc = "A beanie made from durathread, its resilient fibres provide some protection to the wearer." icon_state = "beaniedurathread" - item_color = null armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50) diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 29b0aa9552..ffd50cbfbe 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -7,7 +7,7 @@ light_color = "#FFCC66" var/power_on = 0.8 var/on = FALSE - item_color = "yellow" //Determines used sprites: hardhat[on]_[item_color] and hardhat[on]_[item_color]2 (lying down sprite) + var/hat_type = "yellow" //Determines used sprites: hardhat[on]_[hat_type] and hardhat[on]_[hat_type]2 (lying down sprite) armor = list("melee" = 15, "bullet" = 5, "laser" = 20,"energy" = 10, "bomb" = 20, "bio" = 10, "rad" = 20, "fire" = 100, "acid" = 50) flags_inv = 0 actions_types = list(/datum/action/item_action/toggle_helmet_light) @@ -33,8 +33,8 @@ update_icon() /obj/item/clothing/head/hardhat/update_icon_state() - icon_state = "hardhat[on]_[item_color]" - item_state = "hardhat[on]_[item_color]" + icon_state = "hardhat[on]_[hat_type]" + item_state = "hardhat[on]_[hat_type]" /obj/item/clothing/head/hardhat/proc/turn_on(mob/user) set_light(brightness_on, power_on) @@ -45,13 +45,13 @@ /obj/item/clothing/head/hardhat/orange icon_state = "hardhat0_orange" item_state = "hardhat0_orange" - item_color = "orange" + hat_type = "orange" dog_fashion = null /obj/item/clothing/head/hardhat/red icon_state = "hardhat0_red" item_state = "hardhat0_red" - item_color = "red" + hat_type = "red" dog_fashion = null name = "firefighter helmet" clothing_flags = STOPSPRESSUREDAMAGE @@ -63,7 +63,7 @@ /obj/item/clothing/head/hardhat/white icon_state = "hardhat0_white" item_state = "hardhat0_white" - item_color = "white" + hat_type = "white" clothing_flags = STOPSPRESSUREDAMAGE heat_protection = HEAD max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT @@ -74,13 +74,13 @@ /obj/item/clothing/head/hardhat/dblue icon_state = "hardhat0_dblue" item_state = "hardhat0_dblue" - item_color = "dblue" + hat_type = "dblue" dog_fashion = null /obj/item/clothing/head/hardhat/atmos icon_state = "hardhat0_atmos" item_state = "hardhat0_atmos" - item_color = "atmos" + hat_type = "atmos" dog_fashion = null name = "atmospheric technician's firefighting helmet" desc = "A firefighter's helmet, able to keep the user cool in any situation." @@ -124,12 +124,12 @@ playsound(src, 'sound/mecha/mechmove03.ogg', 50, TRUE) //Visors don't just come from nothing update_icon() -/obj/item/clothing/head/hardhat/weldhat/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/clothing/head/hardhat/weldhat/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) - . += mutable_appearance('icons/mob/head.dmi', "weldhelmet") + . += mutable_appearance('icons/mob/clothing/head.dmi', "weldhelmet") if(!up) - . += mutable_appearance('icons/mob/head.dmi', "weldvisor") + . += mutable_appearance('icons/mob/clothing/head.dmi', "weldvisor") /obj/item/clothing/head/hardhat/weldhat/update_overlays() . = ..() @@ -139,14 +139,14 @@ /obj/item/clothing/head/hardhat/weldhat/orange icon_state = "hardhat0_orange" item_state = "hardhat0_orange" - item_color = "orange" + hat_type = "orange" /obj/item/clothing/head/hardhat/weldhat/white desc = "A piece of headgear used in dangerous working conditions to protect the head. Comes with a built-in flashlight AND welding shield!" //This bulb is not smaller icon_state = "hardhat0_white" item_state = "hardhat0_white" brightness_on = 4 //Boss always takes the best stuff - item_color = "white" + hat_type = "white" clothing_flags = STOPSPRESSUREDAMAGE heat_protection = HEAD max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT @@ -156,4 +156,4 @@ /obj/item/clothing/head/hardhat/weldhat/dblue icon_state = "hardhat0_dblue" item_state = "hardhat0_dblue" - item_color = "dblue" \ No newline at end of file + hat_type = "dblue" \ No newline at end of file diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 9253c4e9aa..638a0c2f23 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -364,7 +364,6 @@ name = "durathread beret" desc = "A beret made from durathread, its resilient fibres provide some protection to the wearer." icon_state = "beretdurathread" - item_color = null armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50) #undef DRILL_DEFAULT diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 189fb46e46..2cb043ba88 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -372,14 +372,12 @@ name = "Telegram cap" desc = "A bright red cap warn by hotel staff. Or people who want to be a singing telegram" icon_state = "telegram" - item_color = "telegram" dog_fashion = /datum/dog_fashion/head/telegram /obj/item/clothing/head/colour name = "Singer cap" desc = "A light white hat that has bands of color. Just makes you want to sing and dance!" icon_state = "colour" - item_color = "colour" dog_fashion = /datum/dog_fashion/head/colour /obj/item/clothing/head/christmashat diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 0b58ea234c..9c96223a6f 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -42,7 +42,6 @@ desc = "You put the cake on your head. Brilliant." icon_state = "hardhat0_cakehat" item_state = "hardhat0_cakehat" - item_color = "cakehat" hitsound = 'sound/weapons/tap.ogg' flags_inv = HIDEEARS|HIDEHAIR armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) @@ -114,7 +113,6 @@ desc = "A jack o' lantern! Believed to ward off evil spirits." icon_state = "hardhat0_pumpkin" item_state = "hardhat0_pumpkin" - item_color = "pumpkin" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) brightness_on = 2 //luminosity when on @@ -151,7 +149,6 @@ desc = "Some fake antlers and a very fake red nose." icon_state = "hardhat0_reindeer" item_state = "hardhat0_reindeer" - item_color = "reindeer" flags_inv = 0 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) brightness_on = 1 //luminosity when on @@ -187,14 +184,15 @@ /obj/item/clothing/head/wig name = "wig" desc = "A bunch of hair without a head attached." - icon_state = "" - item_state = "pwig" + icon = 'icons/mob/human_face.dmi' // default icon for all hairs + icon_state = "hair_vlong" flags_inv = HIDEHAIR + color = "#000" var/hair_style = "Very Long Hair" - var/hair_color = "#000" /obj/item/clothing/head/wig/Initialize(mapload) . = ..() + icon_state = "" //Shitty hack that i dont know if it is even neccesary to deal with the vendor stack exception update_icon() /obj/item/clothing/head/wig/update_icon_state() @@ -202,29 +200,24 @@ if(!S) icon = 'icons/obj/clothing/hats.dmi' icon_state = "pwig" + else + icon = S.icon + icon_state = S.icon_state -/obj/item/clothing/head/wig/update_overlays() +/obj/item/clothing/head/wig/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() - var/datum/sprite_accessory/S = GLOB.hair_styles_list[hair_style] - if(S) - var/mutable_appearance/M = mutable_appearance(S.icon, S.icon_state, color = hair_color) - M.appearance_flags |= RESET_COLOR - . += M - -/obj/item/clothing/head/wig/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) - . = list() if(!isinhands) var/datum/sprite_accessory/S = GLOB.hair_styles_list[hair_style] if(!S) return var/mutable_appearance/M = mutable_appearance(S.icon, S.icon_state,layer = -HAIR_LAYER) M.appearance_flags |= RESET_COLOR - M.color = hair_color + M.color = color . += M /obj/item/clothing/head/wig/random/Initialize(mapload) hair_style = pick(GLOB.hair_styles_list - "Bald") //Don't want invisible wig - hair_color = "#[random_short_color()]" + color = "#[random_short_color()]" . = ..() /obj/item/clothing/head/bronze diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 19ff6bc8b2..2f4bd44e4f 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -3,14 +3,14 @@ desc = "It's a baseball hat in a tasteless yellow colour." icon_state = "cargosoft" item_state = "helmet" - item_color = "cargo" + var/soft_type = "cargo" dog_fashion = /datum/dog_fashion/head/cargo_tech var/flipped = 0 /obj/item/clothing/head/soft/dropped(mob/user) - icon_state = "[item_color]soft" + icon_state = "[soft_type]soft" flipped = FALSE return ..() @@ -33,10 +33,10 @@ if(!user.incapacitated()) src.flipped = !src.flipped if(src.flipped) - icon_state = "[item_color]soft_flipped" + icon_state = "[soft_type]soft_flipped" to_chat(user, "You flip the hat backwards.") else - icon_state = "[item_color]soft" + icon_state = "[soft_type]soft" to_chat(user, "You flip the hat back in normal position.") usr.update_inv_head() //so our mob-overlays update @@ -48,77 +48,77 @@ name = "red cap" desc = "It's a baseball hat in a tasteless red colour." icon_state = "redsoft" - item_color = "red" + soft_type = "red" dog_fashion = null /obj/item/clothing/head/soft/blue name = "blue cap" desc = "It's a baseball hat in a tasteless blue colour." icon_state = "bluesoft" - item_color = "blue" + soft_type = "blue" dog_fashion = null /obj/item/clothing/head/soft/green name = "green cap" desc = "It's a baseball hat in a tasteless green colour." icon_state = "greensoft" - item_color = "green" + soft_type = "green" dog_fashion = null /obj/item/clothing/head/soft/yellow name = "yellow cap" desc = "It's a baseball hat in a tasteless yellow colour." icon_state = "yellowsoft" - item_color = "yellow" + soft_type = "yellow" dog_fashion = null /obj/item/clothing/head/soft/grey name = "grey cap" desc = "It's a baseball hat in a tasteful grey colour." icon_state = "greysoft" - item_color = "grey" + soft_type = "grey" dog_fashion = null /obj/item/clothing/head/soft/orange name = "orange cap" desc = "It's a baseball hat in a tasteless orange colour." icon_state = "orangesoft" - item_color = "orange" + soft_type = "orange" dog_fashion = null /obj/item/clothing/head/soft/mime name = "white cap" desc = "It's a baseball hat in a tasteless white colour." icon_state = "mimesoft" - item_color = "mime" + soft_type = "mime" dog_fashion = null /obj/item/clothing/head/soft/purple name = "purple cap" desc = "It's a baseball hat in a tasteless purple colour." icon_state = "purplesoft" - item_color = "purple" + soft_type = "purple" dog_fashion = null /obj/item/clothing/head/soft/black name = "black cap" desc = "It's a baseball hat in a tasteless black colour." icon_state = "blacksoft" - item_color = "black" + soft_type = "black" dog_fashion = null /obj/item/clothing/head/soft/rainbow name = "rainbow cap" desc = "It's a baseball hat in a bright rainbow of colors." icon_state = "rainbowsoft" - item_color = "rainbow" + soft_type = "rainbow" dog_fashion = null /obj/item/clothing/head/soft/sec name = "security cap" desc = "It's a robust baseball hat in tasteful red colour." icon_state = "secsoft" - item_color = "sec" + soft_type = "sec" armor = list("melee" = 30, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 50) strip_delay = 60 dog_fashion = null @@ -127,14 +127,14 @@ name = "EMT cap" desc = "It's a baseball hat with a dark turquoise color and a reflective cross on the top." icon_state = "emtsoft" - item_color = "emt" + soft_type = "emt" dog_fashion = null /obj/item/clothing/head/soft/baseball name = "baseball cap" desc = "It's a robust baseball hat, this one belongs to syndicate major league team." icon_state = "baseballsoft" - item_color = "baseballsoft" + soft_type = "baseballsoft" item_state = "baseballsoft" flags_inv = HIDEEYES|HIDEFACE armor = list("melee" = 35, "bullet" = 35, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 90) diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index 5019633cf0..7df38661e5 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -28,8 +28,8 @@ /obj/item/clothing/mask/proc/handle_speech() -/obj/item/clothing/mask/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) - . = list() +/obj/item/clothing/mask/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) + . = ..() if(!isinhands) if(body_parts_covered & HEAD) if(damaged_clothes) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 38f0a7c20a..144b17e510 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -68,6 +68,7 @@ clothing_flags = ALLOWINTERNALS icon_state = "clown" item_state = "clown_hat" + dye_color = "clown" flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE actions_types = list(/datum/action/item_action/adjust) diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index c743f26363..3813ced2c4 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -132,7 +132,6 @@ /obj/item/clothing/mask/cowmask name = "Cow mask with a builtin voice modulator." desc = "A rubber cow mask," - icon = 'icons/mob/mask.dmi' icon_state = "cowmask" item_state = "cowmask" clothing_flags = VOICEBOX_TOGGLABLE @@ -343,3 +342,45 @@ desc = "A bandana made from durathread, you wish it would provide some protection to its wearer, but it's far too thin..." icon_state = "banddurathread" +/obj/item/clothing/mask/paper + name = "paper mask" + desc = "A neat, circular mask made out of paper." + icon_state = "plainmask" + item_state = "plainmask" + flags_inv = HIDEFACE|HIDEFACIALHAIR + resistance_flags = FLAMMABLE + max_integrity = 100 + actions_types = list(/datum/action/item_action/adjust) + + +/obj/item/clothing/mask/paper/ui_action_click(mob/user) + if(!istype(user) || user.incapacitated()) + return + + var/list/options = list() + options["Blank"] = "plainmask" + options["Neutral"] = "neutralmask" + options["Eyes"] = "eyemask" + options["Sleeping"] ="sleepingmask" + options["Heart"] = "heartmask" + options["Core"] = "coremask" + options["Plus"] = "plusmask" + options["Square"] ="squaremask" + options["Bullseye"] = "bullseyemask" + options["Vertical"] = "verticalmask" + options["Horizontal"] = "horizontalmask" + options["X"] ="xmask" + options["Bugeyes"] = "bugmask" + options["Double"] = "doublemask" + options["Mark"] = "markmask" + + var/choice = input(user,"What symbol would you want on this mask?","Morph Mask") in options + + if(src && choice && !user.incapacitated() && in_range(user,src)) + icon_state = options[choice] + user.update_inv_wear_mask() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + to_chat(user, "Your paper mask now has a [choice] symbol!") + return 1 diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 530af7777d..402ea37f21 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -6,8 +6,8 @@ strip_delay = 40 equip_delay_other = 40 -/obj/item/clothing/neck/worn_overlays(isinhands = FALSE, icon_flag, style_flags = NONE) - . = list() +/obj/item/clothing/neck/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) + . = ..() if(!isinhands) if(body_parts_covered & HEAD) if(damaged_clothes) @@ -21,35 +21,29 @@ icon = 'icons/obj/clothing/neck.dmi' icon_state = "bluetie" item_state = "" //no inhands - item_color = "bluetie" w_class = WEIGHT_CLASS_SMALL /obj/item/clothing/neck/tie/blue name = "blue tie" icon_state = "bluetie" - item_color = "bluetie" /obj/item/clothing/neck/tie/red name = "red tie" icon_state = "redtie" - item_color = "redtie" /obj/item/clothing/neck/tie/black name = "black tie" icon_state = "blacktie" - item_color = "blacktie" /obj/item/clothing/neck/tie/horrible name = "horrible tie" desc = "A neosilk clip-on tie. This one is disgusting." icon_state = "horribletie" - item_color = "horribletie" /obj/item/clothing/neck/stethoscope name = "stethoscope" desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing." icon_state = "stethoscope" - item_color = "stethoscope" /obj/item/clothing/neck/stethoscope/suicide_act(mob/living/carbon/user) user.visible_message("[user] puts \the [src] to [user.p_their()] chest! It looks like [user.p_they()] wont hear much!") @@ -94,7 +88,6 @@ name = "white scarf" icon_state = "scarf" desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." - item_color = "scarf" dog_fashion = /datum/dog_fashion/head /obj/item/clothing/neck/scarf/black @@ -148,12 +141,10 @@ /obj/item/clothing/neck/scarf/zebra name = "zebra scarf" icon_state = "zebrascarf" - item_color = "zebrascarf" /obj/item/clothing/neck/scarf/christmas name = "christmas scarf" icon_state = "christmasscarf" - item_color = "christmasscarf" //The three following scarves don't have the scarf subtype //This is because Ian can equip anything from that subtype @@ -161,17 +152,14 @@ /obj/item/clothing/neck/stripedredscarf name = "striped red scarf" icon_state = "stripedredscarf" - item_color = "stripedredscarf" /obj/item/clothing/neck/stripedgreenscarf name = "striped green scarf" icon_state = "stripedgreenscarf" - item_color = "stripedgreenscarf" /obj/item/clothing/neck/stripedbluescarf name = "striped blue scarf" icon_state = "stripedbluescarf" - item_color = "stripedbluescarf" /////////// //COLLARS// @@ -181,57 +169,44 @@ name = "pet collar" desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule. It seems to be made out of a polychromic material." icon_state = "petcollar" - item_color = "petcollar" - alternate_worn_icon = 'icons/mob/neck.dmi' //Because, as it appears, the item itself is normally not directly aware of its worn overlays, so this is about the easiest way, without adding a new var. - hasprimary = TRUE - primary_color = "#00BBBB" pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar + var/poly_states = 1 + var/poly_colors = list("#00BBBB") var/tagname = null + var/treat_path = /obj/item/reagent_containers/food/snacks/cookie + +/obj/item/clothing/neck/petcollar/Initialize() + . = ..() + if(treat_path) + new treat_path(src) + +/obj/item/clothing/neck/petcollar/ComponentInitialize() + . = ..() + if(!poly_states) + return + AddElement(/datum/element/polychromic, poly_colors, poly_states) /obj/item/clothing/neck/petcollar/attack_self(mob/user) tagname = stripped_input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot", MAX_NAME_LEN) name = "[initial(name)] - [tagname]" -/obj/item/clothing/neck/petcollar/worn_overlays(isinhands, icon_file, style_flags = NONE) - . = ..() - if(hasprimary | hassecondary | hastertiary) - if(!isinhands) //prevents the worn sprites from showing up if you're just holding them - if(hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-primary") //automagical sprite selection - primary_worn.color = primary_color //colors the overlay - . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite - if(hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-secondary") - secondary_worn.color = secondary_color - . += secondary_worn - if(hastertiary) - var/mutable_appearance/tertiary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-tertiary") - tertiary_worn.color = tertiary_color - . += tertiary_worn - /obj/item/clothing/neck/petcollar/leather name = "leather pet collar" icon_state = "leathercollar" - item_color = "leathercollar" - - hasprimary = TRUE - hassecondary = TRUE - primary_color = "#222222" - secondary_color = "#888888" + poly_states = 2 + poly_colors = list("#222222", "#888888") /obj/item/clothing/neck/petcollar/choker desc = "Quite fashionable... if you're somebody who's just read their first BDSM-themed erotica novel." name = "choker" icon_state = "choker" - item_color = "choker" - - hasprimary = TRUE - primary_color = "#222222" + poly_colors = list("#222222") /obj/item/clothing/neck/petcollar/locked name = "locked collar" desc = "A collar that has a small lock on it to keep it from being removed." pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar/locked + treat_path = /obj/item/key/collar var/lock = FALSE /obj/item/clothing/neck/petcollar/locked/attackby(obj/item/K, mob/user, params) @@ -253,34 +228,19 @@ /obj/item/clothing/neck/petcollar/locked/leather name = "leather pet collar" icon_state = "leathercollar" - item_color = "leathercollar" - - hasprimary = TRUE - hassecondary = TRUE - primary_color = "#222222" - secondary_color = "#888888" + poly_states = 2 + poly_colors = list("#222222", "#888888") /obj/item/clothing/neck/petcollar/locked/choker name = "choker" desc = "Quite fashionable... if you're somebody who's just read their first BDSM-themed erotica novel." icon_state = "choker" - item_color = "choker" - - hasprimary = TRUE - primary_color = "#222222" + poly_colors = list("#222222") /obj/item/key/collar name = "Collar Key" desc = "A key for a tiny lock on a collar or bag." -/obj/item/clothing/neck/petcollar/Initialize() - . = ..() - new /obj/item/reagent_containers/food/snacks/cookie(src) - -/obj/item/clothing/neck/petcollar/locked/Initialize() - . = ..() - new /obj/item/key/collar(src) - ////////////// //DOPE BLING// ////////////// @@ -290,7 +250,6 @@ desc = "Damn, it feels good to be a gangster." icon = 'icons/obj/clothing/neck.dmi' icon_state = "bling" - item_color = "bling" ////////////////////////////////// //VERY SUPER BADASS NECKERCHIEFS// @@ -304,7 +263,7 @@ obj/item/clothing/neck/neckerchief /obj/item/clothing/neck/neckerchief/worn_overlays(isinhands) . = ..() if(!isinhands) - var/mutable_appearance/realOverlay = mutable_appearance('icons/mob/mask.dmi', icon_state) + var/mutable_appearance/realOverlay = mutable_appearance('icons/mob/clothing/mask.dmi', icon_state) realOverlay.pixel_y = -3 . += realOverlay diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index 4c6d3a8f88..802dd7265e 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -49,8 +49,8 @@ last_bloodtype = blood_dna[blood_dna[blood_dna.len]]//trust me this works last_blood_DNA = blood_dna[blood_dna.len] -/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) - . = list() +/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) + . = ..() if(!isinhands) var/bloody = FALSE if(blood_DNA) @@ -61,7 +61,7 @@ if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damagedshoe") if(bloody) - var/file2use = style_flags & STYLE_DIGITIGRADE ? 'icons/mob/feet_digi.dmi' : 'icons/effects/blood.dmi' + var/file2use = style_flags & STYLE_DIGITIGRADE ? 'icons/mob/clothing/feet_digi.dmi' : 'icons/effects/blood.dmi' . += mutable_appearance(file2use, "shoeblood", color = blood_DNA_to_color()) /obj/item/clothing/shoes/equipped(mob/user, slot) diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index c45b9b443a..df0f03f614 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -1,9 +1,9 @@ /obj/item/clothing/shoes/sneakers + dying_key = DYE_REGISTRY_SNEAKERS /obj/item/clothing/shoes/sneakers/black name = "black shoes" icon_state = "black" - item_color = "black" desc = "A pair of black shoes." cold_protection = FEET @@ -11,80 +11,49 @@ heat_protection = FEET max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT -/obj/item/clothing/shoes/sneakers/black/redcoat - item_color = "redcoat" //Exists for washing machines. Is not different from black shoes in any way. - /obj/item/clothing/shoes/sneakers/brown name = "brown shoes" desc = "A pair of brown shoes." icon_state = "brown" - item_color = "brown" - -/obj/item/clothing/shoes/sneakers/brown/captain - item_color = "captain" //Exists for washing machines. Is not different from brown shoes in any way. - -/obj/item/clothing/shoes/sneakers/brown/hop - item_color = "hop" //Exists for washing machines. Is not different from brown shoes in any way. - -/obj/item/clothing/shoes/sneakers/brown/ce - item_color = "chief" //Exists for washing machines. Is not different from brown shoes in any way. - -/obj/item/clothing/shoes/sneakers/brown/rd - item_color = "director" //Exists for washing machines. Is not different from brown shoes in any way. - -/obj/item/clothing/shoes/sneakers/brown/cmo - item_color = "medical" //Exists for washing machines. Is not different from brown shoes in any way. - -/obj/item/clothing/shoes/sneakers/brown/qm - item_color = "cargo" //Exists for washing machines. Is not different from brown shoes in any way. /obj/item/clothing/shoes/sneakers/blue name = "blue shoes" icon_state = "blue" - item_color = "blue" /obj/item/clothing/shoes/sneakers/green name = "green shoes" icon_state = "green" - item_color = "green" /obj/item/clothing/shoes/sneakers/yellow name = "yellow shoes" icon_state = "yellow" - item_color = "yellow" /obj/item/clothing/shoes/sneakers/purple name = "purple shoes" icon_state = "purple" - item_color = "purple" /obj/item/clothing/shoes/sneakers/brown name = "brown shoes" icon_state = "brown" - item_color = "brown" /obj/item/clothing/shoes/sneakers/red name = "red shoes" desc = "Stylish red shoes." icon_state = "red" - item_color = "red" /obj/item/clothing/shoes/sneakers/white name = "white shoes" icon_state = "white" permeability_coefficient = 0.01 - item_color = "white" /obj/item/clothing/shoes/sneakers/rainbow name = "rainbow shoes" desc = "Very gay shoes." icon_state = "rain_bow" - item_color = "rainbow" /obj/item/clothing/shoes/sneakers/orange name = "orange shoes" icon_state = "orange" - item_color = "orange" /obj/item/clothing/shoes/sneakers/orange/attack_self(mob/user) if (src.chained) @@ -120,5 +89,4 @@ to_chat(c, "You need help taking these off!") return return ..() - - \ No newline at end of file + diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 32d9dd4483..7a3ed902ea 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -4,7 +4,6 @@ /obj/item/clothing/shoes/sneakers/mime name = "mime shoes" icon_state = "mime" - item_color = "mime" /obj/item/clothing/shoes/combat //basic syndicate combat boots for nuke ops and mob corpses name = "combat boots" @@ -124,7 +123,6 @@ icon_state = "jackboots" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' - item_color = "hosred" strip_delay = 50 equip_delay_other = 50 resistance_flags = NONE @@ -181,7 +179,6 @@ name = "\improper Nar'Sien invoker boots" desc = "A pair of boots worn by the followers of Nar'Sie." icon_state = "cult" - item_color = "cult" cold_protection = FEET min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT heat_protection = FEET @@ -227,7 +224,6 @@ name = "jump boots" desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement." icon_state = "jetboots" - item_color = "hosred" resistance_flags = FIRE_PROOF pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes actions_types = list(/datum/action/item_action/bhop) @@ -381,3 +377,99 @@ name = "black cowboy boots" desc = "A pair of black cowboy boots, pretty easy to scuff up." icon_state = "cowboyboots_black" + +/obj/item/clothing/shoes/wallwalkers + name = "wall walking boots" + desc = "Contrary to popular belief, these do not allow you to walk on walls. Through bluespace magic stolen from an organisation that hoards technology, they simply allow you to slip through the atoms that make up anything, but only while walking, for safety reasons. As well as this, they unfortunately cause minor breath loss as the majority of atoms in your lungs are sucked out into any solid object you walk through. Make sure not to overuse them." + icon_state = "walkboots" + var/walkcool = 0 + var/wallcharges = 4 + var/newlocobject = null + +/obj/item/clothing/shoes/wallwalkers/equipped(mob/user,slot) + . = ..() + if(slot == SLOT_SHOES) + RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE,.proc/intercept_user_move) + +/obj/item/clothing/shoes/wallwalkers/dropped(mob/user) + . = ..() + UnregisterSignal(user, COMSIG_MOB_CLIENT_MOVE) + +/obj/item/clothing/shoes/wallwalkers/attackby(obj/item/W, mob/user, params) + . = ..() + if(!istype(W, /obj/item/bluespacerecharge)) + return + var/obj/item/bluespacerecharge/ER = W + if(ER.uses) + wallcharges += ER.uses + to_chat(user, "You charged the bluespace crystal in the [src]. It now has [wallcharges] charges left.") + ER.uses = 0 + ER.icon_state = "[initial(ER.icon_state)]0" + else + to_chat(user, "[ER] has no crystal on it.") + +/obj/item/clothing/shoes/wallwalkers/examine(mob/user) + . = ..() + . += "It has [wallcharges] charges left." + +/obj/item/clothing/shoes/wallwalkers/proc/intercept_user_move(mob/living/m, client/client, dir, newloc, oldloc) + if (walkcool >= world.time || m.m_intent != MOVE_INTENT_WALK || wallcharges <= 0) + return + walkcool = world.time + m.movement_delay() + var/issolid = FALSE + var/turf/K = newloc + if (istype(K)) + if (K.density) + issolid = TRUE + if (!issolid) + for (var/atom/T in newloc) //stuff on the new turf + if (!T.CanPass(m,newloc) && T != m) + issolid = TRUE + newlocobject = T + break + if (!issolid) + for (var/atom/T in oldloc) //directional shit on the old turf + if (!T.CanPass(m,newloc) && T != m && T != newlocobject) + issolid = TRUE + break + newlocobject = null //stopping structures from using two charges because of how shitty the canpass code is + m.forceMove(newloc) + if (!issolid) + return + m.adjustOxyLoss(rand(5,13)) + if (prob(15)) + m.adjustBruteLoss(rand(4,7)) + to_chat(m,"You feel as if travelling through the solid object left something behind and it hurts!") + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(5, 1, oldloc) + s.start() + flash_lighting_fx(3, 3, LIGHT_COLOR_ORANGE) + wallcharges-- + +/obj/item/bluespacerecharge + name = "bluespace crystal recharging device" + desc = "A small cell with two prongs lazily jabbed into it. It looks like it's made for replacing the crystals in bluespace devices." + icon = 'icons/obj/module.dmi' + icon_state = "bluespace_charge" + item_flags = NOBLUDGEON + w_class = WEIGHT_CLASS_TINY + var/uses = 6 + +/obj/item/bluespacerecharge/examine(mob/user) + . = ..() + if(uses) + . += "It can add up to [uses] charges to compatible devices." + else + . += "The crystal is gone." + +/obj/item/bluespacerecharge/attackby(obj/item/I, mob/user, params) + ..() + if(!istype(I, /obj/item/stack/ore/bluespace_crystal) || uses) + return + var/obj/item/stack/ore/bluespace_crystal/B = I + if (B.amount < 10) + return + uses += 3 + to_chat(user, "You insert [I] into [src].") + B.use(10) + icon_state = initial(icon_state) diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 4311aa5166..94ccdf94c6 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -321,7 +321,7 @@ check_flags = AB_CHECK_CONSCIOUS //|AB_CHECK_INSIDE var/obj/item/clothing/suit/space/chronos/chronosuit = null -/datum/action/innate/chrono_teleport/IsAvailable() +/datum/action/innate/chrono_teleport/IsAvailable(silent = FALSE) return (chronosuit && chronosuit.activated && chronosuit.camera && !chronosuit.teleporting) /datum/action/innate/chrono_teleport/Activate() diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 1bad198c73..93b34f4522 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -10,7 +10,7 @@ var/brightness_on = 4 //luminosity when on var/on = FALSE var/obj/item/clothing/suit/space/hardsuit/suit - item_color = "engineering" //Determines used sprites: hardsuit[on]-[color] and hardsuit[on]-[color]2 (lying down sprite) + var/hardsuit_type = "engineering" //Determines used sprites: hardsuit[on]-[type] actions_types = list(/datum/action/item_action/toggle_helmet_light) var/rad_count = 0 @@ -30,16 +30,14 @@ /obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user) on = !on - icon_state = "[basestate][on]-[item_color]" user.update_inv_head() //so our mob-overlays update - if(on) set_light(brightness_on) else set_light(0) - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() + +/obj/item/clothing/head/helmet/space/hardsuit/update_icon_state() + icon_state = "[basestate][on]-[hardsuit_type]" /obj/item/clothing/head/helmet/space/hardsuit/dropped(mob/user) ..() @@ -103,6 +101,7 @@ actions_types = list(/datum/action/item_action/toggle_helmet) var/helmettype = /obj/item/clothing/head/helmet/space/hardsuit var/obj/item/tank/jetpack/suit/jetpack = null + var/hardsuit_type /obj/item/clothing/suit/space/hardsuit/Initialize() @@ -169,7 +168,7 @@ icon_state = "hardsuit0-engineering" item_state = "eng_helm" armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 100, "acid" = 75) - item_color = "engineering" + hardsuit_type = "engineering" resistance_flags = FIRE_PROOF /obj/item/clothing/suit/space/hardsuit/engine @@ -188,7 +187,7 @@ desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has thermal shielding." icon_state = "hardsuit0-atmospherics" item_state = "atmo_helm" - item_color = "atmospherics" + hardsuit_type = "atmospherics" armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 25, "fire" = 100, "acid" = 75) heat_protection = HEAD //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT @@ -209,7 +208,7 @@ desc = "An advanced helmet designed for work in a hazardous, low pressure environment. Shines with a high polish." icon_state = "hardsuit0-white" item_state = "ce_helm" - item_color = "white" + hardsuit_type = "white" armor = list("melee" = 40, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 90) heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT @@ -231,7 +230,7 @@ desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating for wildlife encounters and dual floodlights." icon_state = "hardsuit0-mining" item_state = "mining_helm" - item_color = "mining" + hardsuit_type = "mining" max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF heat_protection = HEAD @@ -267,7 +266,7 @@ alt_desc = "A dual-mode advanced helmet designed for work in special operations. It is in combat mode. Property of Gorlex Marauders." icon_state = "hardsuit1-syndi" item_state = "syndie_helm" - item_color = "syndi" + hardsuit_type = "syndi" armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) on = FALSE var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null @@ -276,7 +275,7 @@ visor_flags = STOPSPRESSUREDAMAGE /obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon_state() - icon_state = "hardsuit[on]-[item_color]" + icon_state = "hardsuit[on]-[hardsuit_type]" /obj/item/clothing/head/helmet/space/hardsuit/syndi/Initialize() . = ..() @@ -332,7 +331,7 @@ linkedsuit.clothing_flags &= ~STOPSPRESSUREDAMAGE linkedsuit.cold_protection &= ~(CHEST | GROIN | LEGS | FEET | ARMS | HANDS) - linkedsuit.icon_state = "hardsuit[on]-[item_color]" + linkedsuit.icon_state = "hardsuit[on]-[hardsuit_type]" linkedsuit.update_icon() user.update_inv_wear_suit() user.update_inv_w_uniform() @@ -344,7 +343,7 @@ alt_desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in combat mode. Property of Gorlex Marauders." icon_state = "hardsuit1-syndi" item_state = "syndie_hardsuit" - item_color = "syndi" + hardsuit_type = "syndi" w_class = WEIGHT_CLASS_NORMAL armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals) @@ -358,7 +357,7 @@ desc = "An elite version of the syndicate helmet, with improved armour and fireproofing. It is in EVA mode. Property of Gorlex Marauders." alt_desc = "An elite version of the syndicate helmet, with improved armour and fireproofing. It is in combat mode. Property of Gorlex Marauders." icon_state = "hardsuit0-syndielite" - item_color = "syndielite" + hardsuit_type = "syndielite" armor = list("melee" = 60, "bullet" = 60, "laser" = 50, "energy" = 25, "bomb" = 55, "bio" = 100, "rad" = 70, "fire" = 100, "acid" = 100) heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT @@ -375,7 +374,7 @@ desc = "An elite version of the syndicate hardsuit, with improved armour and fireproofing. It is in travel mode." alt_desc = "An elite version of the syndicate hardsuit, with improved armour and fireproofing. It is in combat mode." icon_state = "hardsuit0-syndielite" - item_color = "syndielite" + hardsuit_type = "syndielite" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite armor = list("melee" = 60, "bullet" = 60, "laser" = 50, "energy" = 25, "bomb" = 55, "bio" = 100, "rad" = 70, "fire" = 100, "acid" = 100) heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -394,7 +393,7 @@ alt_desc = "A dual-mode advanced helmet designed for any crime-fighting situation. It is in combat mode." icon_state = "hardsuit1-owl" item_state = "s_helmet" - item_color = "owl" + hardsuit_type = "owl" visor_flags_inv = 0 visor_flags = 0 on = FALSE @@ -405,7 +404,7 @@ alt_desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in combat mode." icon_state = "hardsuit1-owl" item_state = "s_suit" - item_color = "owl" + hardsuit_type = "owl" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl mutantrace_variation = STYLE_DIGITIGRADE @@ -416,12 +415,16 @@ desc = "A bizarre gem-encrusted helmet that radiates magical energies." icon_state = "hardsuit0-wiz" item_state = "wiz_helm" - item_color = "wiz" + hardsuit_type = "wiz" resistance_flags = FIRE_PROOF | ACID_PROOF //No longer shall our kind be foiled by lone chemists with spray bottles! armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 20, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100) heat_protection = HEAD //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT +/obj/item/clothing/head/helmet/space/hardsuit/wizard/ComponentInitialize() + . = ..() + AddElement(/datum/element/spellcasting, SPELL_WIZARD_HAT, ITEM_SLOT_HEAD) + /obj/item/clothing/suit/space/hardsuit/wizard icon_state = "hardsuit-wiz" name = "gem-encrusted hardsuit" @@ -436,9 +439,10 @@ helmettype = /obj/item/clothing/head/helmet/space/hardsuit/wizard mutantrace_variation = STYLE_DIGITIGRADE -/obj/item/clothing/suit/space/hardsuit/wizard/Initialize() +/obj/item/clothing/suit/space/hardsuit/wizard/ComponentInitialize() . = ..() AddComponent(/datum/component/anti_magic, TRUE, FALSE, FALSE, ITEM_SLOT_OCLOTHING, INFINITY, FALSE) + AddElement(/datum/element/spellcasting, SPELL_WIZARD_ROBE, ITEM_SLOT_OCLOTHING) //Medical hardsuit /obj/item/clothing/head/helmet/space/hardsuit/medical @@ -446,7 +450,7 @@ desc = "A special helmet designed for work in a hazardous, low pressure environment. Built with lightweight materials for extra comfort, but does not protect the eyes from intense light." icon_state = "hardsuit0-medical" item_state = "medical_helm" - item_color = "medical" + hardsuit_type = "medical" flash_protect = 0 armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR @@ -479,7 +483,7 @@ name = "prototype hardsuit helmet" desc = "A prototype helmet designed for research in a hazardous, low pressure environment. Scientific data flashes across the visor." icon_state = "hardsuit0-rd" - item_color = "rd" + hardsuit_type = "rd" resistance_flags = ACID_PROOF | FIRE_PROOF max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 100, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 80) @@ -521,7 +525,7 @@ desc = "A special helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." icon_state = "hardsuit0-sec" item_state = "sec_helm" - item_color = "sec" + hardsuit_type = "sec" armor = list("melee" = 35, "bullet" = 15, "laser" = 30,"energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) /obj/item/clothing/suit/space/hardsuit/security @@ -542,7 +546,7 @@ name = "head of security's hardsuit helmet" desc = "A special bulky helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." icon_state = "hardsuit0-hos" - item_color = "hos" + hardsuit_type = "hos" armor = list("melee" = 45, "bullet" = 25, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 100, "rad" = 50, "fire" = 95, "acid" = 95) /obj/item/clothing/suit/space/hardsuit/security/hos @@ -591,7 +595,7 @@ icon_state = "hardsuit0-clown" item_state = "hardsuit0-clown" armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 60, "acid" = 30) - item_color = "clown" + hardsuit_type = "clown" /obj/item/clothing/suit/space/hardsuit/clown name = "cosmohonk hardsuit" @@ -617,7 +621,7 @@ icon_state = "hardsuit0-ancient" item_state = "anc_helm" armor = list("melee" = 30, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 75) - item_color = "ancient" + hardsuit_type = "ancient" resistance_flags = FIRE_PROOF /obj/item/clothing/suit/space/hardsuit/ancient @@ -653,7 +657,7 @@ icon_state = "hardsuit0-ancient" item_state = "anc_helm" armor = list("melee" = 20, "bullet" = 15, "laser" = 15, "energy" = 45, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) - item_color = "ancient" + hardsuit_type = "ancient" brightness_on = 16 flash_protect = 5 //We will not be flash by bombs tint = 1 @@ -715,7 +719,7 @@ name = "soviet hardhelmet" desc = "Crafted with the pride of the proletariat. The vengeful gaze of the visor roots out all fascists and capitalists." item_state = "rig0-soviet" - item_color = "soviet" + hardsuit_type = "soviet" icon_state = "rig0-soviet" armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 75) mutantrace_variation = NONE @@ -757,7 +761,13 @@ if(!allowed) allowed = GLOB.advanced_hardsuit_allowed -/obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) +/obj/item/clothing/suit/space/hardsuit/shielded/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(current_charges > 0) + block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = 100 + block_return[BLOCK_RETURN_BLOCK_CAPACITY] = (block_return[BLOCK_RETURN_BLOCK_CAPACITY] || 0) + current_charges + return ..() + +/obj/item/clothing/suit/space/hardsuit/shielded/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) recharge_cooldown = world.time + recharge_delay if(current_charges > 0) var/datum/effect_system/spark_spread/s = new @@ -771,8 +781,8 @@ owner.visible_message("[owner]'s shield overloads!") shield_state = "broken" owner.update_inv_wear_suit() - return 1 - return 0 + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return BLOCK_NONE /obj/item/clothing/suit/space/hardsuit/shielded/Destroy() STOP_PROCESSING(SSobj, src) @@ -790,7 +800,7 @@ var/mob/living/carbon/human/C = loc C.update_inv_wear_suit() -/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) var/file2use = style_flags & STYLE_ALL_TAURIC ? 'modular_citadel/icons/mob/64x32_effects.dmi' : 'icons/effects/effects.dmi' @@ -806,7 +816,7 @@ desc = "Standard issue hardsuit for playing capture the flag." icon_state = "ert_medical" item_state = "ert_medical" - item_color = "ert_medical" + hardsuit_type = "ert_medical" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf armor = list("melee" = 0, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 95) slowdown = 0 @@ -820,7 +830,7 @@ name = "red shielded hardsuit" icon_state = "ert_security" item_state = "ert_security" - item_color = "ert_security" + hardsuit_type = "ert_security" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red shield_state = "shield-red" shield_on = "shield-red" @@ -837,20 +847,20 @@ desc = "Standard issue hardsuit helmet for playing capture the flag." icon_state = "hardsuit0-ert_medical" item_state = "hardsuit0-ert_medical" - item_color = "ert_medical" + hardsuit_type = "ert_medical" armor = list("melee" = 0, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 95) /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red icon_state = "hardsuit0-ert_security" item_state = "hardsuit0-ert_security" - item_color = "ert_security" + hardsuit_type = "ert_security" /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/blue name = "shielded hardsuit helmet" desc = "Standard issue hardsuit helmet for playing capture the flag." icon_state = "hardsuit0-ert_commander" item_state = "hardsuit0-ert_commander" - item_color = "ert_commander" + hardsuit_type = "ert_commander" //////Syndicate Version @@ -859,7 +869,7 @@ desc = "An advanced hardsuit with built in energy shielding." icon_state = "hardsuit1-syndi" item_state = "syndie_hardsuit" - item_color = "syndi" + hardsuit_type = "syndi" armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100) allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi @@ -875,7 +885,7 @@ desc = "An advanced hardsuit helmet with built in energy shielding." icon_state = "hardsuit1-syndi" item_state = "syndie_helm" - item_color = "syndi" + hardsuit_type = "syndi" armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100) ///SWAT version @@ -884,7 +894,7 @@ desc = "An advanced hardsuit favored by commandos for use in special operations." icon_state = "deathsquad" item_state = "swat_suit" - item_color = "syndi" + hardsuit_type = "syndi" max_charges = 4 current_charges = 4 recharge_delay = 15 @@ -899,7 +909,7 @@ desc = "A tactical helmet with built in energy shielding." icon_state = "deathsquad" item_state = "deathsquad" - item_color = "syndi" + hardsuit_type = "syndi" armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT @@ -914,7 +924,7 @@ desc = "A helmet designed with both form and function in mind, it protects the user against physical trauma and hazardous conditions while also having polychromic light strips." icon_state = "knight_cydonia" item_state = "knight_yellow" - item_color = null + hardsuit_type = null max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | LAVA_PROOF heat_protection = HEAD @@ -947,7 +957,7 @@ . = ..() . += mutable_appearance(icon, "knight_cydonia_overlay", color = energy_color) -/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER) @@ -978,7 +988,7 @@ . = ..() . += mutable_appearance(icon, "knight_cydonia_overlay", color = energy_color) -/obj/item/clothing/suit/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/suit/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER) diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 8c39427c49..e1deb5d28c 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -174,7 +174,7 @@ Contains: desc = "Standard issue command helmet for the ERT." icon_state = "hardsuit0-ert_commander" item_state = "hardsuit0-ert_commander" - item_color = "ert_commander" + hardsuit_type = "ert_commander" armor = list("melee" = 65, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80) strip_delay = 130 brightness_on = 7 @@ -201,7 +201,7 @@ Contains: desc = "Standard issue security helmet for the ERT." icon_state = "hardsuit0-ert_security" item_state = "hardsuit0-ert_security" - item_color = "ert_security" + hardsuit_type = "ert_security" /obj/item/clothing/suit/space/hardsuit/ert/sec desc = "Standard issue security suit for the ERT." @@ -214,7 +214,7 @@ Contains: desc = "Standard issue engineer helmet for the ERT." icon_state = "hardsuit0-ert_engineer" item_state = "hardsuit0-ert_engineer" - item_color = "ert_engineer" + hardsuit_type = "ert_engineer" /obj/item/clothing/suit/space/hardsuit/ert/engi desc = "Standard issue engineer suit for the ERT." @@ -227,7 +227,7 @@ Contains: desc = "Standard issue medical helmet for the ERT." icon_state = "hardsuit0-ert_medical" item_state = "hardsuit0-ert_medical" - item_color = "ert_medical" + hardsuit_type = "ert_medical" /obj/item/clothing/suit/space/hardsuit/ert/med desc = "Standard issue medical suit for the ERT." @@ -243,7 +243,7 @@ Contains: desc = "Red alert command helmet for the ERT. This one is more armored than its standard version." icon_state = "hardsuit0-ert_commander-alert" item_state = "hardsuit0-ert_commander-alert" - item_color = "ert_commander-alert" + hardsuit_type = "ert_commander-alert" armor = list("melee" = 70, "bullet" = 55, "laser" = 50, "energy" = 50, "bomb" = 65, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) brightness_on = 8 resistance_flags = FIRE_PROOF | ACID_PROOF @@ -263,7 +263,7 @@ Contains: desc = "Red alert security helmet for the ERT. This one is more armored than its standard version." icon_state = "hardsuit0-ert_security-alert" item_state = "hardsuit0-ert_security-alert" - item_color = "ert_security-alert" + hardsuit_type = "ert_security-alert" /obj/item/clothing/suit/space/hardsuit/ert/alert/sec desc = "Red alert security suit for the ERT. This one is more armored than its standard version." @@ -276,7 +276,7 @@ Contains: desc = "Red alert engineer helmet for the ERT. This one is more armored than its standard version." icon_state = "hardsuit0-ert_engineer-alert" item_state = "hardsuit0-ert_engineer-alert" - item_color = "ert_engineer-alert" + hardsuit_type = "ert_engineer-alert" /obj/item/clothing/suit/space/hardsuit/ert/alert/engi desc = "Red alert engineer suit for the ERT. This one is more armored than its standard version." @@ -289,7 +289,7 @@ Contains: desc = "Red alert medical helmet for the ERT. This one is more armored than its standard version." icon_state = "hardsuit0-ert_medical-alert" item_state = "hardsuit0-ert_medical-alert" - item_color = "ert_medical-alert" + hardsuit_type = "ert_medical-alert" /obj/item/clothing/suit/space/hardsuit/ert/alert/med desc = "Red alert medical suit for the ERT. This one is more armored than its standard version." @@ -320,7 +320,6 @@ Contains: icon_state = "cespace_helmet" item_state = "nothing" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 0, "acid" = 0) - item_color = "engineering" resistance_flags = FIRE_PROOF rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE actions_types = list() @@ -391,7 +390,7 @@ Contains: desc = "A helmet worn by those who deal with paranormal threats for a living." icon_state = "hardsuit0-prt" item_state = "hardsuit0-prt" - item_color = "knight_grey" + hardsuit_type = "knight_grey" max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT actions_types = list() resistance_flags = FIRE_PROOF @@ -456,7 +455,8 @@ Contains: armor = list("melee" = 5, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 0, "acid" = 0) strip_delay = 65 -/obj/item/clothing/suit/space/fragile/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) +/obj/item/clothing/suit/space/fragile/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + . = ..() if(!torn && prob(50) && damage >= 5) to_chat(owner, "[src] tears from the damage, breaking the air-tight seal!") clothing_flags &= ~STOPSPRESSUREDAMAGE diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index fee8dbce33..f17eb91b74 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -67,7 +67,7 @@ var/datum/action/A=X A.UpdateButtonIcon() -/obj/item/clothing/head/helmet/space/plasmaman/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/clothing/head/helmet/space/plasmaman/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands && on) . += mutable_appearance(icon_file, light_overlay) diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm index 1b2080feb1..8de49c63de 100644 --- a/code/modules/clothing/suits/_suits.dm +++ b/code/modules/clothing/suits/_suits.dm @@ -1,6 +1,7 @@ /obj/item/clothing/suit icon = 'icons/obj/clothing/suits.dmi' name = "suit" + block_priority = BLOCK_PRIORITY_WEAR_SUIT var/fire_resist = T0C+100 allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) @@ -11,7 +12,7 @@ var/suittoggled = FALSE mutantrace_variation = STYLE_DIGITIGRADE -/obj/item/clothing/suit/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/suit/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) if(damaged_clothes) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 7384fbde21..a19dfaa889 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -173,12 +173,13 @@ armor = list("melee" = 10, "bullet" = 10, "laser" = 60, "energy" = 50, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF var/hit_reflect_chance = 40 + var/list/protected_zones = list(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_GROIN) -/obj/item/clothing/suit/armor/laserproof/IsReflect(def_zone) - if(!(def_zone in list(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_GROIN))) //If not shot where ablative is covering you, you don't get the reflection bonus! - return 0 - if (prob(hit_reflect_chance)) - return 1 +/obj/item/clothing/suit/armor/laserproof/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(def_zone in protected_zones) + if(prob(hit_reflect_chance)) + return BLOCK_SHOULD_REDIRECT | BLOCK_REDIRECTED | BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL + return ..() /obj/item/clothing/suit/armor/vest/det_suit name = "detective's armor vest" diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 7d56fbe6dd..ce3d2576f9 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -91,3 +91,14 @@ heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF | GOLIATH_RESISTANCE + +/obj/item/clothing/neck/cloak/polychromic + name = "polychromic cloak" + desc = "For when you want to show off your horrible colour coordination skills." + icon_state = "polyce" + item_state = "qmcloak" + var/list/poly_colors = list("#FFFFFF", "#FFFFFF", "#808080") + +/obj/item/clothing/neck/cloak/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, 3) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 6f61bf56cb..c133ea7c88 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -973,73 +973,12 @@ name = "polychromic winter coat" icon_state = "coatpoly" item_state = "coatpoly" - item_color = "coatpoly" hoodtype = /obj/item/clothing/head/hooded/winterhood/polychromic - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#6A6964" - secondary_color = "#C4B8A6" - tertiary_color = "#0000FF" + +/obj/item/clothing/suit/hooded/wintercoat/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#6A6964", "#C4B8A6", "#0000FF"), 3) /obj/item/clothing/head/hooded/winterhood/polychromic icon_state = "winterhood_poly" - item_color = "winterhood_poly" item_state = "winterhood_poly" - -/obj/item/clothing/head/hooded/winterhood/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. - . = ..() - if(suit.hasprimary | suit.hassecondary) - if(!isinhands) //prevents the worn sprites from showing up if you're just holding them - if(suit.hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[item_color]-primary") //automagical sprite selection - primary_worn.color = suit.primary_color //colors the overlay - . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. - if(suit.hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[item_color]-secondary") - secondary_worn.color = suit.secondary_color - . += secondary_worn - -/obj/item/clothing/suit/hooded/wintercoat/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. - . = ..() - if(hasprimary | hassecondary | hastertiary) - if(!isinhands) //prevents the worn sprites from showing up if you're just holding them - if(hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[item_color]-primary[suittoggled ? "_t" : ""]") //automagical sprite selection - primary_worn.color = primary_color //colors the overlay - . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. - if(hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[item_color]-secondary[suittoggled ? "_t" : ""]") - secondary_worn.color = secondary_color - . += secondary_worn - if(hastertiary) - var/mutable_appearance/tertiary_worn = mutable_appearance(icon_file, "[item_color]-tertiary[suittoggled ? "_t" : ""]") - tertiary_worn.color = tertiary_color - . += tertiary_worn - -/obj/item/clothing/suit/hooded/wintercoat/AltClick(mob/user) - . = ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) - return - if(hasprimary | hassecondary | hastertiary) - var/choice = input(user,"polychromic thread options", "Clothing Recolor") as null|anything in list("[hasprimary ? "Primary Color" : ""]", "[hassecondary ? "Secondary Color" : ""]", "[hastertiary ? "Tertiary Color" : ""]") //generates a list depending on the enabled overlays - switch(choice) //Lets the list's options actually lead to something - if("Primary Color") - var/primary_color_input = input(usr,"","Choose Primary Color",primary_color) as color|null //color input menu, the "|null" adds a cancel button to it. - if(primary_color_input) //Checks if the color selected is NULL, rejects it if it is NULL. - primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) //formats the selected color properly - update_icon() //updates the item icon - user.regenerate_icons() //updates the worn icon. Probably a bad idea, but it works. - if("Secondary Color") - var/secondary_color_input = input(usr,"","Choose Secondary Color",secondary_color) as color|null - if(secondary_color_input) - secondary_color = sanitize_hexcolor(secondary_color_input, desired_format=6, include_crunch=1) - update_icon() - user.regenerate_icons() - if("Tertiary Color") - var/tertiary_color_input = input(usr,"","Choose Tertiary Color",tertiary_color) as color|null - if(tertiary_color_input) - tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1) - update_icon() - user.regenerate_icons() - return TRUE diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm index 87e7098ebd..c8f54f8bda 100644 --- a/code/modules/clothing/suits/reactive_armour.dm +++ b/code/modules/clothing/suits/reactive_armour.dm @@ -36,8 +36,8 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) actions_types = list(/datum/action/item_action/toggle) resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - hit_reaction_chance = 50 // Only on the chest yet blocks all attacks? rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE + var/hit_reaction_chance = 50 /obj/item/clothing/suit/armor/reactive/attack_self(mob/user) active = !(active) @@ -62,6 +62,14 @@ item_state = "reactiveoff" reactivearmor_cooldown = world.time + 200 +/obj/item/clothing/suit/armor/reactive/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!active) + return BLOCK_NONE + return block_action(owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) + +/obj/item/clothing/suit/armor/reactive/proc/block_action(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + return BLOCK_NONE + //When the wearer gets hit, this armor will teleport the user a short distance away (to safety or to more danger, no one knows. That's the fun of it!) /obj/item/clothing/suit/armor/reactive/teleport name = "reactive teleport armor" @@ -71,18 +79,15 @@ var/rad_amount_before = 120 reactivearmor_cooldown_duration = 100 -/obj/item/clothing/suit/armor/reactive/teleport/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - . = FALSE - if(!active) - return +/obj/item/clothing/suit/armor/reactive/teleport/block_action(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(prob(hit_reaction_chance)) var/mob/living/carbon/human/H = owner if(world.time < reactivearmor_cooldown) owner.visible_message("The reactive teleport system is still recharging! It fails to teleport [H]!") return owner.visible_message("The reactive teleport system flings [H] clear of [attack_text], shutting itself off in the process!") - playsound(get_turf(owner),'sound/magic/blink.ogg', 100, 1) - var/list/turfs = new/list() + playsound(get_turf(owner), 'sound/magic/blink.ogg', 100, 1) + var/list/turfs = new var/turf/old = get_turf(src) for(var/turf/T in orange(tele_range, H)) if(T.density) @@ -101,7 +106,9 @@ radiation_pulse(old, rad_amount_before) radiation_pulse(src, rad_amount) reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration - return TRUE + block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_PASSTHROUGH + return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT | BLOCK_TARGET_DODGED + return BLOCK_NONE //Fire @@ -109,9 +116,7 @@ name = "reactive incendiary armor" desc = "An experimental suit of armor with a reactive sensor array rigged to a flame emitter. For the stylish pyromaniac." -/obj/item/clothing/suit/armor/reactive/fire/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(!active) - return 0 +/obj/item/clothing/suit/armor/reactive/fire/block_action(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(prob(hit_reaction_chance)) if(world.time < reactivearmor_cooldown) owner.visible_message("The reactive incendiary armor on [owner] activates, but fails to send out flames as it is still recharging its flame jets!") @@ -124,8 +129,8 @@ C.IgniteMob() owner.fire_stacks = -20 reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration - return 1 - return 0 + return BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL + return BLOCK_NONE //Stealth @@ -134,9 +139,7 @@ reactivearmor_cooldown_duration = 65 desc = "An experimental suit of armor that renders the wearer invisible on detection of imminent harm, and creates a decoy that runs away from the owner. You can't fight what you can't see." -/obj/item/clothing/suit/armor/reactive/stealth/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(!active) - return 0 +/obj/item/clothing/suit/armor/reactive/stealth/block_action(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(prob(hit_reaction_chance)) if(world.time < reactivearmor_cooldown) owner.visible_message("The reactive stealth system on [owner] activates, but is still recharging its holographic emitters!") @@ -150,7 +153,8 @@ spawn(40) owner.alpha = initial(owner.alpha) reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration - return 1 + return BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL + return BLOCK_NONE //Tesla @@ -175,9 +179,7 @@ if(slot_flags & slotdefine2slotbit(slot)) //Was equipped to a valid slot for this item? user.flags_1 |= TESLA_IGNORE_1 -/obj/item/clothing/suit/armor/reactive/tesla/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(!active) - return FALSE +/obj/item/clothing/suit/armor/reactive/tesla/block_action(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(prob(hit_reaction_chance)) if(world.time < reactivearmor_cooldown) var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread @@ -196,7 +198,8 @@ M.adjustFireLoss(legacy_dmg) playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1) reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration - return TRUE + return BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL + return NONE //Repulse @@ -205,9 +208,7 @@ reactivearmor_cooldown_duration = 20 desc = "An experimental suit of armor that violently throws back attackers." -/obj/item/clothing/suit/armor/reactive/repulse/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(!active) - return 0 +/obj/item/clothing/suit/armor/reactive/repulse/block_action(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(prob(hit_reaction_chance)) if(world.time < reactivearmor_cooldown) owner.visible_message("The repulse generator is still recharging!") @@ -234,7 +235,8 @@ AM.throw_at(throwtarget,10,1) safety-- reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration - return 1 + return BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL + return BLOCK_NONE /obj/item/clothing/suit/armor/reactive/table name = "reactive table armor" @@ -242,9 +244,7 @@ desc = "If you can't beat the memes, embrace them." var/tele_range = 10 -/obj/item/clothing/suit/armor/reactive/table/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(!active) - return 0 +/obj/item/clothing/suit/armor/reactive/table/block_action(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) if(prob(hit_reaction_chance)) var/mob/living/carbon/human/H = owner if(world.time < reactivearmor_cooldown) @@ -270,8 +270,8 @@ H.forceMove(picked) new /obj/structure/table(get_turf(owner)) reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration - return 1 - return 0 + return BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL + return BLOCK_NONE /obj/item/clothing/suit/armor/reactive/table/emp_act() return diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index cbbd64ebcc..4f29eab6ab 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -6,7 +6,7 @@ var/hoodtype = /obj/item/clothing/head/hooded/winterhood //so the chaplain hoodie or other hoodies can override this /obj/item/clothing/suit/hooded/New() - MakeHood() + hood = MakeHelmet() ..() /obj/item/clothing/suit/hooded/Destroy() @@ -14,11 +14,15 @@ qdel(hood) hood = null -/obj/item/clothing/suit/hooded/proc/MakeHood() +/obj/item/clothing/suit/proc/MakeHelmet(obj/item/clothing/head/H) + SEND_SIGNAL(src, COMSIG_SUIT_MADE_HELMET, H) + return H + +/obj/item/clothing/suit/hooded/MakeHelmet(obj/item/clothing/head/hooded/H) if(!hood) - var/obj/item/clothing/head/hooded/W = new hoodtype(src) - W.suit = src - hood = W + H = new hoodtype(src) + H.suit = src + return ..() /obj/item/clothing/suit/hooded/ui_action_click() ToggleHood() @@ -125,7 +129,7 @@ //Hardsuit toggle code /obj/item/clothing/suit/space/hardsuit/Initialize() - MakeHelmet() + helmet = MakeHelmet() . = ..() /obj/item/clothing/suit/space/hardsuit/Destroy() @@ -140,13 +144,13 @@ suit.helmet = null return ..() -/obj/item/clothing/suit/space/hardsuit/proc/MakeHelmet() +/obj/item/clothing/suit/space/hardsuit/MakeHelmet(obj/item/clothing/head/helmet/space/hardsuit/H) if(!helmettype) return if(!helmet) - var/obj/item/clothing/head/helmet/space/hardsuit/W = new helmettype(src) - W.suit = src - helmet = W + H = new helmettype(src) + H.suit = src + return ..() /obj/item/clothing/suit/space/hardsuit/ui_action_click() ..() diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 3731a1a35e..c3ddda2328 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -9,6 +9,12 @@ equip_delay_other = 50 resistance_flags = FIRE_PROOF | ACID_PROOF dog_fashion = /datum/dog_fashion/head/blue_wizard + var/magic_flags = SPELL_WIZARD_HAT + +/obj/item/clothing/head/wizard/ComponentInitialize() + . = ..() + if(magic_flags) + AddElement(/datum/element/spellcasting, magic_flags, ITEM_SLOT_HEAD) /obj/item/clothing/head/wizard/red name = "red wizard hat" @@ -36,7 +42,7 @@ permeability_coefficient = 1 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) resistance_flags = FLAMMABLE - dog_fashion = /datum/dog_fashion/head/blue_wizard + magic_flags = NONE /obj/item/clothing/head/wizard/marisa name = "witch hat" @@ -50,6 +56,7 @@ icon_state = "magus" item_state = "magus" dog_fashion = null + magic_flags = SPELL_WIZARD_HAT|SPELL_CULT_HELMET /obj/item/clothing/head/wizard/santa name = "Santa's hat" @@ -72,6 +79,12 @@ strip_delay = 50 equip_delay_other = 50 resistance_flags = FIRE_PROOF | ACID_PROOF + var/magic_flags = SPELL_WIZARD_ROBE + +/obj/item/clothing/suit/wizrobe/ComponentInitialize() + . = ..() + if(magic_flags) + AddElement(/datum/element/spellcasting, magic_flags, ITEM_SLOT_OCLOTHING) /obj/item/clothing/suit/wizrobe/red name = "red wizard robe" @@ -102,13 +115,14 @@ desc = "A set of armored robes that seem to radiate a dark power." icon_state = "magusblue" item_state = "magusblue" + magic_flags = SPELL_WIZARD_ROBE|SPELL_CULT_ARMOR /obj/item/clothing/suit/wizrobe/magusred name = "\improper Magus robe" desc = "A set of armored robes that seem to radiate a dark power." icon_state = "magusred" item_state = "magusred" - + magic_flags = SPELL_WIZARD_ROBE|SPELL_CULT_ARMOR /obj/item/clothing/suit/wizrobe/santa name = "Santa's suit" @@ -117,33 +131,27 @@ item_state = "santa" /obj/item/clothing/suit/wizrobe/fake - name = "wizard robe" desc = "A rather dull blue robe meant to mimick real wizard robes." icon_state = "wizard-fake" - item_state = "wizrobe" gas_transfer_coefficient = 1 permeability_coefficient = 1 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) resistance_flags = FLAMMABLE + magic_flags = NONE /obj/item/clothing/head/wizard/marisa/fake - name = "witch hat" - desc = "Strange-looking hat-wear, makes you want to cast fireballs." - icon_state = "marisa" gas_transfer_coefficient = 1 permeability_coefficient = 1 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) resistance_flags = FLAMMABLE + magic_flags = NONE /obj/item/clothing/suit/wizrobe/marisa/fake - name = "witch robe" - desc = "Magic is all about the spell power, ZE!" - icon_state = "marisa" - item_state = "marisarobe" gas_transfer_coefficient = 1 permeability_coefficient = 1 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) resistance_flags = FLAMMABLE + magic_flags = NONE /obj/item/clothing/suit/wizrobe/paper name = "papier-mache robe" // no non-latin characters! @@ -198,6 +206,10 @@ slowdown = 0 resistance_flags = FIRE_PROOF | ACID_PROOF +/obj/item/clothing/suit/space/hardsuit/shielded/wizard/ComponentInitialize() + . = ..() + AddElement(/datum/element/spellcasting, SPELL_WIZARD_HAT, ITEM_SLOT_HEAD) + /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard name = "battlemage helmet" desc = "A suitably impressive helmet.." @@ -209,6 +221,10 @@ actions_types = null //No inbuilt light resistance_flags = FIRE_PROOF | ACID_PROOF +/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard/ComponentInitialize() + . = ..() + AddElement(/datum/element/spellcasting, SPELL_WIZARD_ROBE, ITEM_SLOT_OCLOTHING) + /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard/attack_self(mob/user) return diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index cc91391393..fe3aaf4bda 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -3,8 +3,10 @@ name = "under" body_parts_covered = CHEST|GROIN|LEGS|ARMS permeability_coefficient = 0.9 + block_priority = BLOCK_PRIORITY_UNIFORM slot_flags = ITEM_SLOT_ICLOTHING armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + mutantrace_variation = STYLE_DIGITIGRADE var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women var/has_sensor = HAS_SENSORS // For the crew computer var/random_sensor = TRUE @@ -15,30 +17,15 @@ var/dummy_thick = FALSE // is able to hold accessories on its item var/obj/item/clothing/accessory/attached_accessory var/mutable_appearance/accessory_overlay - mutantrace_variation = STYLE_DIGITIGRADE -/obj/item/clothing/under/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) - . = list() +/obj/item/clothing/under/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) + . = ..() if(isinhands) return if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform") if(blood_DNA) . += mutable_appearance('icons/effects/blood.dmi', "uniformblood", color = blood_DNA_to_color()) - if(accessory_overlay) - . += accessory_overlay - if(hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[item_color]-primary") //automagical sprite selection - primary_worn.color = primary_color //colors the overlay - . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. - if(hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[item_color]-secondary") - secondary_worn.color = secondary_color - . += secondary_worn - if(hastertiary) - var/mutable_appearance/tertiary_worn = mutable_appearance(icon_file, "[item_color]-tertiary") - tertiary_worn.color = tertiary_color - . += tertiary_worn /obj/item/clothing/under/attackby(obj/item/I, mob/user, params) if((has_sensor == BROKEN_SENSORS) && istype(I, /obj/item/stack/cable_coil)) @@ -112,10 +99,8 @@ if((flags_inv & HIDEACCESSORY) || (A.flags_inv & HIDEACCESSORY)) return TRUE - var/accessory_color = attached_accessory.item_color - if(!accessory_color) - accessory_color = attached_accessory.icon_state - accessory_overlay = mutable_appearance('icons/mob/accessories.dmi', "[accessory_color]") + var/accessory_color = attached_accessory.icon_state + accessory_overlay = mutable_appearance('icons/mob/clothing/accessories.dmi', "[accessory_color]") accessory_overlay.alpha = attached_accessory.alpha accessory_overlay.color = attached_accessory.color @@ -166,4 +151,123 @@ if(SENSOR_COORDS) . += "Its vital tracker and tracking beacon appear to be enabled." if(attached_accessory) - . += "\A [attached_accessory] is attached to it." \ No newline at end of file + . += "\A [attached_accessory] is attached to it." + +/obj/item/clothing/under/verb/toggle() + set name = "Adjust Suit Sensors" + set category = "Object" + set src in usr + var/mob/M = usr + if (istype(M, /mob/dead/)) + return + if (!can_use(M)) + return + if(src.has_sensor == LOCKED_SENSORS) + to_chat(usr, "The controls are locked.") + return 0 + if(src.has_sensor == BROKEN_SENSORS) + to_chat(usr, "The sensors have shorted out!") + return 0 + if(src.has_sensor <= NO_SENSORS) + to_chat(usr, "This suit does not have any sensors.") + return 0 + + var/list/modes = list("Off", "Binary vitals", "Exact vitals", "Tracking beacon") + var/switchMode = input("Select a sensor mode:", "Suit Sensor Mode", modes[sensor_mode + 1]) in modes + if(get_dist(usr, src) > 1) + to_chat(usr, "You have moved too far away!") + return + sensor_mode = modes.Find(switchMode) - 1 + + if (src.loc == usr) + switch(sensor_mode) + if(0) + to_chat(usr, "You disable your suit's remote sensing equipment.") + if(1) + to_chat(usr, "Your suit will now only report whether you are alive or dead.") + if(2) + to_chat(usr, "Your suit will now only report your exact vital lifesigns.") + if(3) + to_chat(usr, "Your suit will now report your exact vital lifesigns as well as your coordinate position.") + + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + if(H.w_uniform == src) + H.update_suit_sensors() + + +/obj/item/clothing/under/CtrlClick(mob/user) + . = ..() + + if (!(item_flags & IN_INVENTORY)) + return + + if(!isliving(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + return + + if(has_sensor == LOCKED_SENSORS) + to_chat(user, "The controls are locked.") + return + if(has_sensor == BROKEN_SENSORS) + to_chat(user, "The sensors have shorted out!") + return + if(has_sensor <= NO_SENSORS) + to_chat(user, "This suit does not have any sensors.") + return + + sensor_mode = SENSOR_COORDS + + to_chat(user, "Your suit will now report your exact vital lifesigns as well as your coordinate position.") + + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.w_uniform == src) + H.update_suit_sensors() + +/obj/item/clothing/under/AltClick(mob/user) + . = ..() + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + return + if(attached_accessory) + remove_accessory(user) + else + rolldown() + +/obj/item/clothing/under/verb/jumpsuit_adjust() + set name = "Adjust Jumpsuit Style" + set category = null + set src in usr + rolldown() + +/obj/item/clothing/under/proc/rolldown() + if(!can_use(usr)) + return + if(!can_adjust) + to_chat(usr, "You cannot wear this suit any differently!") + return + if(toggle_jumpsuit_adjust()) + to_chat(usr, "You adjust the suit to wear it more casually.") + else + to_chat(usr, "You adjust the suit back to normal.") + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + H.update_inv_w_uniform() + H.update_body() + +/obj/item/clothing/under/proc/toggle_jumpsuit_adjust() + adjusted = !adjusted + + if(adjusted) + if(fitted != FEMALE_UNIFORM_TOP) + fitted = NO_FEMALE_UNIFORM + if(!alt_covers_chest) // for the special snowflake suits that expose the chest when adjusted + body_parts_covered &= ~CHEST + else + fitted = initial(fitted) + if(!alt_covers_chest) + body_parts_covered |= CHEST + + return adjusted + +/obj/item/clothing/under/rank + dying_key = DYE_REGISTRY_UNDER diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 628f7187ca..88821e1afe 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/clothing/accessories.dmi' icon_state = "plasma" item_state = "" //no inhands - item_color = "plasma" //On accessories, this controls the worn sprite. That's a bit weird. slot_flags = 0 w_class = WEIGHT_CLASS_SMALL var/above_suit = FALSE @@ -85,7 +84,6 @@ desc = "For some classy, murderous fun." icon_state = "waistcoat" item_state = "waistcoat" - item_color = "waistcoat" minimize_when_attached = FALSE /obj/item/clothing/accessory/maidapron @@ -93,7 +91,6 @@ desc = "The best part of a maid costume." icon_state = "maidapron" item_state = "maidapron" - item_color = "maidapron" minimize_when_attached = FALSE ////////// @@ -104,7 +101,6 @@ name = "bronze medal" desc = "A bronze medal." icon_state = "bronze" - item_color = "bronze" custom_materials = list(/datum/material/iron=1000) resistance_flags = FIRE_PROOF var/medaltype = "medal" //Sprite used for medalbox @@ -173,7 +169,6 @@ name = "ribbon" desc = "A ribbon" icon_state = "cargo" - item_color = "cargo" /obj/item/clothing/accessory/medal/ribbon/cargo name = "\"cargo tech of the shift\" award" @@ -188,7 +183,6 @@ name = "silver medal" desc = "A silver medal." icon_state = "silver" - item_color = "silver" medaltype = "medal-silver" custom_materials = list(/datum/material/silver=1000) @@ -204,7 +198,6 @@ name = "gold medal" desc = "A prestigious golden medal." icon_state = "gold" - item_color = "gold" medaltype = "medal-gold" custom_materials = list(/datum/material/gold=1000) @@ -227,7 +220,6 @@ name = "plasma medal" desc = "An eccentric medal made of plasma." icon_state = "plasma" - item_color = "plasma" medaltype = "medal-plasma" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = -10, "acid" = 0) //It's made of plasma. Of course it's flammable. custom_materials = list(/datum/material/plasma=1000) @@ -250,7 +242,6 @@ name = "red armband" desc = "An fancy red armband!" icon_state = "redband" - item_color = "redband" /obj/item/clothing/accessory/armband/deputy name = "security deputy armband" @@ -260,37 +251,31 @@ name = "cargo bay guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is brown." icon_state = "cargoband" - item_color = "cargoband" /obj/item/clothing/accessory/armband/engine name = "engineering guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is orange with a reflective strip!" icon_state = "engieband" - item_color = "engieband" /obj/item/clothing/accessory/armband/science name = "science guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is purple." icon_state = "rndband" - item_color = "rndband" /obj/item/clothing/accessory/armband/hydro name = "hydroponics guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is green and blue." icon_state = "hydroband" - item_color = "hydroband" /obj/item/clothing/accessory/armband/med name = "medical guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white." icon_state = "medband" - item_color = "medband" /obj/item/clothing/accessory/armband/medblue name = "medical guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue." icon_state = "medblueband" - item_color = "medblueband" ////////////// //OBJECTION!// @@ -300,7 +285,6 @@ name = "attorney's badge" desc = "Fills you with the conviction of JUSTICE. Lawyers tend to want to show it to everyone they meet." icon_state = "lawyerbadge" - item_color = "lawyerbadge" /obj/item/clothing/accessory/lawyers_badge/attack_self(mob/user) if(prob(1)) @@ -324,7 +308,6 @@ name = "pocket protector" desc = "Can protect your clothing from ink stains, but you'll look like a nerd if you're using one." icon_state = "pocketprotector" - item_color = "pocketprotector" pocket_storage_component_path = /datum/component/storage/concrete/pockets/pocketprotector /obj/item/clothing/accessory/pocketprotector/full/Initialize() @@ -346,14 +329,12 @@ name = "bone talisman" desc = "A hunter's talisman, some say the old gods smile on those who wear it." icon_state = "talisman" - item_color = "talisman" armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25) /obj/item/clothing/accessory/skullcodpiece name = "skull codpiece" desc = "A skull shaped ornament, intended to protect the important things in life." icon_state = "skull" - item_color = "skull" above_suit = TRUE armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25) @@ -361,7 +342,6 @@ name = "false codpiece" desc = "A plastic ornament, intended to protect the important things in life. It's not very good at it." icon_state = "skull" - item_color = "skull" above_suit = TRUE armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) @@ -373,7 +353,6 @@ name = "protective padding" desc = "A soft padding meant to cushion the wearer from melee harm." icon_state = "padding" - item_color = "nothing" armor = list("melee" = 20, "bullet" = 10, "laser" = 0, "energy" = 0, "bomb" = 5, "bio" = 0, "rad" = 0, "fire" = -20, "acid" = 45) flags_inv = HIDEACCESSORY //hidden from indiscrete mob examines. @@ -381,7 +360,6 @@ name = "kevlar padding" desc = "A layered kevlar padding meant to cushion the wearer from ballistic harm." icon_state = "padding" - item_color = "nothing" armor = list("melee" = 10, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 25) flags_inv = HIDEACCESSORY @@ -389,6 +367,5 @@ name = "ablative padding" desc = "A thin ultra-refractory composite padding meant to cushion the wearer from energy lasers harm." icon_state = "plastics" - item_color = "nothing" armor = list("melee" = 0, "bullet" = 0, "laser" = 20, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = -40) flags_inv = HIDEACCESSORY diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 6b40e08af9..4b04a16b79 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -1,5 +1,6 @@ /obj/item/clothing/under/color desc = "A standard issue colored jumpsuit. Variety is the spice of life!" + dying_key = DYE_REGISTRY_UNDER /obj/item/clothing/under/color/jumpskirt body_parts_covered = CHEST|GROIN|ARMS @@ -38,7 +39,6 @@ name = "black jumpsuit" icon_state = "black" item_state = "bl_suit" - item_color = "black" resistance_flags = NONE /obj/item/clothing/under/color/black/trackless @@ -49,7 +49,6 @@ name = "black jumpskirt" icon_state = "black_skirt" item_state = "bl_suit" - item_color = "black_skirt" /obj/item/clothing/under/color/black/ghost item_flags = DROPDEL @@ -66,138 +65,119 @@ desc = "A tasteful grey jumpsuit that reminds you of the good old days." icon_state = "grey" item_state = "gy_suit" - item_color = "grey" /obj/item/clothing/under/color/jumpskirt/grey name = "grey jumpskirt" desc = "A tasteful grey jumpskirt that reminds you of the good old days." icon_state = "grey_skirt" item_state = "gy_suit" - item_color = "grey_skirt" /obj/item/clothing/under/color/grey/glorf name = "ancient jumpsuit" desc = "A terribly ragged and frayed grey jumpsuit. It looks like it hasn't been washed in over a decade." -/obj/item/clothing/under/color/grey/glorf/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - owner.forcesay(GLOB.hit_appends) - return 0 +/obj/item/clothing/under/color/grey/glorf/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + . = ..() + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.forcesay(GLOB.hit_appends) /obj/item/clothing/under/color/blue name = "blue jumpsuit" icon_state = "blue" item_state = "b_suit" - item_color = "blue" /obj/item/clothing/under/color/jumpskirt/blue name = "blue jumpskirt" icon_state = "blue_skirt" item_state = "b_suit" - item_color = "blue_skirt" /obj/item/clothing/under/color/green name = "green jumpsuit" icon_state = "green" item_state = "g_suit" - item_color = "green" /obj/item/clothing/under/color/jumpskirt/green name = "green jumpskirt" icon_state = "green_skirt" item_state = "g_suit" - item_color = "green_skirt" /obj/item/clothing/under/color/orange name = "orange jumpsuit" desc = "Don't wear this near paranoid security officers." icon_state = "orange" item_state = "o_suit" - item_color = "orange" /obj/item/clothing/under/color/jumpskirt/orange name = "orange jumpskirt" icon_state = "orange_skirt" item_state = "o_suit" - item_color = "orange_skirt" /obj/item/clothing/under/color/pink name = "pink jumpsuit" icon_state = "pink" desc = "Just looking at this makes you feel fabulous." item_state = "p_suit" - item_color = "pink" /obj/item/clothing/under/color/jumpskirt/pink name = "pink jumpskirt" icon_state = "pink_skirt" item_state = "p_suit" - item_color = "pink_skirt" /obj/item/clothing/under/color/red name = "red jumpsuit" icon_state = "red" item_state = "r_suit" - item_color = "red" /obj/item/clothing/under/color/jumpskirt/red name = "red jumpskirt" icon_state = "red_skirt" item_state = "r_suit" - item_color = "red_skirt" /obj/item/clothing/under/color/white name = "white jumpsuit" icon_state = "white" item_state = "w_suit" - item_color = "white" /obj/item/clothing/under/color/jumpskirt/white name = "white jumpskirt" icon_state = "white_skirt" item_state = "w_suit" - item_color = "white_skirt" /obj/item/clothing/under/color/yellow name = "yellow jumpsuit" icon_state = "yellow" item_state = "y_suit" - item_color = "yellow" /obj/item/clothing/under/color/jumpskirt/yellow name = "yellow jumpskirt" icon_state = "yellow_skirt" item_state = "y_suit" - item_color = "yellow_skirt" /obj/item/clothing/under/color/darkblue name = "darkblue jumpsuit" icon_state = "darkblue" item_state = "b_suit" - item_color = "darkblue" /obj/item/clothing/under/color/jumpskirt/darkblue name = "darkblue jumpskirt" icon_state = "darkblue_skirt" item_state = "b_suit" - item_color = "darkblue_skirt" /obj/item/clothing/under/color/teal name = "teal jumpsuit" icon_state = "teal" item_state = "b_suit" - item_color = "teal" /obj/item/clothing/under/color/jumpskirt/teal name = "teal jumpskirt" icon_state = "teal_skirt" item_state = "b_suit" - item_color = "teal_skirt" /obj/item/clothing/under/color/lightpurple name = "purple jumpsuit" icon_state = "lightpurple" item_state = "p_suit" - item_color = "lightpurple" /obj/item/clothing/under/color/lightpurple/trackless desc = "A magically colored jumpsuit. No sensors are attached!" @@ -207,62 +187,52 @@ name = "lightpurple jumpskirt" icon_state = "lightpurple_skirt" item_state = "p_suit" - item_color = "lightpurple_skirt" /obj/item/clothing/under/color/darkgreen name = "darkgreen jumpsuit" icon_state = "darkgreen" item_state = "g_suit" - item_color = "darkgreen" /obj/item/clothing/under/color/jumpskirt/darkgreen name = "darkgreen jumpskirt" icon_state = "darkgreen_skirt" item_state = "g_suit" - item_color = "darkgreen_skirt" /obj/item/clothing/under/color/lightbrown name = "lightbrown jumpsuit" icon_state = "lightbrown" item_state = "lb_suit" - item_color = "lightbrown" /obj/item/clothing/under/color/jumpskirt/lightbrown name = "lightbrown jumpskirt" icon_state = "lightbrown_skirt" item_state = "lb_suit" - item_color = "lightbrown_skirt" /obj/item/clothing/under/color/brown name = "brown jumpsuit" icon_state = "brown" item_state = "lb_suit" - item_color = "brown" /obj/item/clothing/under/color/jumpskirt/brown name = "brown jumpskirt" icon_state = "brown_skirt" item_state = "lb_suit" - item_color = "brown_skirt" /obj/item/clothing/under/color/maroon name = "maroon jumpsuit" icon_state = "maroon" item_state = "r_suit" - item_color = "maroon" /obj/item/clothing/under/color/jumpskirt/maroon name = "maroon jumpskirt" icon_state = "maroon_skirt" item_state = "r_suit" - item_color = "maroon_skirt" /obj/item/clothing/under/color/rainbow name = "rainbow jumpsuit" desc = "A multi-colored jumpsuit!" icon_state = "rainbow" item_state = "rainbow" - item_color = "rainbow" can_adjust = FALSE /obj/item/clothing/under/color/jumpskirt/rainbow @@ -270,5 +240,4 @@ desc = "A multi-colored jumpskirt!" icon_state = "rainbow_skirt" item_state = "rainbow" - item_color = "rainbow_skirt" can_adjust = FALSE diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm index be142a04ff..69a1dc67b3 100644 --- a/code/modules/clothing/under/costume.dm +++ b/code/modules/clothing/under/costume.dm @@ -2,7 +2,6 @@ name = "\improper Roman armor" desc = "Ancient Roman armor. Made of metallic and leather straps." icon_state = "roman" - item_color = "roman" item_state = "armor" can_adjust = FALSE strip_delay = 100 @@ -13,21 +12,18 @@ desc = "The leather club is two sectors down." icon_state = "darkholme" item_state = "darkholme" - item_color = "darkholme" can_adjust = FALSE /obj/item/clothing/under/costume/owl name = "owl uniform" desc = "A soft brown jumpsuit made of synthetic feathers and strong conviction." icon_state = "owl" - item_color = "owl" can_adjust = FALSE /obj/item/clothing/under/costume/griffin name = "griffon uniform" desc = "A soft brown jumpsuit with a white feather collar made of synthetic feathers and a lust for mayhem." icon_state = "griffin" - item_color = "griffin" can_adjust = FALSE /obj/item/clothing/under/costume/schoolgirl @@ -35,7 +31,6 @@ desc = "It's just like one of my Japanese animes!" icon_state = "schoolgirl" item_state = "schoolgirl" - item_color = "schoolgirl" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -44,26 +39,22 @@ name = "red schoolgirl uniform" icon_state = "schoolgirlred" item_state = "schoolgirlred" - item_color = "schoolgirlred" /obj/item/clothing/under/costume/schoolgirl/green name = "green schoolgirl uniform" icon_state = "schoolgirlgreen" item_state = "schoolgirlgreen" - item_color = "schoolgirlgreen" /obj/item/clothing/under/costume/schoolgirl/orange name = "orange schoolgirl uniform" icon_state = "schoolgirlorange" item_state = "schoolgirlorange" - item_color = "schoolgirlorange" /obj/item/clothing/under/costume/pirate name = "pirate outfit" desc = "Yarr." icon_state = "pirate" item_state = "pirate" - item_color = "pirate" can_adjust = FALSE /obj/item/clothing/under/costume/soviet @@ -71,7 +62,6 @@ desc = "For the Motherland!" icon_state = "soviet" item_state = "soviet" - item_color = "soviet" can_adjust = FALSE /obj/item/clothing/under/costume/redcoat @@ -79,7 +69,6 @@ desc = "Looks old." icon_state = "redcoat" item_state = "redcoat" - item_color = "redcoat" can_adjust = FALSE /obj/item/clothing/under/costume/kilt @@ -87,7 +76,6 @@ desc = "Includes shoes and plaid." icon_state = "kilt" item_state = "kilt" - item_color = "kilt" body_parts_covered = CHEST|GROIN|LEGS|FEET fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -103,20 +91,18 @@ name = "polychromic kilt" desc = "It's not a skirt!" icon_state = "polykilt" - item_color = "polykilt" - hasprimary = TRUE - hassecondary = TRUE - primary_color = "#FFFFFF" - secondary_color = "#F08080" body_parts_covered = CHEST|GROIN|ARMS|LEGS mutantrace_variation = NONE +/obj/item/clothing/under/costume/kilt/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#FFFFFF", "#F08080"), 2) + /obj/item/clothing/under/costume/gladiator name = "gladiator uniform" desc = "Are you not entertained? Is that not why you are here?" icon_state = "gladiator" item_state = "gladiator" - item_color = "gladiator" body_parts_covered = CHEST|GROIN|ARMS fitted = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -131,7 +117,6 @@ desc = "Maid in China." icon_state = "maid" item_state = "maid" - item_color = "maid" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -146,7 +131,6 @@ desc = "Just looking at this makes you want to sing." icon_state = "ysing" item_state = "ysing" - item_color = "ysing" body_parts_covered = CHEST|GROIN|ARMS fitted = NO_FEMALE_UNIFORM alternate_worn_layer = ABOVE_SHOES_LAYER @@ -157,7 +141,6 @@ desc = "Just looking at this makes you want to sing." icon_state = "bsing" item_state = "bsing" - item_color = "bsing" body_parts_covered = CHEST|GROIN|ARMS alternate_worn_layer = ABOVE_SHOES_LAYER fitted = FEMALE_UNIFORM_TOP @@ -167,7 +150,6 @@ name = "geisha suit" desc = "Cute space ninja senpai not included." icon_state = "geisha" - item_color = "geisha" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE @@ -175,7 +157,6 @@ name = "villain suit" desc = "A change of wardrobe is necessary if you ever want to catch a real superhero." icon_state = "villain" - item_color = "villain" can_adjust = FALSE /obj/item/clothing/under/costume/sailor @@ -183,7 +164,6 @@ desc = "Skipper's in the wardroom drinkin gin'." icon_state = "sailor" item_state = "b_suit" - item_color = "sailor" can_adjust = FALSE /obj/item/clothing/under/costume/russian_officer @@ -191,14 +171,12 @@ desc = "The latest in fashionable russian outfits." icon_state = "hostanclothes" item_state = "hostanclothes" - item_color = "hostanclothes" /obj/item/clothing/under/costume/mummy name = "mummy wrapping" desc = "Return the slab or suffer my stale references." icon_state = "mummy" item_state = "mummy" - item_color = "mummy" body_parts_covered = CHEST|GROIN|ARMS|LEGS fitted = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -209,7 +187,6 @@ desc = "Perfect camouflage for hiding in botany." icon_state = "scarecrow" item_state = "scarecrow" - item_color = "scarecrow" body_parts_covered = CHEST|GROIN|ARMS|LEGS fitted = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -220,7 +197,6 @@ desc = "A dress inspired by the ancient \"Victorian\" era." icon_state = "draculass" item_state = "draculass" - item_color = "draculass" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -230,7 +206,6 @@ desc = "A modified scientist jumpsuit to look extra cool." icon_state = "drfreeze" item_state = "drfreeze" - item_color = "drfreeze" can_adjust = FALSE /obj/item/clothing/under/costume/lobster @@ -238,7 +213,6 @@ desc = "Who beheaded the college mascot?" icon_state = "lobster" item_state = "lobster" - item_color = "lobster" fitted = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -247,7 +221,6 @@ desc = "Now you're cooking." icon_state = "gondola" item_state = "lb_suit" - item_color = "gondola" can_adjust = FALSE /obj/item/clothing/under/costume/skeleton @@ -255,7 +228,6 @@ desc = "A black jumpsuit with a white bone pattern printed on it. Spooky!" icon_state = "skeleton" item_state = "skeleton" - item_color = "skeleton" body_parts_covered = CHEST|GROIN|ARMS|LEGS fitted = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -347,5 +319,4 @@ name = "cloud" desc = "cloud" icon_state = "cloud" - item_color = "cloud" can_adjust = FALSE diff --git a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm index 74181b05eb..5928819b16 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm @@ -3,86 +3,75 @@ desc = "A joint envirosuit used by plasmamen quartermasters and cargo techs alike, due to the logistical problems of differenciating the two with the length of their pant legs." icon_state = "cargo_envirosuit" item_state = "cargo_envirosuit" - item_color = "cargo_envirosuit" /obj/item/clothing/under/plasmaman/mining name = "mining plasma envirosuit" desc = "An air-tight khaki suit designed for operations on lavaland by plasmamen." icon_state = "explorer_envirosuit" item_state = "explorer_envirosuit" - item_color = "explorer_envirosuit" - /obj/item/clothing/under/plasmaman/chef name = "chef's plasma envirosuit" desc = "A white plasmaman envirosuit designed for cullinary practices. One might question why a member of a species that doesn't need to eat would become a chef." icon_state = "chef_envirosuit" item_state = "chef_envirosuit" - item_color = "chef_envirosuit" /obj/item/clothing/under/plasmaman/enviroslacks name = "enviroslacks" desc = "The pet project of a particularly posh plasmaman, this custom suit was quickly appropriated by Nano-Trasen for it's detectives, lawyers, and bar-tenders alike." icon_state = "enviroslacks" item_state = "enviroslacks" - item_color = "enviroslacks" /obj/item/clothing/under/plasmaman/chaplain name = "chaplain's plasma envirosuit" desc = "An envirosuit specially designed for only the most pious of plasmamen." icon_state = "chap_envirosuit" item_state = "chap_envirosuit" - item_color = "chap_envirosuit" /obj/item/clothing/under/plasmaman/curator name = "curator's plasma envirosuit" desc = "Made out of a modified voidsuit, this suit was Nano-Trasen's first solution to the *logistical problems* that come with employing plasmamen. Due to the modifications, the suit is no longer space-worthy. Despite their limitations, these suits are still in used by historian and old-styled plasmamen alike." icon_state = "prototype_envirosuit" item_state = "prototype_envirosuit" - item_color = "prototype_envirosuit" /obj/item/clothing/under/plasmaman/janitor name = "janitor's plasma envirosuit" desc = "A grey and purple envirosuit designated for plasmamen janitors." icon_state = "janitor_envirosuit" item_state = "janitor_envirosuit" - item_color = "janitor_envirosuit" /obj/item/clothing/under/plasmaman/botany name = "botany envirosuit" desc = "A green and blue envirosuit designed to protect plasmamen from minor plant-related injuries." icon_state = "botany_envirosuit" item_state = "botany_envirosuit" - item_color = "botany_envirosuit" /obj/item/clothing/under/plasmaman/hop name = "head of personell's envirosuit" desc = "A prestigious azure envirosuit designed for head of personell." icon_state = "hop_envirosuit" item_state = "hop_envirosuit" - item_color = "hop_envirosuit" /obj/item/clothing/under/plasmaman/captain name = "captain's envirosuit" desc = "An expensive piece of plasmaman envirosuit fashion. guaranteed to keep you cool while the station goes down in fierceful fires." icon_state = "captain_envirosuit" item_state = "captain_envirosuit" - item_color = "captain_envirosuit" armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95) + sensor_mode = SENSOR_COORDS + random_sensor = FALSE /obj/item/clothing/under/plasmaman/mime name = "mime envirosuit" desc = "It's not very colourful." icon_state = "mime_envirosuit" item_state = "mime_envirosuit" - item_color = "mime_envirosuit" /obj/item/clothing/under/plasmaman/clown name = "clown envirosuit" desc = "'HONK!'" icon_state = "clown_envirosuit" item_state = "clown_envirosuit" - item_color = "clown_envirosuit" /obj/item/clothing/under/plasmaman/clown/Extinguish(mob/living/carbon/human/H) if(!istype(H)) @@ -97,4 +86,4 @@ H.visible_message("[H]'s suit spews out a tonne of space lube!","Your suit spews out a tonne of space lube!") H.ExtinguishMob() new /obj/effect/particle_effect/foam(loc) //Truely terrifying. - return FALSE \ No newline at end of file + return FALSE diff --git a/code/modules/clothing/under/jobs/Plasmaman/engineering.dm b/code/modules/clothing/under/jobs/Plasmaman/engineering.dm index 1f381df4cf..15eb189fa8 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/engineering.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/engineering.dm @@ -3,7 +3,6 @@ desc = "An air-tight suit designed to be used by plasmamen exployed as engineers, the usual purple stripes being replaced by engineer's orange. It protects the user from fire and acid damage." icon_state = "engineer_envirosuit" item_state = "engineer_envirosuit" - item_color = "engineer_envirosuit" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 10, "fire" = 95, "acid" = 95) /obj/item/clothing/under/plasmaman/engineering/ce @@ -11,11 +10,9 @@ desc = "An advanced air-tight suit designed to be used by plasmamen chief engineers, complete with ornamental widgets and gizmo. It protects the user from fire and acid damage." icon_state = "ce_envirosuit" item_state = "ce_envirosuit" - item_color = "ce_envirosuit" /obj/item/clothing/under/plasmaman/atmospherics name = "atmospherics plasma envirosuit" desc = "An air-tight suit designed to be used by plasmamen exployed as atmos technicians, the usual purple stripes being replaced by atmos's blue." icon_state = "atmos_envirosuit" item_state = "atmos_envirosuit" - item_color = "atmos_envirosuit" diff --git a/code/modules/clothing/under/jobs/Plasmaman/medsci.dm b/code/modules/clothing/under/jobs/Plasmaman/medsci.dm index 6106d785a9..03d089c10d 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/medsci.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/medsci.dm @@ -3,28 +3,24 @@ desc = "A suit designed for the station's more plasma-based doctors." icon_state = "doctor_envirosuit" item_state = "doctor_envirosuit" - item_color = "doctor_envirosuit" /obj/item/clothing/under/plasmaman/cmo name = "chief medical officer's plasma envirosuit" desc = "A suit designed for the station's most plasma-based chief medical officer, but not for their cat." icon_state = "cmo_envirosuit" item_state = "cmo_envirosuit" - item_color = "cmo_envirosuit" /obj/item/clothing/under/plasmaman/science name = "science plasma envirosuit" desc = "A plasmaman envirosuit designed for scientists." icon_state = "scientist_envirosuit" item_state = "scientist_envirosuit" - item_color = "scientist_envirosuit" /obj/item/clothing/under/plasmaman/rd name = "research direactor's plasma envirosuit" desc = "A plasmaman envirosuit designed for the research director to aid them in their job of directing research into the right direction." icon_state = "rd_envirosuit" item_state = "rd_envirosuit" - item_color = "rd_envirosuit" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95) /obj/item/clothing/under/plasmaman/robotics @@ -32,25 +28,21 @@ desc = "A plasmaman envirosuit designed for roboticists." icon_state = "roboticist_envirosuit" item_state = "roboticist_envirosuit" - item_color = "roboticist_envirosuit" /obj/item/clothing/under/plasmaman/viro name = "virology plasma envirosuit" desc = "The suit worn by the safest people on the station, those who are completely immune to the monstrosities they create." icon_state = "virologist_envirosuit" item_state = "virologist_envirosuit" - item_color = "virologist_envirosuit" /obj/item/clothing/under/plasmaman/genetics name = "genetics plasma envirosuit" desc = "A plasmaman envirosuit designed for geneticists." icon_state = "geneticist_envirosuit" item_state = "geneticist_envirosuit" - item_color = "geneticist_envirosuit" /obj/item/clothing/under/plasmaman/chemist name = "chemistry plasma envirosuit" desc = "A plasmaman envirosuit designed for chemists." icon_state = "chemist_envirosuit" item_state = "chemist_envirosuit" - item_color = "chemist_envirosuit" diff --git a/code/modules/clothing/under/jobs/Plasmaman/security.dm b/code/modules/clothing/under/jobs/Plasmaman/security.dm index ff756e09fd..ddbda041f3 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/security.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/security.dm @@ -3,19 +3,18 @@ desc = "A plasmaman containment suit designed for security officers, offering a limited amount of extra protection." icon_state = "security_envirosuit" item_state = "security_envirosuit" - item_color = "security_envirosuit" armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95) + sensor_mode = SENSOR_COORDS + random_sensor = FALSE /obj/item/clothing/under/plasmaman/security/warden name = "warden plasma envirosuit" desc = "A plasmaman containment suit designed for the warden, white stripes being added to differeciate them from other members of security." icon_state = "warden_envirosuit" item_state = "warden_envirosuit" - item_color = "warden_envirosuit" /obj/item/clothing/under/plasmaman/security/hos name = "security plasma envirosuit" desc = "A slick black and red plasmaman containment suit designed for the head of security, also called the LAW." icon_state = "hos_envirosuit" item_state = "hos_envirosuit" - item_color = "hos_envirosuit" diff --git a/code/modules/clothing/under/jobs/cargo.dm b/code/modules/clothing/under/jobs/cargo.dm index 5727ebc0e9..3ee00996a4 100644 --- a/code/modules/clothing/under/jobs/cargo.dm +++ b/code/modules/clothing/under/jobs/cargo.dm @@ -4,14 +4,12 @@ desc = "It's a jumpsuit worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper." icon_state = "qm" item_state = "lb_suit" - item_color = "qm" /obj/item/clothing/under/rank/cargo/qm/skirt name = "quartermaster's jumpskirt" desc = "It's a jumpskirt worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper." icon_state = "qm_skirt" item_state = "lb_suit" - item_color = "qm_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -21,7 +19,6 @@ desc = "Shooooorts! They're comfy and easy to wear!" icon_state = "cargotech" item_state = "lb_suit" - item_color = "cargo" body_parts_covered = CHEST|GROIN|ARMS alt_covers_chest = TRUE @@ -30,7 +27,6 @@ desc = "Skiiiiirts! They're comfy and easy to wear" icon_state = "cargo_skirt" item_state = "lb_suit" - item_color = "cargo_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -40,12 +36,10 @@ name = "shaft miner's jumpsuit" icon_state = "miner" item_state = "miner" - item_color = "miner" /obj/item/clothing/under/rank/cargo/miner/lavaland desc = "A green uniform for operating in hazardous environments." name = "shaft miner's jumpsuit" icon_state = "explorer" item_state = "explorer" - item_color = "explorer" can_adjust = FALSE diff --git a/code/modules/clothing/under/jobs/centcom.dm b/code/modules/clothing/under/jobs/centcom.dm index 3ee210612e..33a4659b5f 100644 --- a/code/modules/clothing/under/jobs/centcom.dm +++ b/code/modules/clothing/under/jobs/centcom.dm @@ -3,7 +3,6 @@ name = "\improper CentCom officer's jumpsuit" icon_state = "officer" item_state = "g_suit" - item_color = "officer" alt_covers_chest = TRUE /obj/item/clothing/under/rank/centcom/officer/syndicate @@ -14,4 +13,3 @@ name = "\improper CentCom officer's jumpsuit" icon_state = "centcom" item_state = "dg_suit" - item_color = "centcom" diff --git a/code/modules/clothing/under/jobs/civilian/civilian.dm b/code/modules/clothing/under/jobs/civilian/civilian.dm index ac5f4f12fd..6f1066de5d 100644 --- a/code/modules/clothing/under/jobs/civilian/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian/civilian.dm @@ -3,7 +3,6 @@ name = "bartender's uniform" icon_state = "barman" item_state = "bar_suit" - item_color = "barman" alt_covers_chest = TRUE /obj/item/clothing/under/rank/civilian/bartender/purple @@ -11,7 +10,6 @@ name = "purple bartender's uniform" icon_state = "purplebartender" item_state = "purplebartender" - item_color = "purplebartender" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/bartender/skirt @@ -19,7 +17,6 @@ desc = "It looks like it could use some more flair." icon_state = "barman_skirt" item_state = "bar_suit" - item_color = "barman_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -29,15 +26,13 @@ name = "chaplain's jumpsuit" icon_state = "chaplain" item_state = "bl_suit" - item_color = "chapblack" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/chaplain/skirt name = "chaplain's jumpskirt" desc = "It's a black jumpskirt, often worn by religious folk." - icon_state = "chapblack_skirt" + icon_state = "chaplain_skirt" item_state = "bl_suit" - item_color = "chapblack_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -46,14 +41,12 @@ name = "cook's suit" desc = "A suit which is given only to the most hardcore cooks in space." icon_state = "chef" - item_color = "chef" alt_covers_chest = TRUE /obj/item/clothing/under/rank/civilian/chef/skirt name = "cook's skirt" desc = "A skirt which is given only to the most hardcore cooks in space." icon_state = "chef_skirt" - item_color = "chef_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -63,7 +56,6 @@ name = "head of personnel's jumpsuit" icon_state = "hop" item_state = "b_suit" - item_color = "hop" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/head_of_personnel/skirt @@ -71,7 +63,6 @@ desc = "It's a jumpskirt worn by someone who works in the position of \"Head of Personnel\"." icon_state = "hop_skirt" item_state = "b_suit" - item_color = "hop_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -81,7 +72,6 @@ desc = "A teal suit and yellow necktie. An authoritative yet tacky ensemble." icon_state = "teal_suit" item_state = "g_suit" - item_color = "teal_suit" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/head_of_personnel/suit/skirt @@ -89,7 +79,6 @@ desc = "A teal suitskirt and yellow necktie. An authoritative yet tacky ensemble." icon_state = "teal_suit_skirt" item_state = "g_suit" - item_color = "teal_suit_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -99,7 +88,6 @@ name = "botanist's jumpsuit" icon_state = "hydroponics" item_state = "g_suit" - item_color = "hydroponics" permeability_coefficient = 0.5 /obj/item/clothing/under/rank/civilian/hydroponics/skirt @@ -107,7 +95,6 @@ desc = "It's a jumpskirt designed to protect against minor plant-related hazards." icon_state = "hydroponics_skirt" item_state = "g_suit" - item_color = "hydroponics_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -116,14 +103,12 @@ desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards." name = "janitor's jumpsuit" icon_state = "janitor" - item_color = "janitor" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/under/rank/civilian/janitor/skirt name = "janitor's jumpskirt" desc = "It's the official skirt of the station's janitor. It has minor protection from biohazards." icon_state = "janitor_skirt" - item_color = "janitor_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -133,7 +118,6 @@ desc = "A simple maid uniform for housekeeping." icon_state = "janimaid" item_state = "janimaid" - item_color = "janimaid" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -147,21 +131,18 @@ name = "lawyer black suit" icon_state = "lawyer_black" item_state = "lawyer_black" - item_color = "lawyer_black" /obj/item/clothing/under/rank/civilian/lawyer/black/alt name = "lawyer black suit" desc = "A professional black suit. Nanotrasen Investigation Bureau approved!" icon_state = "blacksuit" item_state = "bar_suit" - item_color = "blacksuit" can_adjust = TRUE alt_covers_chest = TRUE /obj/item/clothing/under/rank/civilian/lawyer/black/alt/skirt name = "lawyer black suitskirt" icon_state = "blacksuit_skirt" - item_color = "blacksuit_skirt" can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -170,14 +151,12 @@ desc = "A formal black suit and red tie, intended for the station's finest." icon_state = "really_black_suit" item_state = "bl_suit" - item_color = "really_black_suit" /obj/item/clothing/under/rank/civilian/lawyer/really_black/skirt name = "executive suitskirt" desc = "A formal black suitskirt and red tie, intended for the station's finest." icon_state = "really_black_suit_skirt" item_state = "bl_suit" - item_color = "really_black_suit_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -186,46 +165,39 @@ name = "lawyer black suitskirt" icon_state = "lawyer_black_skirt" item_state = "lawyer_black" - item_color = "lawyer_black_skirt" fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/civilian/lawyer/female name = "female black suit" icon_state = "black_suit_fem" item_state = "bl_suit" - item_color = "black_suit_fem" /obj/item/clothing/under/rank/civilian/lawyer/red name = "lawyer red suit" icon_state = "lawyer_red" item_state = "lawyer_red" - item_color = "lawyer_red" /obj/item/clothing/under/rank/civilian/lawyer/female/skirt name = "female black suitskirt" icon_state = "black_suit_fem_skirt" item_state = "bl_suit" - item_color = "black_suit_fem_skirt" fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/civilian/lawyer/red/skirt name = "lawyer red suitskirt" icon_state = "lawyer_red_skirt" item_state = "lawyer_red" - item_color = "lawyer_red_skirt" fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/civilian/lawyer/blue name = "lawyer blue suit" icon_state = "lawyer_blue" item_state = "lawyer_blue" - item_color = "lawyer_blue" /obj/item/clothing/under/rank/civilian/lawyer/blue/skirt name = "lawyer blue suitskirt" icon_state = "lawyer_blue_skirt" item_state = "lawyer_blue" - item_color = "lawyer_blue_skirt" fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/civilian/lawyer/bluesuit @@ -233,7 +205,6 @@ desc = "A classy suit and tie." icon_state = "bluesuit" item_state = "b_suit" - item_color = "bluesuit" can_adjust = TRUE alt_covers_chest = TRUE @@ -242,7 +213,6 @@ desc = "A classy suitskirt and tie." icon_state = "bluesuit_skirt" item_state = "b_suit" - item_color = "bluesuit_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -251,7 +221,6 @@ name = "purple suit" icon_state = "lawyer_purp" item_state = "p_suit" - item_color = "lawyer_purp" fitted = NO_FEMALE_UNIFORM can_adjust = TRUE alt_covers_chest = TRUE @@ -260,7 +229,6 @@ name = "purple suitskirt" icon_state = "lawyer_purp_skirt" item_state = "p_suit" - item_color = "lawyer_purp_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/clothing/under/jobs/civilian/clown_mime.dm b/code/modules/clothing/under/jobs/civilian/clown_mime.dm index 7e85d60dbc..848a15f83b 100644 --- a/code/modules/clothing/under/jobs/civilian/clown_mime.dm +++ b/code/modules/clothing/under/jobs/civilian/clown_mime.dm @@ -4,14 +4,11 @@ desc = "It's not very colourful." icon_state = "mime" item_state = "mime" - item_color = "mime" /obj/item/clothing/under/rank/civilian/mime/skirt name = "mime's skirt" desc = "It's not very colourful." icon_state = "mime_skirt" - item_state = "mime" - item_color = "mime_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -21,7 +18,6 @@ desc = "The only time when you DON'T enjoy looking at someone's rack." icon_state = "sexymime" item_state = "sexymime" - item_color = "sexymime" body_parts_covered = CHEST|GROIN|LEGS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -31,7 +27,6 @@ desc = "'HONK!'" icon_state = "clown" item_state = "clown" - item_color = "clown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -40,7 +35,6 @@ desc = "'BLUE HONK!'" icon_state = "blueclown" item_state = "blueclown" - item_color = "blueclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE mutantrace_variation = NONE @@ -50,7 +44,6 @@ desc = "'GREEN HONK!'" icon_state = "greenclown" item_state = "greenclown" - item_color = "greenclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE mutantrace_variation = NONE @@ -60,7 +53,6 @@ desc = "'YELLOW HONK!'" icon_state = "yellowclown" item_state = "yellowclown" - item_color = "yellowclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE mutantrace_variation = NONE @@ -70,7 +62,6 @@ desc = "'PURPLE HONK!'" icon_state = "purpleclown" item_state = "purpleclown" - item_color = "purpleclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE mutantrace_variation = NONE @@ -80,7 +71,6 @@ desc = "'ORANGE HONK!'" icon_state = "orangeclown" item_state = "orangeclown" - item_color = "orangeclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE mutantrace_variation = NONE @@ -90,7 +80,6 @@ desc = "'R A I N B O W HONK!'" icon_state = "rainbowclown" item_state = "rainbowclown" - item_color = "rainbowclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE mutantrace_variation = NONE @@ -99,7 +88,6 @@ name = "jester suit" desc = "A jolly dress, well suited to entertain your master, nuncle." icon_state = "jester" - item_color = "jester" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/clown/jester/alt @@ -110,7 +98,6 @@ desc = "It makes you look HONKable!" icon_state = "sexyclown" item_state = "sexyclown" - item_color = "sexyclown" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/clown/Initialize() diff --git a/code/modules/clothing/under/jobs/civilian/curator.dm b/code/modules/clothing/under/jobs/civilian/curator.dm index c02cc4b710..792aa64a2b 100644 --- a/code/modules/clothing/under/jobs/civilian/curator.dm +++ b/code/modules/clothing/under/jobs/civilian/curator.dm @@ -3,17 +3,12 @@ desc = "It's very... sensible." icon_state = "red_suit" item_state = "red_suit" - item_color = "red_suit" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/curator/skirt name = "sensible suitskirt" - desc = "It's very... sensible." icon_state = "red_suit_skirt" - item_state = "red_suit" - item_color = "red_suit_skirt" body_parts_covered = CHEST|GROIN|ARMS - can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/civilian/curator/treasure_hunter @@ -21,14 +16,12 @@ desc = "A rugged uniform suitable for treasure hunting." icon_state = "curator" item_state = "curator" - item_color = "curator" /obj/item/clothing/under/rank/civilian/curator/nasa name = "\improper NASA jumpsuit" desc = "It has a NASA logo on it and is made of space-proofed materials." icon_state = "black" item_state = "bl_suit" - item_color = "black" w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 @@ -37,5 +30,4 @@ min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT - can_adjust = FALSE resistance_flags = NONE diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm index 30560e76b4..885ffaed7a 100644 --- a/code/modules/clothing/under/jobs/command.dm +++ b/code/modules/clothing/under/jobs/command.dm @@ -3,7 +3,6 @@ name = "captain's jumpsuit" icon_state = "captain" item_state = "b_suit" - item_color = "captain" sensor_mode = SENSOR_COORDS random_sensor = FALSE @@ -12,7 +11,6 @@ desc = "It's a blue jumpskirt with some gold markings denoting the rank of \"Captain\"." icon_state = "captain_skirt" item_state = "b_suit" - item_color = "captain_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -22,7 +20,6 @@ desc = "A green suit and yellow necktie. Exemplifies authority." icon_state = "green_suit" item_state = "dg_suit" - item_color = "green_suit" can_adjust = FALSE /obj/item/clothing/under/rank/captain/suit/skirt @@ -30,7 +27,6 @@ desc = "A green suitskirt and yellow necktie. Exemplifies authority." icon_state = "green_suit_skirt" item_state = "dg_suit" - item_color = "green_suit_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -40,7 +36,6 @@ desc = "A captain's luxury-wear, for special occasions." icon_state = "captain_parade" item_state = "by_suit" - item_color = "captain_parade" can_adjust = FALSE /obj/item/clothing/under/rank/captain/femformal @@ -48,6 +43,5 @@ desc = "An ironically skimpy blue dress with gold markings denoting the rank of \"Captain\"." icon_state = "lewdcap" item_state = "lewdcap" - item_color = "lewdcap" can_adjust = FALSE mutantrace_variation = NONE diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm index ae0ded5888..365d90e188 100644 --- a/code/modules/clothing/under/jobs/engineering.dm +++ b/code/modules/clothing/under/jobs/engineering.dm @@ -4,16 +4,14 @@ name = "chief engineer's jumpsuit" icon_state = "chiefengineer" item_state = "gy_suit" - item_color = "chief" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 80, "acid" = 40) resistance_flags = NONE /obj/item/clothing/under/rank/engineering/chief_engineer/skirt name = "chief engineer's jumpskirt" desc = "It's a high visibility jumpskirt given to those engineers insane enough to achieve the rank of \"Chief Engineer\". It has minor radiation shielding." - icon_state = "chief_skirt" + icon_state = "chiefengineer_skirt" item_state = "gy_suit" - item_color = "chief_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -23,7 +21,6 @@ name = "atmospheric technician's jumpsuit" icon_state = "atmos" item_state = "atmos_suit" - item_color = "atmos" resistance_flags = NONE /obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt @@ -31,7 +28,6 @@ desc = "It's a jumpskirt worn by atmospheric technicians." icon_state = "atmos_skirt" item_state = "atmos_suit" - item_color = "atmos_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -41,7 +37,6 @@ name = "engineer's jumpsuit" icon_state = "engine" item_state = "engi_suit" - item_color = "engine" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 60, "acid" = 20) resistance_flags = NONE @@ -50,7 +45,6 @@ desc = "A high visibility jumpsuit made from heat and radiation resistant materials." icon_state = "hazard" item_state = "suit-orange" - item_color = "hazard" alt_covers_chest = TRUE /obj/item/clothing/under/rank/engineering/engineer/skirt @@ -58,7 +52,6 @@ desc = "It's an orange high visibility jumpskirt worn by engineers." icon_state = "engine_skirt" item_state = "engi_suit" - item_color = "engine_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm index 0c2b885bec..d5f4f1f5f9 100644 --- a/code/modules/clothing/under/jobs/medical.dm +++ b/code/modules/clothing/under/jobs/medical.dm @@ -3,7 +3,6 @@ name = "chief medical officer's jumpsuit" icon_state = "cmo" item_state = "w_suit" - item_color = "cmo" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) @@ -12,7 +11,6 @@ desc = "It's a jumpskirt worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection." icon_state = "cmo_skirt" item_state = "w_suit" - item_color = "cmo_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -20,11 +18,10 @@ /obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck desc = "It's a turtleneck worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection, for an officer with a superior sense of style and practicality." name = "chief medical officer's turtleneck" - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/turtlenecks.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/turtlenecks.dmi' icon = 'modular_citadel/icons/obj/clothing/turtlenecks.dmi' icon_state = "cmoturtle" item_state = "w_suit" - item_color = "cmoturtle" alt_covers_chest = TRUE mutantrace_variation = NONE @@ -33,16 +30,14 @@ name = "geneticist's jumpsuit" icon_state = "genetics" item_state = "w_suit" - item_color = "geneticswhite" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/under/rank/medical/geneticist/skirt name = "geneticist's jumpskirt" desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it." - icon_state = "geneticswhite_skirt" + icon_state = "genetics_skirt" item_state = "w_suit" - item_color = "geneticswhite_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -52,16 +47,14 @@ name = "virologist's jumpsuit" icon_state = "virology" item_state = "w_suit" - item_color = "virologywhite" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/under/rank/medical/virologist/skirt name = "virologist's jumpskirt" desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it." - icon_state = "virologywhite_skirt" + icon_state = "virology_skirt" item_state = "w_suit" - item_color = "virologywhite_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -71,16 +64,14 @@ name = "chemist's jumpsuit" icon_state = "chemistry" item_state = "w_suit" - item_color = "chemistrywhite" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 50, "acid" = 65) /obj/item/clothing/under/rank/medical/chemist/skirt name = "chemist's jumpskirt" desc = "It's made of a special fiber that gives special protection against biohazards. It has a chemist rank stripe on it." - icon_state = "chemistrywhite_skirt" + icon_state = "chemistry_skirt" item_state = "w_suit" - item_color = "chemistrywhite_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -90,7 +81,6 @@ name = "paramedic jumpsuit" icon_state = "paramedic-dark" item_state = "w_suit" - item_color = "paramedic-dark" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) can_adjust = FALSE @@ -98,7 +88,6 @@ /obj/item/clothing/under/rank/medical/paramedic/light desc = "It's made of a special fiber that provides minor protection against biohazards. It has a dark blue cross on the chest denoting that the wearer is a trained paramedic." icon_state = "paramedic-light" - item_color = "paramedic-light" can_adjust = TRUE /obj/item/clothing/under/rank/medical/paramedic/skirt @@ -106,7 +95,6 @@ desc = "It's made of a special fiber that provides minor protection against biohazards. It has a white cross on the chest denoting that the wearer is a trained paramedic." icon_state = "paramedic-dark_skirt" item_state = "w_suit" - item_color = "paramedic-dark_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -114,14 +102,12 @@ /obj/item/clothing/under/rank/medical/paramedic/skirt/light desc = "It's made of a special fiber that provides minor protection against biohazards. It has a dark blue cross on the chest denoting that the wearer is a trained paramedic." icon_state = "paramedic_skirt" - item_color = "paramedic_skirt" /obj/item/clothing/under/rank/medical/doctor/nurse desc = "It's a jumpsuit commonly worn by nursing staff in the medical department." name = "nurse's suit" icon_state = "nursesuit" item_state = "w_suit" - item_color = "nursesuit" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) body_parts_covered = CHEST|GROIN|ARMS @@ -133,7 +119,6 @@ name = "medical doctor's jumpsuit" icon_state = "medical" item_state = "w_suit" - item_color = "medical" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) @@ -141,21 +126,18 @@ name = "blue medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue." icon_state = "scrubsblue" - item_color = "scrubsblue" can_adjust = FALSE /obj/item/clothing/under/rank/medical/doctor/green name = "green medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in dark green." icon_state = "scrubsgreen" - item_color = "scrubsgreen" can_adjust = FALSE /obj/item/clothing/under/rank/medical/doctor/purple name = "purple medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple." icon_state = "scrubspurple" - item_color = "scrubspurple" can_adjust = FALSE /obj/item/clothing/under/rank/medical/doctor/skirt @@ -163,7 +145,6 @@ desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel." icon_state = "medical_skirt" item_state = "w_suit" - item_color = "medical_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE - fitted = FEMALE_UNIFORM_TOP \ No newline at end of file + fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/clothing/under/jobs/rnd.dm b/code/modules/clothing/under/jobs/rnd.dm index 142cb8d8b1..71c5766849 100644 --- a/code/modules/clothing/under/jobs/rnd.dm +++ b/code/modules/clothing/under/jobs/rnd.dm @@ -3,7 +3,6 @@ name = "research director's vest suit" icon_state = "director" item_state = "lb_suit" - item_color = "director" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 35) can_adjust = FALSE @@ -12,9 +11,7 @@ desc = "It's a suitskirt worn by those with the know-how to achieve the position of \"Research Director\". Its fabric provides minor protection from biological contaminants." icon_state = "director_skirt" item_state = "lb_suit" - item_color = "director_skirt" body_parts_covered = CHEST|GROIN|ARMS - can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/rnd/research_director/alt @@ -22,7 +19,6 @@ name = "research director's tan suit" icon_state = "rdwhimsy" item_state = "rdwhimsy" - item_color = "rdwhimsy" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) can_adjust = TRUE alt_covers_chest = TRUE @@ -32,7 +28,6 @@ desc = "Maybe you'll engineer your own half-man, half-pig creature some day. Its fabric provides minor protection from biological contaminants." icon_state = "rdwhimsy_skirt" item_state = "rdwhimsy" - item_color = "rdwhimsy_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -42,7 +37,6 @@ name = "research director's turtleneck" icon_state = "rdturtle" item_state = "p_suit" - item_color = "rdturtle" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) can_adjust = TRUE alt_covers_chest = TRUE @@ -52,7 +46,6 @@ desc = "A dark purple turtleneck and tan khaki skirt, for a director with a superior sense of style." icon_state = "rdturtle_skirt" item_state = "p_suit" - item_color = "rdturtle_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -62,16 +55,14 @@ name = "scientist's jumpsuit" icon_state = "toxins" item_state = "w_suit" - item_color = "toxinswhite" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/under/rank/rnd/scientist/skirt name = "scientist's jumpskirt" desc = "It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a scientist." - icon_state = "toxinswhite_skirt" + icon_state = "toxins_skirt" item_state = "w_suit" - item_color = "toxinswhite_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -81,7 +72,6 @@ name = "roboticist's jumpsuit" icon_state = "robotics" item_state = "robotics" - item_color = "robotics" resistance_flags = NONE /obj/item/clothing/under/rank/rnd/roboticist/skirt @@ -89,7 +79,6 @@ desc = "It's a slimming black with reinforced seams; great for industrial work." icon_state = "robotics_skirt" item_state = "robotics" - item_color = "robotics_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 21e088f634..0d4b916610 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -8,32 +8,30 @@ /* * Security */ +/obj/item/clothing/under/rank/security + strip_delay = 50 + alt_covers_chest = TRUE + sensor_mode = SENSOR_COORDS + random_sensor = FALSE /obj/item/clothing/under/rank/security/officer name = "security jumpsuit" desc = "A tactical security jumpsuit for officers complete with Nanotrasen belt buckle." icon_state = "rsecurity" item_state = "r_suit" - item_color = "rsecurity" armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30) - strip_delay = 50 - alt_covers_chest = TRUE - sensor_mode = SENSOR_COORDS - random_sensor = FALSE /obj/item/clothing/under/rank/security/officer/grey name = "grey security jumpsuit" desc = "A tactical relic of years past before Nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." icon_state = "security" item_state = "gy_suit" - item_color = "security" /obj/item/clothing/under/rank/security/officer/skirt name = "security jumpskirt" desc = "A \"tactical\" security jumpsuit with the legs replaced by a skirt." icon_state = "secskirt" item_state = "r_suit" - item_color = "secskirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE //you know now that i think of it if you adjust the skirt and the sprite disappears isn't that just like flashing everyone fitted = FEMALE_UNIFORM_TOP @@ -43,7 +41,6 @@ desc = "The latest in fashionable security outfits." icon_state = "officerblueclothes" item_state = "officerblueclothes" - item_color = "officerblueclothes" alt_covers_chest = TRUE /obj/item/clothing/under/rank/security/officer/blueshirt @@ -51,7 +48,6 @@ desc = "I'm a little busy right now, Calhoun." icon_state = "blueshift" item_state = "blueshift" - item_color = "blueshift" can_adjust = FALSE /obj/item/clothing/under/rank/security/officer/spacepol @@ -59,7 +55,6 @@ desc = "Space not controlled by megacorporations, planets, or pirates is under the jurisdiction of Spacepol." icon_state = "spacepol" item_state = "spacepol" - item_color = "spacepol" can_adjust = FALSE /* @@ -71,26 +66,19 @@ desc = "A formal security suit for officers complete with Nanotrasen belt buckle." icon_state = "rwarden" item_state = "r_suit" - item_color = "rwarden" armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30) - strip_delay = 50 - alt_covers_chest = TRUE - sensor_mode = 3 - random_sensor = FALSE /obj/item/clothing/under/rank/security/warden/grey name = "grey security suit" desc = "A formal relic of years past before Nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." icon_state = "warden" item_state = "gy_suit" - item_color = "warden" /obj/item/clothing/under/rank/security/warden/skirt name = "warden's suitskirt" desc = "A formal security suitskirt for officers complete with Nanotrasen belt buckle." icon_state = "rwarden_skirt" item_state = "r_suit" - item_color = "rwarden_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -100,7 +88,6 @@ name = "warden's formal uniform" icon_state = "wardenblueclothes" item_state = "wardenblueclothes" - item_color = "wardenblueclothes" alt_covers_chest = TRUE /* @@ -112,19 +99,13 @@ desc = "Someone who wears this means business." icon_state = "detective" item_state = "det" - item_color = "detective" armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30) - strip_delay = 50 - alt_covers_chest = TRUE - sensor_mode = 3 - random_sensor = FALSE /obj/item/clothing/under/rank/security/detective/skirt name = "detective's suitskirt" desc = "Someone who wears this means business." icon_state = "detective_skirt" item_state = "det" - item_color = "detective_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -134,15 +115,12 @@ desc = "A hard-boiled private investigator's grey suit, complete with tie clip." icon_state = "greydet" item_state = "greydet" - item_color = "greydet" - alt_covers_chest = TRUE /obj/item/clothing/under/rank/security/detective/grey/skirt name = "noir suitskirt" desc = "A hard-boiled private investigator's grey suitskirt, complete with tie clip." icon_state = "greydet_skirt" item_state = "greydet" - item_color = "greydet_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -156,19 +134,14 @@ desc = "A security jumpsuit decorated for those few with the dedication to achieve the position of Head of Security." icon_state = "rhos" item_state = "r_suit" - item_color = "rhos" armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) strip_delay = 60 - alt_covers_chest = TRUE - sensor_mode = 3 - random_sensor = FALSE /obj/item/clothing/under/rank/security/head_of_security/skirt name = "head of security's jumpskirt" desc = "A security jumpskirt decorated for those few with the dedication to achieve the position of Head of Security." icon_state = "rhos_skirt" item_state = "r_suit" - item_color = "rhos_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -178,21 +151,18 @@ desc = "There are old men, and there are bold men, but there are very few old, bold men." icon_state = "hos" item_state = "gy_suit" - item_color = "hos" /obj/item/clothing/under/rank/security/head_of_security/alt name = "head of security's turtleneck" desc = "A stylish alternative to the normal head of security jumpsuit, complete with tactical pants." icon_state = "hosalt" item_state = "bl_suit" - item_color = "hosalt" /obj/item/clothing/under/rank/security/head_of_security/alt/skirt name = "head of security's turtleneck skirt" desc = "A stylish alternative to the normal head of security jumpsuit, complete with a tactical skirt." icon_state = "hosalt_skirt" item_state = "bl_suit" - item_color = "hosalt_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -202,15 +172,12 @@ name = "head of security's formal uniform" icon_state = "hosblueclothes" item_state = "hosblueclothes" - item_color = "hosblueclothes" - alt_covers_chest = TRUE /obj/item/clothing/under/rank/security/head_of_security/parade name = "head of security's parade uniform" desc = "A male head of security's luxury-wear, for special occasions." icon_state = "hos_parade_male" item_state = "r_suit" - item_color = "hos_parade_male" can_adjust = FALSE /obj/item/clothing/under/rank/security/head_of_security/parade/female @@ -218,6 +185,4 @@ desc = "A female head of security's luxury-wear, for special occasions." icon_state = "hos_parade_fem" item_state = "r_suit" - item_color = "hos_parade_fem" fitted = FEMALE_UNIFORM_TOP - can_adjust = FALSE diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index fb5ff7b0f4..d475ca8100 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -2,7 +2,6 @@ name = "red pj's" desc = "Sleepwear." icon_state = "red_pyjamas" - item_color = "red_pyjamas" item_state = "w_suit" can_adjust = FALSE @@ -10,7 +9,6 @@ name = "blue pj's" desc = "Sleepwear." icon_state = "blue_pyjamas" - item_color = "blue_pyjamas" item_state = "w_suit" can_adjust = FALSE @@ -19,7 +17,6 @@ desc = "Motorcycle not included." icon_state = "ek" item_state = "ek" - item_color = "ek" can_adjust = FALSE /obj/item/clothing/under/rank/prisoner @@ -27,7 +24,6 @@ desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." icon_state = "prisoner" item_state = "o_suit" - item_color = "prisoner" has_sensor = LOCKED_SENSORS sensor_mode = SENSOR_COORDS random_sensor = FALSE @@ -37,7 +33,6 @@ desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." icon_state = "prisoner_skirt" item_state = "o_suit" - item_color = "prisoner_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -47,21 +42,18 @@ desc = "'Special delivery!'" icon_state = "mailman" item_state = "b_suit" - item_color = "mailman" /obj/item/clothing/under/misc/psyche name = "psychedelic jumpsuit" desc = "Groovy!" icon_state = "psyche" item_state = "p_suit" - item_color = "psyche" /obj/item/clothing/under/misc/vice_officer name = "vice officer's jumpsuit" desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision." icon_state = "vice" item_state = "gy_suit" - item_color = "vice" can_adjust = FALSE @@ -69,7 +61,6 @@ name = "administrative cybernetic jumpsuit" icon_state = "syndicate" item_state = "bl_suit" - item_color = "syndicate" desc = "A cybernetically enhanced jumpsuit used for administrative duties." gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 @@ -87,7 +78,6 @@ desc = "Traditional burial garments from the early 22nd century." icon_state = "burial" item_state = "burial" - item_color = "burial" has_sensor = NO_SENSORS /obj/item/clothing/under/misc/overalls @@ -95,7 +85,6 @@ desc = "A set of durable overalls for getting the job done." icon_state = "overalls" item_state = "lb_suit" - item_color = "overalls" can_adjust = FALSE /obj/item/clothing/under/misc/assistantformal @@ -103,24 +92,21 @@ desc = "An assistant's formal-wear. Why an assistant needs formal-wear is still unknown." icon_state = "assistant_formal" item_state = "gy_suit" - item_color = "assistant_formal" can_adjust = FALSE /obj/item/clothing/under/misc/staffassistant name = "staff assistant's jumpsuit" desc = "It's a generic grey jumpsuit. That's about what assistants are worth, anyway." icon = 'goon/icons/obj/item_js_rank.dmi' - alternate_worn_icon = 'goon/icons/mob/worn_js_rank.dmi' + mob_overlay_icon = 'goon/icons/mob/worn_js_rank.dmi' icon_state = "assistant" item_state = "gy_suit" - item_color = "assistant" mutantrace_variation = NONE /obj/item/clothing/under/croptop name = "crop top" desc = "We've saved money by giving you half a shirt!" icon_state = "croptop" - item_color = "croptop" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -130,7 +116,6 @@ desc = "A special containment suit that allows plasma-based lifeforms to exist safely in an oxygenated environment, and automatically extinguishes them in a crisis. Despite being airtight, it's not spaceworthy." icon_state = "plasmaman" item_state = "plasmaman" - item_color = "plasmaman" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95) slowdown = 1 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -170,7 +155,6 @@ to_chat(user, "You refill the suit's built-in extinguisher, using up the cartridge.") qdel(E) return - return return /obj/item/extinguisher_refill @@ -192,7 +176,6 @@ desc = "A jumpsuit made from durathread, its resilient fibres provide some protection to the wearer." icon_state = "durathread" item_state = "durathread" - item_color = "durathread" can_adjust = TRUE armor = list("melee" = 10, "laser" = 10, "fire" = 40, "acid" = 10, "bomb" = 5) @@ -209,7 +192,6 @@ desc = "Cyka blyat." icon_state = "squatteroutfit" item_state = "squatteroutfit" - item_color = "squatteroutfit" can_adjust = FALSE mutantrace_variation = NONE @@ -218,7 +200,6 @@ desc = "Drop and give me dvadtsat!" icon_state = "russobluecamo" item_state = "russobluecamo" - item_color = "russobluecamo" can_adjust = FALSE mutantrace_variation = NONE @@ -227,7 +208,6 @@ desc = "What is the point of this, anyway?" icon_state = "keyholesweater" item_state = "keyholesweater" - item_color = "keyholesweater" can_adjust = FALSE mutantrace_variation = NONE @@ -235,7 +215,6 @@ name = "pink stripper outfit" icon_state = "stripper_p" item_state = "stripper_p" - item_color = "stripper_p" body_parts_covered = CHEST|GROIN can_adjust = FALSE @@ -243,13 +222,11 @@ name = "green stripper outfit" icon_state = "stripper_g" item_state = "stripper_g" - item_color = "stripper_g" /obj/item/clothing/under/misc/stripper/mankini name = "pink mankini" icon_state = "mankini" item_state = "mankini" - item_color = "mankini" /obj/item/clothing/under/misc/corporateuniform name = "corporate uniform" @@ -263,76 +240,68 @@ name = "polychromic button-up shirt" desc = "A fancy button-up shirt made with polychromic threads." icon_state = "polysuit" - item_color = "polysuit" item_state = "sl_suit" - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#FFFFFF" - secondary_color = "#353535" - tertiary_color = "#353535" mutantrace_variation = NONE +/obj/item/clothing/under/misc/poly_shirt/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#FFFFFF", "#353535", "#353535"), 3) + /obj/item/clothing/under/misc/polyshorts name = "polychromic shorts" desc = "For ease of movement and style." icon_state = "polyshorts" - item_color = "polyshorts" item_state = "rainbow" - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#353535" - secondary_color = "#808080" - tertiary_color = "#808080" can_adjust = FALSE body_parts_covered = CHEST|GROIN|ARMS +/obj/item/clothing/under/misc/polyshorts/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#353535", "#808080", "#808080"), 3) + /obj/item/clothing/under/misc/polyjumpsuit name = "polychromic tri-tone jumpsuit" desc = "A fancy jumpsuit made with polychromic threads." icon_state = "polyjump" - item_color = "polyjump" item_state = "rainbow" - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#FFFFFF" - secondary_color = "#808080" - tertiary_color = "#FF3535" can_adjust = FALSE mutantrace_variation = NONE +/obj/item/clothing/under/misc/polyjumpsuit/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#FFFFFF", "#808080", "#353535"), 3) + /obj/item/clothing/under/misc/poly_bottomless name = "polychromic bottomless shirt" - desc = "Great for showing off your junk in dubious style." + desc = "Great for showing off your underwear in dubious style." icon_state = "polybottomless" - item_color = "polybottomless" item_state = "rainbow" - primary_color = "#808080" - secondary_color = "#FF3535" body_parts_covered = CHEST|ARMS //Because there's no bottom included can_adjust = FALSE mutantrace_variation = NONE +/obj/item/clothing/under/misc/poly_bottomless/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#808080", "#FF3535"), 2) + /obj/item/clothing/under/misc/poly_tanktop name = "polychromic tank top" desc = "For those lazy summer days." icon_state = "polyshimatank" - item_color = "polyshimatank" item_state = "rainbow" - primary_color = "#808080" - secondary_color = "#FFFFFF" - tertiary_color = "#8CC6FF" body_parts_covered = CHEST|GROIN can_adjust = FALSE mutantrace_variation = NONE + var/list/poly_states = 3 + var/list/poly_colors = list("#808080", "#FFFFFF", "#8CC6FF") + +/obj/item/clothing/under/misc/poly_tanktop/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, poly_states) /obj/item/clothing/under/misc/poly_tanktop/female name = "polychromic feminine tank top" desc = "Great for showing off your chest in style. Not recommended for males." icon_state = "polyfemtankpantsu" - item_color = "polyfemtankpantsu" - hastertiary = FALSE - primary_color = "#808080" - secondary_color = "#FF3535" + poly_states = 2 + poly_colors = list("#808080", "#FF3535") diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm index 4b0c92af88..d0048326ff 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -8,101 +8,84 @@ name = "classic jeans" desc = "You feel cooler already." icon_state = "jeansclassic" - item_color = "jeansclassic" /obj/item/clothing/under/pants/mustangjeans name = "Must Hang jeans" desc = "Made in the finest space jeans factory this side of Alpha Centauri." icon_state = "jeansmustang" - item_color = "jeansmustang" /obj/item/clothing/under/pants/blackjeans name = "black jeans" desc = "Only for those who can pull it off." icon_state = "jeansblack" - item_color = "jeansblack" /obj/item/clothing/under/pants/youngfolksjeans name = "Young Folks jeans" desc = "For those tired of boring old jeans. Relive the passion of your youth!" icon_state = "jeansyoungfolks" - item_color = "jeansyoungfolks" /obj/item/clothing/under/pants/white name = "white pants" desc = "Plain white pants. Boring." icon_state = "whitepants" - item_color = "whitepants" /obj/item/clothing/under/pants/red name = "red pants" desc = "Bright red pants. Overflowing with personality." icon_state = "redpants" - item_color = "redpants" /obj/item/clothing/under/pants/black name = "black pants" desc = "These pants are dark, like your soul." icon_state = "blackpants" - item_color = "blackpants" /obj/item/clothing/under/pants/tan name = "tan pants" desc = "Some tan pants. You look like a white collar worker with these on." icon_state = "tanpants" - item_color = "tanpants" /obj/item/clothing/under/pants/track name = "track pants" desc = "A pair of track pants, for the athletic." icon_state = "trackpants" - item_color = "trackpants" /obj/item/clothing/under/pants/jeans name = "jeans" desc = "A nondescript pair of tough blue jeans." icon_state = "jeans" - item_color = "jeans" /obj/item/clothing/under/pants/khaki name = "khaki pants" desc = "A pair of dust beige khaki pants." icon_state = "khaki" - item_color = "khaki" /obj/item/clothing/under/pants/camo name = "camo pants" desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station." icon_state = "camopants" - item_color = "camopants" /obj/item/clothing/under/pants/jeanripped name = "ripped jeans" desc = "If you're wearing this you're poor or a rebel" icon_state = "jean_ripped" - item_color = "jean_ripped" /obj/item/clothing/under/pants/jeanshort name = "jean shorts" desc = "These are really just jeans cut in half" icon_state = "jean_shorts" - item_color = "jean_shorts" /obj/item/clothing/under/pants/denimskirt name = "denim skirt" desc = "These are really just a jean leg hole cut from a pair" icon_state = "denim_skirt" - item_color = "denim_skirt" /obj/item/clothing/under/pants/chaps name = "black chaps" body_parts_covered = LEGS desc = "Yeehaw" icon_state = "chaps" - item_color = "chaps" /obj/item/clothing/under/pants/yoga name = "yoga pants" desc = "Comfy!" icon_state = "yoga_pants" - item_color = "yoga_pants" diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index b66df87347..f61a41e4c3 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -9,53 +9,44 @@ /obj/item/clothing/under/shorts/red name = "red athletic shorts" icon_state = "redshorts" - item_color = "redshorts" /obj/item/clothing/under/shorts/green name = "green athletic shorts" icon_state = "greenshorts" - item_color = "greenshorts" /obj/item/clothing/under/shorts/blue name = "blue athletic shorts" icon_state = "blueshorts" - item_color = "blueshorts" /obj/item/clothing/under/shorts/black name = "black athletic shorts" icon_state = "blackshorts" - item_color = "blackshorts" /obj/item/clothing/under/shorts/grey name = "grey athletic shorts" icon_state = "greyshorts" - item_color = "greyshorts" /obj/item/clothing/under/shorts/purple name = "purple athletic shorts" icon_state = "purpleshorts" - item_color = "purpleshorts" /obj/item/clothing/under/shorts/polychromic name = "polychromic athletic shorts" desc = "95% Polychrome, 5% Spandex!" icon_state = "polyshortpants" - item_color = "polyshortpants" item_state = "rainbow" - hasprimary = TRUE - hassecondary = TRUE - primary_color = "#FFFFFF" - secondary_color = "#F08080" mutantrace_variation = NONE + var/list/poly_colors = list("#FFFFFF", "#F08080") + +/obj/item/clothing/under/shorts/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, 2) /obj/item/clothing/under/shorts/polychromic/pantsu name = "polychromic panties" desc = "Topless striped panties. Now with 120% more polychrome!" icon_state = "polypantsu" - item_color = "polypantsu" item_state = "rainbow" - hastertiary = FALSE - primary_color = "#FFFFFF" - secondary_color = "#8CC6FF" body_parts_covered = GROIN mutantrace_variation = NONE + poly_colors = list("#FFFFFF", "#8CC6FF") diff --git a/code/modules/clothing/under/skirt_dress.dm b/code/modules/clothing/under/skirt_dress.dm index 02c2b06546..fa2c9eed71 100644 --- a/code/modules/clothing/under/skirt_dress.dm +++ b/code/modules/clothing/under/skirt_dress.dm @@ -3,7 +3,6 @@ name = "black skirt" desc = "A black skirt, very fancy!" icon_state = "blackskirt" - item_color = "blackskirt" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -12,7 +11,6 @@ name = "blue skirt" desc = "A blue, casual skirt." icon_state = "blueskirt" - item_color = "blueskirt" item_state = "b_suit" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP @@ -22,7 +20,6 @@ name = "red skirt" desc = "A red, casual skirt." icon_state = "redskirt" - item_color = "redskirt" item_state = "r_suit" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP @@ -32,7 +29,6 @@ name = "purple skirt" desc = "A purple, casual skirt." icon_state = "purpleskirt" - item_color = "purpleskirt" item_state = "p_suit" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP @@ -43,7 +39,6 @@ desc = "Makes you want to frolic in a field of daisies." icon_state = "sundress" item_state = "sundress" - item_color = "sundress" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -51,13 +46,11 @@ /obj/item/clothing/under/dress/sundress/white name = "white sundress" icon_state = "sundress_white" - item_color = "sundress_white" /obj/item/clothing/under/dress/green name = "green dress" desc = "A tight green dress" icon_state = "dress_green" - item_color = "dress_green" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -66,7 +59,6 @@ name = "pink dress" desc = "A tight pink dress" icon_state = "dress_pink" - item_color = "dress_pink" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -76,7 +68,6 @@ desc = "Filled with Latin fire." icon_state = "black_tango" item_state = "wcoat" - item_color = "black_tango" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -85,7 +76,6 @@ desc = "Filled with Western fire." icon_state = "western_bustle" item_state = "wcoat" - item_color = "western_bustle" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -94,7 +84,6 @@ desc = "Filled with Latin fire." icon_state = "flamenco" item_state = "wcoat" - item_color = "flamenco" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -103,7 +92,6 @@ desc = "Fashion in space." icon_state = "striped_dress" item_state = "stripeddress" - item_color = "striped_dress" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_FULL can_adjust = FALSE @@ -113,7 +101,6 @@ desc = "Formal wear for a leading lady." icon_state = "sailor_dress" item_state = "sailordress" - item_color = "sailor_dress" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -123,7 +110,6 @@ desc = "Lovely dress." icon_state = "flower_dress" item_state = "sailordress" - item_color = "flower_dress" body_parts_covered = CHEST|GROIN|LEGS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -132,7 +118,6 @@ name = "swept skirt" desc = "Formal skirt." icon_state = "skirt_swept" - item_color = "skirt_swept" body_parts_covered = GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -141,7 +126,6 @@ name = "black corset" desc = "Nanotrasen is not resposible for any organ damage." icon_state = "corset" - item_color = "corset" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -151,7 +135,6 @@ desc = "Fancy dress for space bar singers." icon_state = "red_evening_gown" item_state = "redeveninggown" - item_color = "red_evening_gown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -160,7 +143,6 @@ desc = "A preppy red skirt with a white blouse." icon_state = "plaid_red" item_state = "plaid_red" - item_color = "plaid_red" fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE @@ -170,7 +152,6 @@ desc = "A preppy blue skirt with a white blouse." icon_state = "plaid_blue" item_state = "plaid_blue" - item_color = "plaid_blue" fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE @@ -180,7 +161,6 @@ desc = "A preppy purple skirt with a white blouse." icon_state = "plaid_purple" item_state = "plaid_purple" - item_color = "plaid_purple" fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE @@ -190,7 +170,6 @@ desc = "A preppy green skirt with a white blouse." icon_state = "plaid_green" item_state = "plaid_green" - item_color = "plaid_green" fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE @@ -200,7 +179,6 @@ desc = "A white wedding gown made from the finest silk." icon_state = "bride_white" item_state = "bride_white" - item_color = "bride_white" can_adjust = FALSE mutantrace_variation = NONE @@ -209,51 +187,42 @@ desc = "A big and puffy orange dress." icon_state = "bride_orange" item_state = "bride_orange" - item_color = "bride_orange" /obj/item/clothing/under/dress/wedding/purple name = "purple wedding dress" desc = "A big and puffy purple dress." icon_state = "bride_purple" item_state = "bride_purple" - item_color = "bride_purple" /obj/item/clothing/under/dress/wedding/blue name = "blue wedding dress" desc = "A big and puffy blue dress." icon_state = "bride_blue" item_state = "bride_blue" - item_color = "bride_blue" /obj/item/clothing/under/dress/wedding/red name = "red wedding dress" desc = "A big and puffy red dress." icon_state = "bride_red" item_state = "bride_red" - item_color = "bride_red" /obj/item/clothing/under/dress/skirt/polychromic name = "polychromic skirt" desc = "A fancy skirt made with polychromic threads." icon_state = "polyskirt" - item_color = "polyskirt" item_state = "rainbow" - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#FFFFFF" - secondary_color = "#F08080" - tertiary_color = "#808080" mutantrace_variation = NONE + var/list/poly_colors = list("#FFFFFF", "#F08080", "#808080") + +/obj/item/clothing/under/dress/skirt/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, 3) /obj/item/clothing/under/dress/skirt/polychromic/pleated name = "polychromic pleated skirt" desc = "A magnificent pleated skirt complements the woolen polychromatic sweater." icon_state = "polypleat" - item_color = "polypleat" item_state = "rainbow" - primary_color = "#8CC6FF" - secondary_color = "#808080" - tertiary_color = "#FF3535" body_parts_covered = CHEST|GROIN|ARMS mutantrace_variation = NONE + poly_colors = list("#8CC6FF", "#808080", "#FF3535") diff --git a/code/modules/clothing/under/suits.dm b/code/modules/clothing/under/suits.dm index 1b99fbc549..087262dd1e 100644 --- a/code/modules/clothing/under/suits.dm +++ b/code/modules/clothing/under/suits.dm @@ -4,7 +4,6 @@ desc = "A white suit, suitable for an excellent host." icon_state = "scratch" item_state = "scratch" - item_color = "scratch" can_adjust = FALSE /obj/item/clothing/under/suit/white_on_white/skirt @@ -12,7 +11,6 @@ desc = "A white suitskirt, suitable for an excellent host." icon_state = "white_suit_skirt" item_state = "scratch" - item_color = "white_suit_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -21,7 +19,6 @@ desc = "It's a very amish looking suit." name = "amish suit" icon_state = "sl_suit" - item_color = "sl_suit" can_adjust = FALSE /obj/item/clothing/under/suit/waiter @@ -29,7 +26,6 @@ desc = "It's a very smart uniform with a special pocket for tip." icon_state = "waiter" item_state = "waiter" - item_color = "waiter" can_adjust = FALSE /obj/item/clothing/under/suit/black @@ -37,7 +33,6 @@ desc = "A black suit and red tie. Very formal." icon_state = "black_suit" item_state = "bl_suit" - item_color = "black_suit" can_adjust = FALSE /obj/item/clothing/under/suit/black_really @@ -45,21 +40,18 @@ desc = "A formal black suit and red tie, intended for the station's finest." icon_state = "really_black_suit" item_state = "bl_suit" - item_color = "really_black_suit" /obj/item/clothing/under/suit/black/skirt name = "executive suit" desc = "A formal trouser suit for women, intended for the station's finest." icon_state = "black_suit_fem" item_state = "black_suit_fem" - item_color = "black_suit_fem" /obj/item/clothing/under/suit/green name = "green suit" desc = "A green suit and yellow necktie. Baller." icon_state = "green_suit" item_state = "dg_suit" - item_color = "green_suit" can_adjust = FALSE /obj/item/clothing/under/suit/red @@ -67,49 +59,42 @@ desc = "A red suit and blue tie. Somewhat formal." icon_state = "red_suit" item_state = "r_suit" - item_color = "red_suit" /obj/item/clothing/under/suit/charcoal name = "charcoal suit" desc = "A charcoal suit and red tie. Very professional." icon_state = "charcoal_suit" item_state = "charcoal_suit" - item_color = "charcoal_suit" /obj/item/clothing/under/suit/navy name = "navy suit" desc = "A navy suit and red tie, intended for the station's finest." icon_state = "navy_suit" item_state = "navy_suit" - item_color = "navy_suit" /obj/item/clothing/under/suit/burgundy name = "burgundy suit" desc = "A burgundy suit and black tie. Somewhat formal." icon_state = "burgundy_suit" item_state = "burgundy_suit" - item_color = "burgundy_suit" /obj/item/clothing/under/suit/checkered name = "checkered suit" desc = "That's a very nice suit you have there. Shame if something were to happen to it, eh?" icon_state = "checkered_suit" item_state = "checkered_suit" - item_color = "checkered_suit" /obj/item/clothing/under/suit/tan name = "tan suit" desc = "A tan suit with a yellow tie. Smart, but casual." icon_state = "tan_suit" item_state = "tan_suit" - item_color = "tan_suit" /obj/item/clothing/under/suit/white name = "white suit" desc = "A white suit and jacket with a blue shirt. You wanna play rough? OKAY!" icon_state = "white_suit" item_state = "white_suit" - item_color = "white_suit" /obj/item/clothing/under/suit/telegram name = "telegram suit" @@ -123,13 +108,10 @@ name = "polychromic suit" desc = "For when you want to show off your horrible colour coordination skills." icon_state = "polysuit" - item_color = "polysuit" item_state = "sl_suit" - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#FFFFFF" - secondary_color = "#FFFFFF" - tertiary_color = "#808080" can_adjust = FALSE mutantrace_variation = NONE + +/obj/item/clothing/under/suit/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#FFFFFF", "#FFFFFF", "#808080"), 3) diff --git a/code/modules/clothing/under/sweaters.dm b/code/modules/clothing/under/sweaters.dm index 13f336bfbd..d8e8373d71 100644 --- a/code/modules/clothing/under/sweaters.dm +++ b/code/modules/clothing/under/sweaters.dm @@ -3,39 +3,33 @@ desc = "Why trade style for comfort? Now you can go commando down south and still be cozy up north." icon_state = "bb_turtle" item_state = "w_suit" - item_color = "bb_turtle" body_parts_covered = CHEST|GROIN|ARMS can_adjust = TRUE icon = 'modular_citadel/icons/obj/clothing/turtlenecks.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' mutantrace_variation = NONE /obj/item/clothing/under/sweater/black name = "black sweater" icon_state = "bb_turtleblk" item_state = "bl_suit" - item_color = "bb_turtleblk" /obj/item/clothing/under/sweater/purple name = "purple sweater" icon_state = "bb_turtlepur" item_state = "p_suit" - item_color = "bb_turtlepur" /obj/item/clothing/under/sweater/green name = "green sweater" icon_state = "bb_turtlegrn" item_state = "g_suit" - item_color = "bb_turtlegrn" /obj/item/clothing/under/sweater/red name = "red sweater" icon_state = "bb_turtlered" item_state = "r_suit" - item_color = "bb_turtlered" /obj/item/clothing/under/sweater/blue name = "blue sweater" icon_state = "bb_turtleblu" item_state = "b_suit" - item_color = "bb_turtleblu" diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 676138d734..986196a212 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -3,7 +3,6 @@ desc = "A non-descript and slightly suspicious looking turtleneck with digital camouflage cargo pants." icon_state = "syndicate" item_state = "bl_suit" - item_color = "syndicate" has_sensor = NO_SENSORS armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE @@ -13,7 +12,6 @@ desc = "A non-descript and slightly suspicious looking skirtleneck." icon_state = "syndicate_skirt" item_state = "bl_suit" - item_color = "syndicate_skirt" has_sensor = NO_SENSORS armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE @@ -24,7 +22,6 @@ desc = "An insidious armored jumpsuit lined with Syndicate nanofibers and prototype platings, slightly resistant to most forms of damage, but is far too bulky to have anything attached to it. It still counts as stealth if there are no witnesses." icon_state = "bloodred_pajamas" item_state = "bl_suit" - item_color = "bloodred_pajamas" dummy_thick = TRUE armor = list("melee" = 10, "bullet" = 10, "laser" = 10,"energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 50, "acid" = 40) resistance_flags = FIRE_PROOF | ACID_PROOF @@ -35,7 +32,6 @@ desc = "Do operatives dream of nuclear sheep?" icon_state = "bloodred_pajamas" item_state = "bl_suit" - item_color = "bloodred_pajamas" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) /obj/item/clothing/under/syndicate/tacticool @@ -43,7 +39,6 @@ desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." icon_state = "tactifool" item_state = "bl_suit" - item_color = "tactifool" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) /obj/item/clothing/under/syndicate/tacticool/skirt @@ -51,7 +46,6 @@ desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." icon_state = "tactifool_skirt" item_state = "bl_suit" - item_color = "tactifool_skirt" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) fitted = FEMALE_UNIFORM_TOP @@ -60,7 +54,6 @@ desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." icon_state = "tactifool" item_state = "bl_suit" - item_color = "tactifool" has_sensor = TRUE mutantrace_variation = NONE armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) @@ -70,7 +63,6 @@ desc = "A double seamed tactical turtleneck disguised as a civilian grade silk suit. Intended for the most formal operator. The collar is really sharp." icon_state = "really_black_suit" item_state = "bl_suit" - item_color = "black_suit" can_adjust = FALSE /obj/item/clothing/under/syndicate/camo @@ -78,14 +70,12 @@ desc = "A green military camouflage uniform." icon_state = "camogreen" item_state = "g_suit" - item_color = "camogreen" can_adjust = FALSE /obj/item/clothing/under/syndicate/soviet name = "Ratnik 5 tracksuit" desc = "Badly translated labels tell you to clean this in Vodka. Great for squatting in." icon_state = "trackpants" - item_color = "trackpants" can_adjust = FALSE armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) resistance_flags = NONE @@ -94,14 +84,12 @@ name = "combat uniform" desc = "With a suit lined with this many pockets, you are ready to operate." icon_state = "syndicate_combat" - item_color = "syndicate_combat" can_adjust = FALSE /obj/item/clothing/under/syndicate/rus_army name = "advanced military tracksuit" desc = "Military grade tracksuits for frontline squatting." icon_state = "rus_under" - item_color = "rus_under" can_adjust = FALSE armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) resistance_flags = NONE @@ -111,7 +99,6 @@ desc = "A major league outfit with the number faded number on the back. Seems rather robust for just a game..." icon_state = "syndicatebaseball" item_state = "syndicatebaseball" - item_color = "syndicatebaseball" has_sensor = NO_SENSORS armor = list("melee" = 15, "bullet" = 5, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE diff --git a/code/modules/clothing/under/trek.dm b/code/modules/clothing/under/trek.dm index 2fb33d1b19..a9709a4c95 100644 --- a/code/modules/clothing/under/trek.dm +++ b/code/modules/clothing/under/trek.dm @@ -13,14 +13,12 @@ name = "command uniform" desc = "The uniform worn by command officers in the mid 2260s." icon_state = "trek_command" - item_color = "trek_command" item_state = "y_suit" /obj/item/clothing/under/trek/engsec name = "operations uniform" desc = "The uniform worn by operations officers of the mid 2260s. You feel strangely vulnerable just seeing this..." icon_state = "trek_engsec" - item_color = "trek_engsec" item_state = "r_suit" strip_delay = 50 @@ -28,7 +26,6 @@ name = "medsci uniform" desc = "The uniform worn by medsci officers in the mid 2260s." icon_state = "trek_medsci" - item_color = "trek_medsci" item_state = "b_suit" permeability_coefficient = 0.50 @@ -37,38 +34,32 @@ /obj/item/clothing/under/trek/command/next desc = "The uniform worn by command officers. This one's from the mid 2360s." icon_state = "trek_next_command" - item_color = "trek_next_command" item_state = "r_suit" /obj/item/clothing/under/trek/engsec/next desc = "The uniform worn by operation officers. This one's from the mid 2360s." icon_state = "trek_next_engsec" - item_color = "trek_next_engsec" item_state = "y_suit" /obj/item/clothing/under/trek/medsci/next desc = "The uniform worn by medsci officers. This one's from the mid 2360s." icon_state = "trek_next_medsci" - item_color = "trek_next_medsci" //ENT /obj/item/clothing/under/trek/command/ent desc = "The uniform worn by command officers of the 2140s." icon_state = "trek_ent_command" - item_color = "trek_ent_command" item_state = "bl_suit" /obj/item/clothing/under/trek/engsec/ent desc = "The uniform worn by operations officers of the 2140s." icon_state = "trek_ent_engsec" - item_color = "trek_ent_engsec" item_state = "bl_suit" /obj/item/clothing/under/trek/medsci/ent desc = "The uniform worn by medsci officers of the 2140s." icon_state = "trek_ent_medsci" - item_color = "trek_ent_medsci" item_state = "bl_suit" @@ -111,5 +102,4 @@ name = "french marshall's uniform" desc = "Something about it feels off..." icon_state = "trek_Q" - item_color = "trek_Q" item_state = "r_suit" diff --git a/code/modules/events/sentience.dm b/code/modules/events/sentience.dm index 1a303ec4bc..8fe68f509b 100644 --- a/code/modules/events/sentience.dm +++ b/code/modules/events/sentience.dm @@ -59,7 +59,7 @@ SA.del_on_death = FALSE spawned_mobs += SA - SA.AddElement(/datum/element/ghost_role_eligibility) + SA.AddElement(/datum/element/ghost_role_eligibility, penalize_on_ghost = TRUE) to_chat(SA, "Hello world!") to_chat(SA, "Due to freak radiation and/or chemicals \ and/or lucky chance, you have gained human level intelligence \ diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 9c9b131f48..3b8f8de359 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -393,17 +393,13 @@ /datum/spacevine_controller/vv_get_dropdown() . = ..() - . += "---" - .["Delete Vines"] = "?_src_=[REF(src)];[HrefToken()];purge_vines=1" + VV_DROPDOWN_OPTION(VV_HK_SPACEVINE_PURGE, "Delete Vines") -/datum/spacevine_controller/Topic(href, href_list) - if(..() || !check_rights(R_ADMIN, FALSE) || !usr.client.holder.CheckAdminHref(href, href_list)) - return - - if(href_list["purge_vines"]) - if(alert(usr, "Are you sure you want to delete this spacevine cluster?", "Delete Vines", "Yes", "No") != "Yes") - return - DeleteVines() +/datum/spacevine_controller/vv_do_topic(href_list) + . = ..() + if(href_list[VV_HK_SPACEVINE_PURGE]) + if(alert(usr, "Are you sure you want to delete this spacevine cluster?", "Delete Vines", "Yes", "No") == "Yes") + DeleteVines() /datum/spacevine_controller/proc/DeleteVines() //this is kill QDEL_LIST(vines) //this will also qdel us diff --git a/code/modules/events/wizard/aid.dm b/code/modules/events/wizard/aid.dm index 8525674e07..5f49b48900 100644 --- a/code/modules/events/wizard/aid.dm +++ b/code/modules/events/wizard/aid.dm @@ -15,7 +15,7 @@ var/spell_improved = FALSE for(var/obj/effect/proc_holder/spell/S in L.mind.spell_list) if(S.clothes_req) - S.clothes_req = 0 + S.clothes_req = NONE spell_improved = TRUE if(spell_improved) to_chat(L, "You suddenly feel like you never needed those garish robes in the first place...") diff --git a/code/modules/food_and_drinks/food/snacks_egg.dm b/code/modules/food_and_drinks/food/snacks_egg.dm index 0f2856c090..fbed6327b5 100644 --- a/code/modules/food_and_drinks/food/snacks_egg.dm +++ b/code/modules/food_and_drinks/food/snacks_egg.dm @@ -41,7 +41,7 @@ /obj/item/reagent_containers/food/snacks/egg/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/toy/crayon)) var/obj/item/toy/crayon/C = W - var/clr = C.item_color + var/clr = C.crayon_color if(!(clr in list("blue", "green", "mime", "orange", "purple", "rainbow", "red", "yellow"))) to_chat(usr, "[src] refuses to take on this colour!") @@ -49,41 +49,32 @@ to_chat(usr, "You colour [src] with [W].") icon_state = "egg-[clr]" - item_color = clr else ..() /obj/item/reagent_containers/food/snacks/egg/blue icon_state = "egg-blue" - item_color = "blue" /obj/item/reagent_containers/food/snacks/egg/green icon_state = "egg-green" - item_color = "green" /obj/item/reagent_containers/food/snacks/egg/mime icon_state = "egg-mime" - item_color = "mime" /obj/item/reagent_containers/food/snacks/egg/orange icon_state = "egg-orange" - item_color = "orange" /obj/item/reagent_containers/food/snacks/egg/purple icon_state = "egg-purple" - item_color = "purple" /obj/item/reagent_containers/food/snacks/egg/rainbow icon_state = "egg-rainbow" - item_color = "rainbow" /obj/item/reagent_containers/food/snacks/egg/red icon_state = "egg-red" - item_color = "red" /obj/item/reagent_containers/food/snacks/egg/yellow icon_state = "egg-yellow" - item_color = "yellow" /obj/item/reagent_containers/food/snacks/friedegg name = "fried egg" diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 2adff414e8..a8bb6dc187 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -287,7 +287,7 @@ /obj/machinery/microwave/proc/loop(type, time, wait = max(12 - 2 * efficiency, 2)) // standard wait is 10 if(stat & (NOPOWER|BROKEN)) - if(MICROWAVE_PRE) + if(type == MICROWAVE_PRE) pre_fail() return if(!time) @@ -353,4 +353,4 @@ #undef MICROWAVE_NORMAL #undef MICROWAVE_MUCK -#undef MICROWAVE_PRE \ No newline at end of file +#undef MICROWAVE_PRE diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index b163c6ba97..94c8d7219c 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -86,8 +86,8 @@ tag_overlay.pixel_y = boxes.len * 3 add_overlay(tag_overlay) -/obj/item/pizzabox/worn_overlays(isinhands, icon_file, style_flags = NONE) - . = list() +/obj/item/pizzabox/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) + . = ..() var/current_offset = 2 if(isinhands) for(var/V in boxes) //add EXTRA BOX per box diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index 5f2d92fc93..94c13999ba 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -113,8 +113,6 @@ . = ..() var/eggcolor = pick("blue","green","mime","orange","purple","rainbow","red","yellow") icon_state = "egg-[eggcolor]" - item_color = "[eggcolor]" - /obj/item/reagent_containers/food/snacks/egg/proc/dispensePrize(turf/where) var/won = pick(/obj/item/clothing/head/bunnyhead, /obj/item/clothing/suit/bunnysuit, diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index 638d1427bc..7f6d48e731 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -390,7 +390,7 @@ desc = "A jacqueline o' lantern! You can't seem to get rid of it." icon_state = "hardhat0_pumpkin_j" item_state = "hardhat0_pumpkin_j" - item_color = "pumpkin_j" + hat_type = "pumpkin_j" brightness_on = 4 /obj/item/clothing/head/hardhat/pumpkinhead/jaqc/Initialize() diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index 9fb97c08a7..316bdb8289 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -63,23 +63,34 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars_by_type, typecacheof_assoc_list(list( var/src_min_x = 99999 var/src_min_y = 99999 + var/src_max_x = 0 + var/src_max_y = 0 var/list/refined_src = new/list() for (var/turf/T in turfs_src) src_min_x = min(src_min_x,T.x) src_min_y = min(src_min_y,T.y) + src_max_x = max(src_max_x,T.y) + src_max_y = max(src_max_y,T.y) for (var/turf/T in turfs_src) refined_src[T] = "[T.x - src_min_x].[T.y - src_min_y]" var/trg_min_x = 99999 var/trg_min_y = 99999 + var/trg_max_x = 0 + var/trg_max_y = 0 var/list/refined_trg = new/list() for (var/turf/T in turfs_trg) trg_min_x = min(trg_min_x,T.x) trg_min_y = min(trg_min_y,T.y) + trg_max_x = max(trg_max_x,T.y) + trg_max_y = max(trg_max_y,T.y) + + var/diff_x = round(((src_max_x - src_min_x) - (trg_max_x - trg_min_x))/2) + var/diff_y = round(((src_max_y - src_min_y) - (trg_max_y - trg_min_y))/2) for (var/turf/T in turfs_trg) - refined_trg["[T.x - trg_min_x].[T.y - trg_min_y]"] = T + refined_trg["[T.x - trg_min_x + diff_x].[T.y - trg_min_y + diff_y]"] = T var/list/toupdate = new/list() diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index b5cbed8b79..3c87082393 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -2,7 +2,10 @@ Holodeck Update The on-station holodeck area is of type [holodeck_type]. - All subtypes of [program_type] are loaded into the program cache or emag programs list. + All types found in GLOB.holodeck_areas_per_comp_type[src.type], generated on make_datum_references_lists(), + are loaded into the program cache or emag programs list. + Paths with their abstract_type variable equal to themselves will be skipped. + If init_program is null, a random program will be loaded on startup. If you don't wish this, set it to the offline program or another of your choosing. @@ -12,7 +15,6 @@ 3) Create a new control console that uses those areas Non-mapped areas should be skipped but you should probably comment them out anyway. - The base of program_type will always be ignored; only subtypes will be loaded. */ #define HOLODECK_CD 25 @@ -35,7 +37,6 @@ // Splitting this up allows two holodecks of the same size // to use the same source patterns. Y'know, if you want to. var/holodeck_type = /area/holodeck/rec_center // locate(this) to get the target holodeck - var/program_type = /area/holodeck/rec_center // subtypes of this (but not this itself) are loadable programs var/active = FALSE var/damaged = FALSE @@ -181,7 +182,7 @@ return ..() /obj/machinery/computer/holodeck/proc/generate_program_list() - for(var/typekey in subtypesof(program_type)) + for(var/typekey in GLOB.holodeck_areas_prototypes[type]) var/area/holodeck/A = GLOB.areas_by_type[typekey] if(!A || !A.contents.len) continue diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index 884769ebd4..3fac417605 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -24,33 +24,34 @@ hitsound = "swing_hit" armour_penetration = 50 var/active = 0 + var/saber_color /obj/item/holo/esword/green/Initialize() . = ..() - item_color = "green" + saber_color = "green" /obj/item/holo/esword/red/Initialize() . = ..() - item_color = "red" + saber_color = "red" -/obj/item/holo/esword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(active) +/obj/item/holo/esword/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!active) return ..() - return 0 + return ..() /obj/item/holo/esword/attack(target as mob, mob/user as mob) ..() /obj/item/holo/esword/Initialize() . = ..() - item_color = pick("red","blue","green","purple") + saber_color = pick("red","blue","green","purple") /obj/item/holo/esword/attack_self(mob/living/user as mob) active = !active if (active) force = 30 - icon_state = "sword[item_color]" + icon_state = "sword[saber_color]" w_class = WEIGHT_CLASS_BULKY hitsound = 'sound/weapons/blade1.ogg' playsound(user, 'sound/weapons/saberon.ogg', 20, 1) diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm index 80792538d6..eba7a3d3c4 100644 --- a/code/modules/hydroponics/grown/berries.dm +++ b/code/modules/hydroponics/grown/berries.dm @@ -90,7 +90,7 @@ lifespan = 30 endurance = 25 mutatelist = list() - genes = list(/datum/plant_gene/trait/glow/white, /datum/plant_gene/trait/noreact, /datum/plant_gene/trait/repeated_harvest) + genes = list(/datum/plant_gene/trait/glow/white, /datum/plant_gene/trait/repeated_harvest) reagents_add = list(/datum/reagent/uranium = 0.25, /datum/reagent/iodine = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) rarity = 20 diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 44abb4939b..f356ed7b68 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -492,9 +492,6 @@ return var/turf/T = get_turf(src) reagents.chem_temp = 1000 - //Disable seperated contents when the grenade primes - if (seed.get_gene(/datum/plant_gene/trait/noreact)) - DISABLE_BITFIELD(reagents.reagents_holder_flags, NO_REACT) reagents.handle_reactions() log_game("Coconut bomb detonation at [AREACOORD(T)], location [loc]") qdel(src) diff --git a/code/modules/hydroponics/grown/tobacco.dm b/code/modules/hydroponics/grown/tobacco.dm index 1e2d25d825..db929d45fb 100644 --- a/code/modules/hydroponics/grown/tobacco.dm +++ b/code/modules/hydroponics/grown/tobacco.dm @@ -34,6 +34,7 @@ mutatelist = list() reagents_add = list(/datum/reagent/medicine/salbutamol = 0.05, /datum/reagent/drug/nicotine = 0.08, /datum/reagent/consumable/nutriment = 0.03) rarity = 20 + genes = list(/datum/plant_gene/trait/smoke) //get it? because you smoke tobacco? i'm hilarious. /obj/item/reagent_containers/food/snacks/grown/tobacco/space seed = /obj/item/seeds/tobacco/space diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index b3ec36e0bb..ef2eff707f 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -216,6 +216,10 @@ name = "Liquid Contents" examine_line = "It has a lot of liquid contents inside." +/datum/plant_gene/trait/squash/on_slip(obj/item/reagent_containers/food/snacks/grown/G, mob/living/carbon/C) + // Squash the plant on slip. + G.squash(C) + /datum/plant_gene/trait/slip // Makes plant slippery, unless it has a grown-type trash. Then the trash gets slippery. // Applies other trait effects (teleporting, etc) to the target by on_slip. @@ -301,6 +305,9 @@ rate = 0.04 glow_color = "#AAD84B" +/datum/plant_gene/trait/glow/shadow/glow_power(obj/item/seeds/S) + return -max(S.potency*(rate*0.2), 0.2) + /datum/plant_gene/trait/glow/white name = "White Bioluminescence" glow_color = "#FFFFFF" @@ -361,20 +368,6 @@ new /obj/effect/decal/cleanable/molten_object(T) //Leave a pile of goo behind for dramatic effect... qdel(G) - -/datum/plant_gene/trait/noreact - // Makes plant reagents not react until squashed. - name = "Separated Chemicals" - -/datum/plant_gene/trait/noreact/on_new(obj/item/reagent_containers/food/snacks/grown/G, newloc) - ..() - ENABLE_BITFIELD(G.reagents.reagents_holder_flags, NO_REACT) - -/datum/plant_gene/trait/noreact/on_squash(obj/item/reagent_containers/food/snacks/grown/G, atom/target) - DISABLE_BITFIELD(G.reagents.reagents_holder_flags, NO_REACT) - G.reagents.handle_reactions() - - /datum/plant_gene/trait/maxchem // 2x to max reagents volume. name = "Densified Chemicals" diff --git a/code/modules/instruments/instrument_data/_instrument_data.dm b/code/modules/instruments/instrument_data/_instrument_data.dm new file mode 100644 index 0000000000..447bcdffb1 --- /dev/null +++ b/code/modules/instruments/instrument_data/_instrument_data.dm @@ -0,0 +1,107 @@ +/proc/path_to_instrument_ids(path) + if(!ispath(path)) + path = text2path(path) + if(!ispath(path)) + return + if(!ispath(path, /datum/instrument)) + return + . = list() + for(var/i in typesof(path)) + var/datum/instrument/I = i + var/init_id = initial(I.id) + if(init_id) + . |= init_id + +/// Get all non admin_only instruments. +/proc/get_allowed_instrument_ids() + . = list() + for(var/id in SSinstruments.instrument_data) + var/datum/instrument/I = SSinstruments.instrument_data[id] + if(!I.admin_only) + . += I.id + +/datum/instrument + /// Name of the instrument + var/name = "Generic instrument" + /// Uniquely identifies this instrument so runtime changes are possible as opposed to paths. If this is unset, things will use path instead. + var/id + /// Category + var/category = "Unsorted" + /// Used for categorization subtypes + var/abstract_type = /datum/instrument + /// Write here however many samples, follow this syntax: "%note num%"='%sample file%' eg. "27"='synthesizer/e2.ogg'. Key must never be lower than 0 and higher than 127 + var/list/real_samples + /// assoc list key = /datum/instrument_key. do not fill this yourself! + var/list/samples + /// See __DEFINES/flags/instruments.dm + var/instrument_flags = NONE + /// For legacy instruments, the path to our notes + var/legacy_instrument_path + /// For legacy instruments, our file extension + var/legacy_instrument_ext + /// What songs are using us + var/list/datum/song/songs_using = list() + /// Don't touch this + var/static/HIGHEST_KEY = 127 + /// Don't touch this x2 + var/static/LOWEST_KEY = 0 + /// Oh no - For truly troll instruments. + var/admin_only = FALSE + /// Volume multiplier. Synthesized instruments are quite loud and I don't like to cut off potential detail via editing. (someone correct me if this isn't a thing) + var/volume_multiplier = 1/3 + +/datum/instrument/New() + if(isnull(id)) + id = "[type]" + +/datum/instrument/proc/Initialize() + if(CHECK_BITFIELD(instrument_flags, INSTRUMENT_LEGACY | INSTRUMENT_DO_NOT_AUTOSAMPLE)) + return + calculate_samples() + +/datum/instrument/proc/ready() + if(CHECK_BITFIELD(instrument_flags, INSTRUMENT_LEGACY)) + return legacy_instrument_path && legacy_instrument_ext + else if(CHECK_BITFIELD(instrument_flags, INSTRUMENT_DO_NOT_AUTOSAMPLE)) + return length(samples) + return (length(samples) >= 128) + +/datum/instrument/Destroy() + SSinstruments.instrument_data -= id + for(var/i in songs_using) + var/datum/song/S = i + S.set_instrument(null) + real_samples = null + samples = null + songs_using = null + return ..() + +/datum/instrument/proc/calculate_samples() + if(!length(real_samples)) + CRASH("No real samples defined for [id] [type] on calculate_samples() call.") + var/list/real_keys = list() + samples = list() + for(var/key in real_samples) + real_keys += text2num(key) + sortTim(real_keys, /proc/cmp_numeric_asc, associative = FALSE) + + for(var/i in 1 to (length(real_keys) - 1)) + var/from_key = real_keys[i] + var/to_key = real_keys[i+1] + var/sample1 = real_samples[num2text(from_key)] + var/sample2 = real_samples[num2text(to_key)] + var/pivot = FLOOR((from_key + to_key) / 2, 1) //original code was a round but I replaced it because that's effectively a floor, thanks Baystation! who knows what was intended. + for(var/key in from_key to pivot) + samples[num2text(key)] = new /datum/instrument_key(sample1, key, key - from_key) + for(var/key in (pivot + 1) to to_key) + samples[num2text(key)] = new /datum/instrument_key(sample2, key, key - to_key) + + // Fill in 0 to first key and last key to 127 + var/first_key = real_keys[1] + var/last_key = real_keys[length(real_keys)] + var/first_sample = real_samples[num2text(first_key)] + var/last_sample = real_samples[num2text(last_key)] + for(var/key in LOWEST_KEY to (first_key - 1)) + samples[num2text(key)] = new /datum/instrument_key(first_sample, key, key - first_key) + for(var/key in last_key to HIGHEST_KEY) + samples[num2text(key)] = new /datum/instrument_key(last_sample, key, key - last_key) diff --git a/code/modules/instruments/instrument_data/_instrument_key.dm b/code/modules/instruments/instrument_data/_instrument_key.dm new file mode 100644 index 0000000000..012270ae11 --- /dev/null +++ b/code/modules/instruments/instrument_data/_instrument_key.dm @@ -0,0 +1,20 @@ +/datum/instrument_key + var/key //1 to 127 + var/sample //file + var/frequency //frequency generated + var/deviation //deviation up/down towards pivot from sample (??) + +/datum/instrument_key/New(sample = src.sample, key = src.key, deviation = src.deviation, frequency = src.frequency) + src.sample = sample + src.key = key + src.deviation = deviation + src.frequency = frequency + if(!frequency && deviation) + calculate() + +/datum/instrument_key/proc/calculate() + if(!deviation) + CRASH("Invalid calculate call: No deviation or sample in instrument_key") + #define KEY_TWELTH (1/12) + frequency = 2 ** (KEY_TWELTH * deviation) + #undef KEY_TWELTH diff --git a/code/modules/instruments/instrument_data/brass.dm b/code/modules/instruments/instrument_data/brass.dm new file mode 100644 index 0000000000..7f8f103831 --- /dev/null +++ b/code/modules/instruments/instrument_data/brass.dm @@ -0,0 +1,26 @@ +/datum/instrument/brass + name = "Generic brass instrument" + category = "Brass" + abstract_type = /datum/instrument/brass + +/datum/instrument/brass/crisis_section + name = "Crisis Brass Section" + id = "crbrass" + real_samples = list("36"='sound/instruments/synthesis_samples/brass/crisis_brass/c2.ogg', + "48"='sound/instruments/synthesis_samples/brass/crisis_brass/c3.ogg', + "60"='sound/instruments/synthesis_samples/brass/crisis_brass/c4.ogg', + "72"='sound/instruments/synthesis_samples/brass/crisis_brass/c5.ogg') + +/datum/instrument/brass/crisis_trombone + name = "Crisis Trombone" + id = "crtrombone" + real_samples = list("36"='sound/instruments/synthesis_samples/brass/crisis_trombone/c2.ogg', + "48"='sound/instruments/synthesis_samples/brass/crisis_trombone/c3.ogg', + "60"='sound/instruments/synthesis_samples/brass/crisis_trombone/c4.ogg', + "72"='sound/instruments/synthesis_samples/brass/crisis_trombone/c5.ogg') + +/datum/instrument/brass/crisis_trumpet + name = "Crisis Trumpet" + id = "crtrumpet" + real_samples = list("60"='sound/instruments/synthesis_samples/brass/crisis_trumpet/c4.ogg', + "72"='sound/instruments/synthesis_samples/brass/crisis_trumpet/c5.ogg') diff --git a/code/modules/instruments/instrument_data/chromatic_percussion.dm b/code/modules/instruments/instrument_data/chromatic_percussion.dm new file mode 100644 index 0000000000..cafa9e31ed --- /dev/null +++ b/code/modules/instruments/instrument_data/chromatic_percussion.dm @@ -0,0 +1,31 @@ +/datum/instrument/chromatic + name = "Generic chromatic percussion instrument" + category = "Chromatic percussion" + abstract_type = /datum/instrument/chromatic + +/datum/instrument/chromatic/vibraphone1 + name = "Crisis Vibraphone" + id = "crvibr" + real_samples = list("36"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c2.ogg', + "48"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg', + "60"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg', + "72"='sound/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg') + +/datum/instrument/chromatic/musicbox1 + name = "SGM Music Box" + id = "sgmmbox" + real_samples = list("36"='sound/instruments/synthesis_samples/chromatic/sgmbox/c2.ogg', + "48"='sound/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg', + "60"='sound/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg', + "72"='sound/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg') + +/datum/instrument/chromatic/fluid_celeste + name = "FluidR3 Celeste" + id = "r3celeste" + real_samples = list("36"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c2.ogg', + "48"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c3.ogg', + "60"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c4.ogg', + "72"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c5.ogg', + "84"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c6.ogg', + "96"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c7.ogg', + "108"='sound/instruments/synthesis_samples/chromatic/fluid_celeste/c8.ogg') diff --git a/code/modules/instruments/instrument_data/fun.dm b/code/modules/instruments/instrument_data/fun.dm new file mode 100644 index 0000000000..44d78b8ccd --- /dev/null +++ b/code/modules/instruments/instrument_data/fun.dm @@ -0,0 +1,25 @@ +/datum/instrument/fun + name = "Generic Fun Instrument" + category = "Fun" + abstract_type = /datum/instrument/fun + +/datum/instrument/fun/honk + name = "!!HONK!!" + id = "honk" + real_samples = list("74"='sound/items/bikehorn.ogg') // Cluwne Heaven + +/datum/instrument/fun/signal + name = "Ping" + id = "ping" + real_samples = list("79"='sound/machines/ping.ogg') + +/datum/instrument/fun/chime + name = "Chime" + id = "chime" + real_samples = list("79"='sound/machines/chime.ogg') + +/datum/instrument/fun/nya + name = "NYA NYA NYA" + id = "nyanyanya" + real_samples = list("79" = 'modular_citadel/sound/voice/nya.ogg') + admin_only = TRUE diff --git a/code/modules/instruments/instrument_data/guitar.dm b/code/modules/instruments/instrument_data/guitar.dm new file mode 100644 index 0000000000..be7cfbe467 --- /dev/null +++ b/code/modules/instruments/instrument_data/guitar.dm @@ -0,0 +1,36 @@ +/datum/instrument/guitar + name = "Generic guitar-like instrument" + category = "Guitar" + abstract_type = /datum/instrument/guitar + +/datum/instrument/guitar/steel_crisis + name = "Crisis Steel String Guitar" + id = "csteelgt" + real_samples = list("36"='sound/instruments/synthesis_samples/guitar/crisis_steel/c2.ogg', + "48"='sound/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg', + "60"='sound/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg', + "72"='sound/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg') + +/datum/instrument/guitar/nylon_crisis + name = "Crisis Nylon String Guitar" + id = "cnylongt" + real_samples = list("36"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c2.ogg', + "48"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg', + "60"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg', + "72"='sound/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg') + +/datum/instrument/guitar/clean_crisis + name = "Crisis Clean Guitar" + id = "ccleangt" + real_samples = list("36"='sound/instruments/synthesis_samples/guitar/crisis_clean/c2.ogg', + "48"='sound/instruments/synthesis_samples/guitar/crisis_clean/c3.ogg', + "60"='sound/instruments/synthesis_samples/guitar/crisis_clean/c4.ogg', + "72"='sound/instruments/synthesis_samples/guitar/crisis_clean/c5.ogg') + +/datum/instrument/guitar/muted_crisis + name = "Crisis Muted Guitar" + id = "cmutedgt" + real_samples = list("36"='sound/instruments/synthesis_samples/guitar/crisis_muted/c2.ogg', + "48"='sound/instruments/synthesis_samples/guitar/crisis_muted/c3.ogg', + "60"='sound/instruments/synthesis_samples/guitar/crisis_muted/c4.ogg', + "72"='sound/instruments/synthesis_samples/guitar/crisis_muted/c5.ogg') diff --git a/code/modules/instruments/instrument_data/hardcoded.dm b/code/modules/instruments/instrument_data/hardcoded.dm new file mode 100644 index 0000000000..757fea08a8 --- /dev/null +++ b/code/modules/instruments/instrument_data/hardcoded.dm @@ -0,0 +1,86 @@ +//THESE ARE HARDCODED INSTRUMENT SAMPLES. +//SONGS WILL BE AUTOMATICALLY SWITCHED TO LEGACY MODE IF THEY USE THIS KIND OF INSTRUMENT! +//I'd prefer these stayed. They sound different from the mechanical synthesis of synthed instruments, and I quite like them that way. It's not legacy, it's hardcoded, old style. - kevinz000 +/datum/instrument/hardcoded + abstract_type = /datum/instrument/hardcoded + category = "Non-Synthesized" + instrument_flags = INSTRUMENT_LEGACY + volume_multiplier = 1 //not as loud as synth'd + +/datum/instrument/hardcoded/accordian + name = "Accordian" + id = "accordian" + legacy_instrument_ext = "mid" + legacy_instrument_path = "accordian" + +/datum/instrument/hardcoded/bikehorn + name = "Bike Horn" + id = "bikehorn" + legacy_instrument_ext = "ogg" + legacy_instrument_path = "bikehorn" + +/datum/instrument/hardcoded/eguitar + name = "Electric Guitar" + id = "eguitar" + legacy_instrument_ext = "ogg" + legacy_instrument_path = "eguitar" + +/datum/instrument/hardcoded/glockenspiel + name = "Glockenspiel" + id = "glockenspiel" + legacy_instrument_ext = "mid" + legacy_instrument_path = "glockenspiel" + +/datum/instrument/hardcoded/guitar + name = "Guitar" + id = "guitar" + legacy_instrument_ext = "ogg" + legacy_instrument_path = "guitar" + +/datum/instrument/hardcoded/harmonica + name = "Harmonica" + id = "harmonica" + legacy_instrument_ext = "mid" + legacy_instrument_path = "harmonica" + +/datum/instrument/hardcoded/piano + name = "Piano" + id = "piano" + legacy_instrument_ext = "ogg" + legacy_instrument_path = "piano" + +/datum/instrument/hardcoded/recorder + name = "Recorder" + id = "recorder" + legacy_instrument_ext = "mid" + legacy_instrument_path = "recorder" + +/datum/instrument/hardcoded/saxophone + name = "Saxophone" + id = "saxophone" + legacy_instrument_ext = "mid" + legacy_instrument_path = "saxophone" + +/datum/instrument/hardcoded/trombone + name = "Trombone" + id = "trombone" + legacy_instrument_ext = "mid" + legacy_instrument_path = "trombone" + +/datum/instrument/hardcoded/violin + name = "Violin" + id = "violin" + legacy_instrument_ext = "mid" + legacy_instrument_path = "violin" + +/datum/instrument/hardcoded/xylophone + name = "Xylophone" + id = "xylophone" + legacy_instrument_ext = "mid" + legacy_instrument_path = "xylophone" + +/datum/instrument/hardcoded/banjo + name = "Banjo" + id = "banjo" + legacy_instrument_ext = "ogg" + legacy_instrument_path = "banjo" diff --git a/code/modules/instruments/instrument_data/organ.dm b/code/modules/instruments/instrument_data/organ.dm new file mode 100644 index 0000000000..25da740998 --- /dev/null +++ b/code/modules/instruments/instrument_data/organ.dm @@ -0,0 +1,43 @@ +/datum/instrument/organ + name = "Generic organ" + category = "Organ" + abstract_type = /datum/instrument/organ + +/datum/instrument/organ/crisis_church + name = "Crisis Church Organ" + id = "crichugan" + real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_church/c2.ogg', + "48"='sound/instruments/synthesis_samples/organ/crisis_church/c3.ogg', + "60"='sound/instruments/synthesis_samples/organ/crisis_church/c4.ogg', + "72"='sound/instruments/synthesis_samples/organ/crisis_church/c5.ogg') + +/datum/instrument/organ/crisis_hammond + name = "Crisis Hammond Organ" + id = "crihamgan" + real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_hammond/c2.ogg', + "48"='sound/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg', + "60"='sound/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg', + "72"='sound/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg') + +/datum/instrument/organ/crisis_accordian + name = "Crisis Accordian" + id = "crack" + real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg', + "48"='sound/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg', + "60"='sound/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg', + "72"='sound/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg') + +/datum/instrument/organ/crisis_harmonica + name = "Crisis Harmonica" + id = "crharmony" + real_samples = list("48"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c3.ogg', + "60"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg', + "72"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg') + +/datum/instrument/organ/crisis_tango_accordian + name = "Crisis Tango Accordian" + id = "crtango" + real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg', + "48"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg', + "60"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg', + "72"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg') diff --git a/code/modules/instruments/instrument_data/piano.dm b/code/modules/instruments/instrument_data/piano.dm new file mode 100644 index 0000000000..fdd2f6e938 --- /dev/null +++ b/code/modules/instruments/instrument_data/piano.dm @@ -0,0 +1,56 @@ +/datum/instrument/piano + name = "Generic piano" + category = "Piano" + abstract_type = /datum/instrument/piano + +/datum/instrument/piano/fluid_piano + name = "FluidR3 Grand Piano" + id = "r3grand" + real_samples = list("36"='sound/instruments/synthesis_samples/piano/fluid_piano/c2.ogg', + "48"='sound/instruments/synthesis_samples/piano/fluid_piano/c3.ogg', + "60"='sound/instruments/synthesis_samples/piano/fluid_piano/c4.ogg', + "72"='sound/instruments/synthesis_samples/piano/fluid_piano/c5.ogg', + "84"='sound/instruments/synthesis_samples/piano/fluid_piano/c6.ogg', + "96"='sound/instruments/synthesis_samples/piano/fluid_piano/c7.ogg', + "108"='sound/instruments/synthesis_samples/piano/fluid_piano/c8.ogg') + +/datum/instrument/piano/fluid_harpsichord + name = "FluidR3 Harpsichord" + id = "r3harpsi" + real_samples = list("36"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c2.ogg', + "48"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c3.ogg', + "60"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c4.ogg', + "72"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c5.ogg', + "84"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c6.ogg', + "96"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c7.ogg', + "108"='sound/instruments/synthesis_samples/piano/fluid_harpsi/c8.ogg') + +/datum/instrument/piano/crisis_harpsichord + name = "Crisis Harpsichord" + id = "crharpsi" + real_samples = list("36"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c2.ogg', + "48"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg', + "60"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg', + "72"='sound/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg') + +/datum/instrument/piano/crisis_grandpiano_uni + name = "Crisis Grand Piano One" + id = "crgrand1" + real_samples = list("36"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c2.ogg', + "48"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg', + "60"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg', + "72"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg', + "84"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg', + "96"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg', + "108"='sound/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg') + +/datum/instrument/piano/crisis_brightpiano_uni + name = "Crisis Bright Piano One" + id = "crbright1" + real_samples = list("36"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c2.ogg', + "48"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg', + "60"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg', + "72"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg', + "84"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg', + "96"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg', + "108"='sound/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg') diff --git a/code/modules/instruments/instrument_data/synth_tones.dm b/code/modules/instruments/instrument_data/synth_tones.dm new file mode 100644 index 0000000000..9ad9250f40 --- /dev/null +++ b/code/modules/instruments/instrument_data/synth_tones.dm @@ -0,0 +1,19 @@ +/datum/instrument/tones + name = "Ideal tone" + category = "Tones" + abstract_type = /datum/instrument/tones + +/datum/instrument/tones/square_wave + name = "Ideal square wave" + id = "square" + real_samples = list("81"='sound/instruments/synthesis_samples/tones/Square.ogg') + +/datum/instrument/tones/sine_wave + name = "Ideal sine wave" + id = "sine" + real_samples = list("81"='sound/instruments/synthesis_samples/tones/Sine.ogg') + +/datum/instrument/tones/saw_wave + name = "Ideal sawtooth wave" + id = "saw" + real_samples = list("81"='sound/instruments/synthesis_samples/tones/Sawtooth.ogg') diff --git a/code/game/objects/items/devices/instruments.dm b/code/modules/instruments/instruments/item.dm similarity index 78% rename from code/game/objects/items/devices/instruments.dm rename to code/modules/instruments/instruments/item.dm index 8dedc2cb86..fa3e75e431 100644 --- a/code/game/objects/items/devices/instruments.dm +++ b/code/modules/instruments/instruments/item.dm @@ -1,83 +1,80 @@ //copy pasta of the space piano, don't hurt me -Pete /obj/item/instrument name = "generic instrument" - resistance_flags = FLAMMABLE force = 10 max_integrity = 100 + resistance_flags = FLAMMABLE icon = 'icons/obj/musician.dmi' lefthand_file = 'icons/mob/inhands/equipment/instruments_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/instruments_righthand.dmi' var/datum/song/handheld/song - var/instrumentId = "generic" - var/instrumentExt = "mid" - var/tune_time = 0 - -/obj/item/instrument/Initialize() - . = ..() - song = new(instrumentId, src, instrumentExt) - -/obj/item/instrument/Destroy() - if (tune_time) - STOP_PROCESSING(SSobj, src) - qdel(song) - song = null - return ..() - -/obj/item/instrument/suicide_act(mob/user) - user.visible_message("[user] begins to play 'Gloomy Sunday'! It looks like [user.p_theyre()] trying to commit suicide!") - return (BRUTELOSS) + var/list/allowed_instrument_ids + var/tune_time_left = 0 /obj/item/instrument/Initialize(mapload) . = ..() - if(mapload) - song.tempo = song.sanitize_tempo(song.tempo) // tick_lag isn't set when the map is loaded + song = new(src, allowed_instrument_ids) + allowed_instrument_ids = null //We don't need this clogging memory after it's used. -/obj/item/instrument/attack_self(mob/user) - if(!user.IsAdvancedToolUser()) - to_chat(user, "You don't have the dexterity to do this!") - return 1 - interact(user) +/obj/item/instrument/Destroy() + QDEL_NULL(song) + if(tune_time_left) + STOP_PROCESSING(SSprocessing, src) + return ..() -/obj/item/instrument/interact(mob/user) - ui_interact(user) +/obj/item/instrument/proc/should_stop_playing(mob/user) + return !user.CanReach(src) || !user.canUseTopic(src, FALSE, TRUE, FALSE, FALSE) -/obj/item/instrument/ui_interact(mob/user) - if(!user) - return - - if(!isliving(user) || user.stat || user.restrained() || user.lying) - return - - user.set_machine(src) - song.interact(user) - -/obj/item/instrument/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/musicaltuner)) - var/mob/living/carbon/human/H = user - if (HAS_TRAIT(H, TRAIT_MUSICIAN)) - if (!tune_time) - H.visible_message("[H] tunes the [src] to perfection!", "You tune the [src] to perfection!") - tune_time = 300 - START_PROCESSING(SSobj, src) - else - to_chat(H, "[src] is already well tuned!") - else - to_chat(H, "You have no idea how to use this.") - -/obj/item/instrument/process() - if (tune_time) +/obj/item/instrument/process(wait) + if(is_tuned()) if (song.playing) for (var/mob/living/M in song.hearing_mobs) M.dizziness = max(0,M.dizziness-2) M.jitteriness = max(0,M.jitteriness-2) M.confused = max(M.confused-1) SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "goodmusic", /datum/mood_event/goodmusic) - tune_time-- + tune_time_left -= wait else - if (!tune_time) - if (song.playing) - loc.visible_message("[src] starts sounding a little off...") - STOP_PROCESSING(SSobj, src) + tune_time_left = 0 + if (song.playing) + loc.visible_message("[src] starts sounding a little off...") + STOP_PROCESSING(SSprocessing, src) + +/obj/item/instrument/suicide_act(mob/user) + user.visible_message("[user] begins to play 'Gloomy Sunday'! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + +/obj/item/instrument/attack_self(mob/user) + if(!user.IsAdvancedToolUser()) + to_chat(user, "You don't have the dexterity to do this!") + return TRUE + interact(user) + +/obj/item/instrument/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/musicaltuner)) + var/mob/living/carbon/human/H = user + if (HAS_TRAIT(H, TRAIT_MUSICIAN)) + if (!is_tuned()) + H.visible_message("[H] tunes the [src] to perfection!", "You tune the [src] to perfection!") + tune_time_left = 600 SECONDS + START_PROCESSING(SSprocessing, src) + else + to_chat(H, "[src] is already well tuned!") + else + to_chat(H, "You have no idea how to use this.") + +/obj/item/instrument/proc/is_tuned() + return tune_time_left > 0 + +/obj/item/instrument/interact(mob/user) + ui_interact(user) + +/obj/item/instrument/ui_interact(mob/living/user) + if(!isliving(user) || user.stat || user.restrained()) + return + + user.set_machine(src) + song.ui_interact(user) /obj/item/instrument/violin name = "space violin" @@ -85,7 +82,7 @@ icon_state = "violin" item_state = "violin" hitsound = "swing_hit" - instrumentId = "violin" + allowed_instrument_ids = "violin" /obj/item/instrument/violin/golden name = "golden violin" @@ -99,40 +96,20 @@ desc = "An advanced electronic synthesizer that can be used as various instruments." icon_state = "synth" item_state = "synth" - instrumentId = "piano" - instrumentExt = "ogg" - var/static/list/insTypes = list("accordion" = "mid", "bikehorn" = "ogg", "glockenspiel" = "mid", "banjo" = "ogg", "guitar" = "ogg", "harmonica" = "mid", "piano" = "ogg", "recorder" = "mid", "saxophone" = "mid", "trombone" = "mid", "violin" = "mid", "xylophone" = "mid") //No eguitar you ear-rapey fuckers. - actions_types = list(/datum/action/item_action/synthswitch) + allowed_instrument_ids = "piano" -/obj/item/instrument/piano_synth/proc/changeInstrument(name = "piano") - song.instrumentDir = name - song.instrumentExt = insTypes[name] - -/obj/item/instrument/piano_synth/proc/selectInstrument() // Moved here so it can be used by the action and PAI software panel without copypasta - var/chosen = input("Choose the type of instrument you want to use", "Instrument Selection", song.instrumentDir) as null|anything in insTypes - if(!insTypes[chosen]) - return - return changeInstrument(chosen) - -/obj/item/instrument/banjo - name = "banjo" - desc = "A 'Mura' brand banjo. It's pretty much just a drum with a neck and strings." - icon_state = "banjo" - item_state = "banjo" - instrumentExt = "ogg" - attack_verb = list("scruggs-styled", "hum-diggitied", "shin-digged", "clawhammered") - hitsound = 'sound/weapons/banjoslap.ogg' - instrumentId = "banjo" +/obj/item/instrument/piano_synth/Initialize() + . = ..() + song.allowed_instrument_ids = get_allowed_instrument_ids() /obj/item/instrument/guitar name = "guitar" desc = "It's made of wood and has bronze strings." icon_state = "guitar" item_state = "guitar" - instrumentExt = "ogg" attack_verb = list("played metal on", "serenaded", "crashed", "smashed") hitsound = 'sound/weapons/stringsmash.ogg' - instrumentId = "guitar" + allowed_instrument_ids = "guitar" /obj/item/instrument/eguitar name = "electric guitar" @@ -142,29 +119,28 @@ force = 12 attack_verb = list("played metal on", "shredded", "crashed", "smashed") hitsound = 'sound/weapons/stringsmash.ogg' - instrumentId = "eguitar" - instrumentExt = "ogg" + allowed_instrument_ids = "eguitar" /obj/item/instrument/glockenspiel name = "glockenspiel" desc = "Smooth metal bars perfect for any marching band." icon_state = "glockenspiel" item_state = "glockenspiel" - instrumentId = "glockenspiel" + allowed_instrument_ids = "glockenspiel" /obj/item/instrument/accordion name = "accordion" desc = "Pun-Pun not included." icon_state = "accordion" item_state = "accordion" - instrumentId = "accordion" + allowed_instrument_ids = "accordion" /obj/item/instrument/trumpet name = "trumpet" desc = "To announce the arrival of the king!" icon_state = "trumpet" item_state = "trombone" - instrumentId = "trombone" + allowed_instrument_ids = "trombone" /obj/item/instrument/trumpet/spectral name = "spectral trumpet" @@ -172,7 +148,6 @@ icon_state = "trumpet" item_state = "trombone" force = 0 - instrumentId = "trombone" attack_verb = list("played","jazzed","trumpeted","mourned","dooted","spooked") /obj/item/instrument/trumpet/spectral/Initialize() @@ -188,14 +163,13 @@ desc = "This soothing sound will be sure to leave your audience in tears." icon_state = "saxophone" item_state = "saxophone" - instrumentId = "saxophone" + allowed_instrument_ids = "saxophone" /obj/item/instrument/saxophone/spectral name = "spectral saxophone" desc = "This spooky sound will be sure to leave mortals in bones." icon_state = "saxophone" item_state = "saxophone" - instrumentId = "saxophone" force = 0 attack_verb = list("played","jazzed","saxxed","mourned","dooted","spooked") @@ -204,7 +178,7 @@ AddComponent(/datum/component/spooky) /obj/item/instrument/saxophone/spectral/attack(mob/living/carbon/C, mob/user) - playsound (loc, 'sound/instruments/saxophone/En4.mid', 100,1,-1) + playsound(loc, 'sound/instruments/saxophone/En4.mid', 100,1,-1) ..() /obj/item/instrument/trombone @@ -212,12 +186,11 @@ desc = "How can any pool table ever hope to compete?" icon_state = "trombone" item_state = "trombone" - instrumentId = "trombone" + allowed_instrument_ids = "trombone" /obj/item/instrument/trombone/spectral name = "spectral trombone" desc = "A skeleton's favorite instrument. Apply directly on the mortals." - instrumentId = "trombone" icon_state = "trombone" item_state = "trombone" force = 0 @@ -237,14 +210,14 @@ force = 5 icon_state = "recorder" item_state = "recorder" - instrumentId = "recorder" + allowed_instrument_ids = "recorder" /obj/item/instrument/harmonica name = "harmonica" desc = "For when you get a bad case of the space blues." icon_state = "harmonica" item_state = "harmonica" - instrumentId = "harmonica" + allowed_instrument_ids = "harmonica" slot_flags = ITEM_SLOT_MASK force = 5 w_class = WEIGHT_CLASS_SMALL @@ -271,14 +244,22 @@ lefthand_file = 'icons/mob/inhands/equipment/horns_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/horns_righthand.dmi' attack_verb = list("beautifully honks") - instrumentId = "bikehorn" - instrumentExt = "ogg" + allowed_instrument_ids = "bikehorn" w_class = WEIGHT_CLASS_TINY force = 0 throw_speed = 3 throw_range = 15 hitsound = 'sound/items/bikehorn.ogg' +/obj/item/instrument/banjo + name = "banjo" + desc = "A 'Mura' brand banjo. It's pretty much just a drum with a neck and strings." + icon_state = "banjo" + item_state = "banjo" + attack_verb = list("scruggs-styled", "hum-diggitied", "shin-digged", "clawhammered") + hitsound = 'sound/weapons/banjoslap.ogg' + allowed_instrument_ids = "banjo" + /obj/item/musicaltuner name = "musical tuner" desc = "A device for tuning musical instruments both manual and electronic alike." diff --git a/code/modules/instruments/instruments/stationary.dm b/code/modules/instruments/instruments/stationary.dm new file mode 100644 index 0000000000..f236927c38 --- /dev/null +++ b/code/modules/instruments/instruments/stationary.dm @@ -0,0 +1,52 @@ +/obj/structure/musician + name = "Not A Piano" + desc = "Something broke, contact coderbus." + interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT | INTERACT_ATOM_REQUIRES_DEXTERITY + var/can_play_unanchored = FALSE + var/list/allowed_instrument_ids + var/datum/song/song + +/obj/structure/musician/Initialize(mapload) + . = ..() + song = new(src, allowed_instrument_ids) + allowed_instrument_ids = null + +/obj/structure/musician/Destroy() + QDEL_NULL(song) + return ..() + +/obj/structure/musician/proc/should_stop_playing(mob/user) + if(!(anchored || can_play_unanchored)) + return TRUE + if(!user) + return FALSE + return !user.canUseTopic(src, FALSE, TRUE, FALSE, FALSE) //can play with TK and while resting because fun. + +/obj/structure/musician/ui_interact(mob/user) + . = ..() + song.ui_interact(user) + +/obj/structure/musician/wrench_act(mob/living/user, obj/item/I) + default_unfasten_wrench(user, I, 40) + return TRUE + +/obj/structure/musician/piano + name = "space minimoog" + icon = 'icons/obj/musician.dmi' + icon_state = "minimoog" + anchored = TRUE + density = TRUE + +/obj/structure/musician/piano/unanchored + anchored = FALSE + +/obj/structure/musician/piano/Initialize(mapload) + . = ..() + if(prob(50) && icon_state == initial(icon_state)) + name = "space minimoog" + desc = "This is a minimoog, like a space piano, but more spacey!" + icon_state = "minimoog" + else + name = "space piano" + desc = "This is a space piano, like a regular piano, but always in tune! Even if the musician isn't." + icon_state = "piano" diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm new file mode 100644 index 0000000000..67feb14457 --- /dev/null +++ b/code/modules/instruments/songs/_song.dm @@ -0,0 +1,301 @@ +#define MUSICIAN_HEARCHECK_MINDELAY 4 +#define MUSIC_MAXLINES 1000 +#define MUSIC_MAXLINECHARS 300 + +/datum/song + /// Name of the song + var/name = "Untitled" + + /// The atom we're attached to/playing from + var/atom/parent + + /// Our song lines + var/list/lines + + /// delay between notes in deciseconds + var/tempo = 5 + + /// Are we currently playing? + var/playing = FALSE + + /// Are we currently editing? + var/editing = TRUE + /// Is the help screen open? + var/help = FALSE + + /// Repeats left + var/repeat = 0 + /// Maximum times we can repeat + var/max_repeats = 10 + + /// Our volume + var/volume = 75 + /// Max volume + var/max_volume = 75 + /// Min volume - This is so someone doesn't decide it's funny to set it to 0 and play invisible songs. + var/min_volume = 1 + + /// What instruments our built in picker can use. The picker won't show unless this is longer than one. + var/list/allowed_instrument_ids = list("r3grand") + + //////////// Cached instrument variables ///////////// + /// Instrument we are currently using + var/datum/instrument/using_instrument + /// Cached legacy ext for legacy instruments + var/cached_legacy_ext + /// Cached legacy dir for legacy instruments + var/cached_legacy_dir + /// Cached list of samples, referenced directly from the instrument for synthesized instruments + var/list/cached_samples + /// Are we operating in legacy mode (so if the instrument is a legacy instrument) + var/legacy = FALSE + ////////////////////////////////////////////////////// + + /////////////////// Playing variables //////////////// + /** + * Only used in synthesized playback - The chords we compiled. Non assoc list of lists: + * list(list(key1, key2, key3..., tempo_divisor), list(key1, key2..., tempo_divisor), ...) + * tempo_divisor always exists + * if key1 (and so if there's no keys) doesn't exist it's a rest + * Compilation happens when we start playing and is cleared after we finish playing. + */ + var/list/compiled_chords + /// Channel as text = current volume percentage but it's 0 to 100 instead of 0 to 1. + var/list/channels_playing = list() + /// List of channels that aren't being used, as text. This is to prevent unnecessary freeing and reallocations from SSsounds/SSinstruments. + var/list/channels_idle = list() + ////////////////////////////////////////////////////// + + /// Last world.time we checked for who can hear us + var/last_hearcheck = 0 + /// The list of mobs that can hear us + var/list/hearing_mobs + /// If this is enabled, some things won't be strictly cleared when they usually are (liked compiled_chords on play stop) + var/debug_mode = FALSE + /// Last time we processed decay + var/last_process_decay + /// Max sound channels to occupy + var/max_sound_channels = CHANNELS_PER_INSTRUMENT + /// Current channels, so we can save a length() call. + var/using_sound_channels = 0 + /// Last channel to play. text. + var/last_channel_played + /// Should we not decay our last played note? + var/full_sustain_held_note = TRUE + + /////////////////////// DO NOT TOUCH THESE /////////////////// + var/octave_min = INSTRUMENT_MIN_OCTAVE + var/octave_max = INSTRUMENT_MAX_OCTAVE + var/key_min = INSTRUMENT_MIN_KEY + var/key_max = INSTRUMENT_MAX_KEY + var/static/list/note_offset_lookup = list(9, 11, 0, 2, 4, 5, 7) + var/static/list/accent_lookup = list("b" = -1, "s" = 1, "#" = 1, "n" = 0) + ////////////////////////////////////////////////////////////// + + ///////////// !!FUN!! - Only works in synthesized mode! ///////////////// + /// Note numbers to shift. + var/note_shift = 0 + var/note_shift_min = -100 + var/note_shift_max = 100 + var/can_noteshift = TRUE + /// The kind of sustain we're using + var/sustain_mode = SUSTAIN_LINEAR + /// When a note is considered dead if it is below this in volume + var/sustain_dropoff_volume = 0 + /// Total duration of linear sustain for 100 volume note to get to SUSTAIN_DROPOFF + var/sustain_linear_duration = 5 + /// Exponential sustain dropoff rate per decisecond + var/sustain_exponential_dropoff = 1.4 + ////////// DO NOT DIRECTLY SET THESE! + /// Do not directly set, use update_sustain() + var/cached_linear_dropoff = 10 + /// Do not directly set, use update_sustain() + var/cached_exponential_dropoff = 1.045 + ///////////////////////////////////////////////////////////////////////// + +/datum/song/New(atom/parent, list/instrument_ids) + SSinstruments.on_song_new(src) + lines = list() + tempo = sanitize_tempo(tempo) + src.parent = parent + if(instrument_ids) + allowed_instrument_ids = islist(instrument_ids)? instrument_ids : list(instrument_ids) + if(length(allowed_instrument_ids)) + set_instrument(allowed_instrument_ids[1]) + hearing_mobs = list() + volume = clamp(volume, min_volume, max_volume) + update_sustain() + +/datum/song/Destroy() + stop_playing() + SSinstruments.on_song_del(src) + lines = null + using_instrument = null + allowed_instrument_ids = null + parent = null + return ..() + +/datum/song/proc/do_hearcheck() + last_hearcheck = world.time + var/list/old = hearing_mobs.Copy() + hearing_mobs.len = 0 + var/turf/source = get_turf(parent) + for(var/mob/M in get_hearers_in_view(15, source)) + if(!(M?.client?.prefs?.toggles & SOUND_INSTRUMENTS)) + continue + hearing_mobs[M] = get_dist(M, source) + var/list/exited = old - hearing_mobs + for(var/i in exited) + terminate_sound_mob(i) + +/// I can either be a datum, id, or path (if the instrument has no id). +/datum/song/proc/set_instrument(datum/instrument/I) + if(using_instrument) + using_instrument.songs_using -= src + using_instrument = null + cached_samples = null + cached_legacy_ext = null + cached_legacy_dir = null + legacy = null + if(istext(I) || ispath(I)) + I = SSinstruments.instrument_data[I] + if(istype(I)) + using_instrument = I + I.songs_using += src + var/instrument_legacy = CHECK_BITFIELD(I.instrument_flags, INSTRUMENT_LEGACY) + if(instrument_legacy) + cached_legacy_ext = I.legacy_instrument_ext + cached_legacy_dir = I.legacy_instrument_path + legacy = TRUE + else + cached_samples = I.samples + legacy = FALSE + +/// THIS IS A BLOCKING CALL. +/datum/song/proc/start_playing(mob/user) + if(playing) + return + if(!using_instrument?.ready()) + to_chat(user, "An error has occured with [src]. Please reset the instrument.") + return + playing = TRUE + updateDialog() + //we can not afford to runtime, since we are going to be doing sound channel reservations and if we runtime it means we have a channel allocation leak. + //wrap the rest of the stuff to ensure stop_playing() is called. + last_process_decay = world.time + START_PROCESSING(SSinstruments, src) + . = do_play_lines(user) + stop_playing() + +/datum/song/proc/stop_playing() + if(!playing) + return + playing = FALSE + if(!debug_mode) + compiled_chords = null + STOP_PROCESSING(SSinstruments, src) + terminate_all_sounds(TRUE) + hearing_mobs.len = 0 + updateDialog() + +/// THIS IS A BLOCKING CALL. +/datum/song/proc/do_play_lines(user) + if(!playing) + return + do_hearcheck() + if(legacy) + do_play_lines_legacy(user) + else + do_play_lines_synthesized(user) + +/datum/song/proc/should_stop_playing(mob/user) + return QDELETED(parent) || !using_instrument || !playing + +/datum/song/proc/sanitize_tempo(new_tempo) + new_tempo = abs(new_tempo) + return CLAMP(round(new_tempo, world.tick_lag), world.tick_lag, 5 SECONDS) + +/datum/song/proc/get_bpm() + return 600 / tempo + +/datum/song/proc/set_bpm(bpm) + tempo = sanitize_tempo(600 / bpm) + +/// Updates the window for our user. Override in subtypes. +/datum/song/proc/updateDialog(mob/user) + ui_interact(user) + +/datum/song/process(wait) + if(!playing) + return PROCESS_KILL + var/delay = world.time - last_process_decay + process_decay(delay) + last_process_decay = world.time + +/datum/song/proc/update_sustain() + // Exponential is easy + cached_exponential_dropoff = sustain_exponential_dropoff + // Linear, not so much, since it's a target duration from 100 volume rather than an exponential rate. + var/target_duration = sustain_linear_duration + var/volume_diff = max(0, 100 - sustain_dropoff_volume) + var/volume_decrease_per_decisecond = volume_diff / target_duration + cached_linear_dropoff = volume_decrease_per_decisecond + +/datum/song/proc/set_volume(volume) + src.volume = CLAMP(volume, max(0, min_volume), min(100, max_volume)) + update_sustain() + updateDialog() + +/datum/song/proc/set_dropoff_volume(volume) + sustain_dropoff_volume = CLAMP(volume, INSTRUMENT_MIN_SUSTAIN_DROPOFF, 100) + update_sustain() + updateDialog() + +/datum/song/proc/set_exponential_drop_rate(drop) + sustain_exponential_dropoff = CLAMP(drop, INSTRUMENT_EXP_FALLOFF_MIN, INSTRUMENT_EXP_FALLOFF_MAX) + update_sustain() + updateDialog() + +/datum/song/proc/set_linear_falloff_duration(duration) + sustain_linear_duration = CLAMP(duration, 0.1, INSTRUMENT_MAX_TOTAL_SUSTAIN) + update_sustain() + updateDialog() + +/datum/song/vv_edit_var(var_name, var_value) + . = ..() + if(.) + switch(var_name) + if(NAMEOF(src, volume)) + set_volume(var_value) + if(NAMEOF(src, sustain_dropoff_volume)) + set_dropoff_volume(var_value) + if(NAMEOF(src, sustain_exponential_dropoff)) + set_exponential_drop_rate(var_value) + if(NAMEOF(src, sustain_linear_duration)) + set_linear_falloff_duration(var_value) + +// subtype for handheld instruments, like violin +/datum/song/handheld + +/datum/song/handheld/updateDialog(mob/user) + parent.ui_interact(user || usr) + +/datum/song/handheld/should_stop_playing(mob/user) + . = ..() + if(.) + return TRUE + var/obj/item/instrument/I = parent + return I.should_stop_playing(user) + +// subtype for stationary structures, like pianos +/datum/song/stationary + +/datum/song/stationary/updateDialog(mob/user) + parent.ui_interact(user || usr) + +/datum/song/stationary/should_stop_playing(mob/user) + . = ..() + if(.) + return TRUE + var/obj/structure/musician/M = parent + return M.should_stop_playing(user) diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm new file mode 100644 index 0000000000..873ff0e1a7 --- /dev/null +++ b/code/modules/instruments/songs/editor.dm @@ -0,0 +1,246 @@ +/datum/song/proc/instrument_status_ui() + . = list() + . += "
    " + . += "Current instrument: " + if(!using_instrument) + . += "No instrument loaded!
    " + else + . += "[using_instrument.name]
    " + . += "Playback Settings:
    " + if(can_noteshift) + . += "Note Shift/Note Transpose: [note_shift] keys / [round(note_shift / 12, 0.01)] octaves
    " + var/smt + var/modetext = "" + switch(sustain_mode) + if(SUSTAIN_LINEAR) + smt = "Linear" + modetext = "Linear Sustain Duration: [sustain_linear_duration / 10] seconds
    " + if(SUSTAIN_EXPONENTIAL) + smt = "Exponential" + modetext = "Exponential Falloff Factor: [sustain_exponential_dropoff]% per decisecond
    " + . += "Sustain Mode: [smt]
    " + . += modetext + . += using_instrument?.ready()? "Status: Ready
    " : "Status: !Instrument Definition Error!
    " + . += "Instrument Type: [legacy? "Legacy" : "Synthesized"]
    " + . += "Volume: [volume]
    " + . += "Volume Dropoff Threshold: [sustain_dropoff_volume]
    " + . += "Sustain indefinitely last held note: [full_sustain_held_note? "Enabled" : "Disabled"].
    " + . += "
    " + +/datum/song/ui_interact(mob/user) + var/list/dat = list() + + dat += instrument_status_ui() + + if(lines.len > 0) + dat += "

    Playback

    " + if(!playing) + dat += "Play Stop

    " + dat += "Repeat Song: " + dat += repeat > 0 ? "--" : "--" + dat += " [repeat] times " + dat += repeat < max_repeats ? "++" : "++" + dat += "
    " + else + dat += "Play Stop
    " + dat += "Repeats left: [repeat]
    " + if(!editing) + dat += "
    Show Editor
    " + else + dat += "

    Editing

    " + dat += "Hide Editor" + dat += " Start a New Song" + dat += " Import a Song

    " + var/bpm = round(600 / tempo) + dat += "Tempo: - [bpm] BPM +

    " + var/linecount = 0 + for(var/line in lines) + linecount += 1 + dat += "Line [linecount]: Edit X [line]
    " + dat += "Add Line

    " + if(help) + dat += "Hide Help
    " + dat += {" + Lines are a series of chords, separated by commas (,), each with notes separated by hyphens (-).
    + Every note in a chord will play together, with chord timed by the tempo.
    +
    + Notes are played by the names of the note, and optionally, the accidental, and/or the octave number.
    + By default, every note is natural and in octave 3. Defining otherwise is remembered for each note.
    + Example: C,D,E,F,G,A,B will play a C major scale.
    + After a note has an accidental placed, it will be remembered: C,C4,C,C3 is C3,C4,C4,C3
    + Chords can be played simply by seperating each note with a hyphon: A-C#,Cn-E,E-G#,Gn-B
    + A pause may be denoted by an empty chord: C,E,,C,G
    + To make a chord be a different time, end it with /x, where the chord length will be length
    + defined by tempo / x: C,G/2,E/4
    + Combined, an example is: E-E4/4,F#/2,G#/8,B/8,E3-E4/4 +
    + Lines may be up to [MUSIC_MAXLINECHARS] characters.
    + A song may only contain up to [MUSIC_MAXLINES] lines.
    + "} + else + dat += "Show Help
    " + + var/datum/browser/popup = new(user, "instrument", parent?.name || "instrument", 700, 500) + popup.set_content(dat.Join("")) + popup.set_title_image(user.browse_rsc_icon(parent.icon, parent.icon_state)) + popup.open() + +/datum/song/proc/ParseSong(text) + set waitfor = FALSE + //split into lines + lines = splittext(text, "\n") + if(lines.len) + var/bpm_string = "BPM: " + if(findtext(lines[1], bpm_string, 1, length(bpm_string) + 1)) + var/divisor = text2num(copytext(lines[1], length(bpm_string) + 1)) || 120 // default + tempo = sanitize_tempo(600 / round(divisor, 1)) + lines.Cut(1, 2) + else + tempo = sanitize_tempo(5) // default 120 BPM + if(lines.len > MUSIC_MAXLINES) + to_chat(usr, "Too many lines!") + lines.Cut(MUSIC_MAXLINES + 1) + var/linenum = 1 + for(var/l in lines) + if(length_char(l) > MUSIC_MAXLINECHARS) + to_chat(usr, "Line [linenum] too long!") + lines.Remove(l) + else + linenum++ + updateDialog(usr) // make sure updates when complete + +/datum/song/Topic(href, href_list) + if(!usr.canUseTopic(parent, TRUE, FALSE, FALSE, FALSE)) + usr << browse(null, "window=instrument") + usr.unset_machine() + return + + parent.add_fingerprint(usr) + + if(href_list["newsong"]) + lines = new() + tempo = sanitize_tempo(5) // default 120 BPM + name = "" + + else if(href_list["import"]) + var/t = "" + do + t = html_encode(input(usr, "Please paste the entire song, formatted:", text("[]", name), t) as message) + if(!in_range(parent, usr)) + return + + if(length_char(t) >= MUSIC_MAXLINES * MUSIC_MAXLINECHARS) + var/cont = input(usr, "Your message is too long! Would you like to continue editing it?", "", "yes") in list("yes", "no") + if(cont == "no") + break + while(length_char(t) > MUSIC_MAXLINES * MUSIC_MAXLINECHARS) + ParseSong(t) + + else if(href_list["help"]) + help = text2num(href_list["help"]) - 1 + + else if(href_list["edit"]) + editing = text2num(href_list["edit"]) - 1 + + if(href_list["repeat"]) //Changing this from a toggle to a number of repeats to avoid infinite loops. + if(playing) + return //So that people cant keep adding to repeat. If the do it intentionally, it could result in the server crashing. + repeat += round(text2num(href_list["repeat"])) + if(repeat < 0) + repeat = 0 + if(repeat > max_repeats) + repeat = max_repeats + + else if(href_list["tempo"]) + tempo = sanitize_tempo(tempo + text2num(href_list["tempo"])) + + else if(href_list["play"]) + INVOKE_ASYNC(src, .proc/start_playing, usr) + + else if(href_list["newline"]) + var/newline = html_encode(input("Enter your line: ", parent.name) as text|null) + if(!newline || !in_range(parent, usr)) + return + if(lines.len > MUSIC_MAXLINES) + return + if(length(newline) > MUSIC_MAXLINECHARS) + newline = copytext(newline, 1, MUSIC_MAXLINECHARS) + lines.Add(newline) + + else if(href_list["deleteline"]) + var/num = round(text2num(href_list["deleteline"])) + if(num > lines.len || num < 1) + return + lines.Cut(num, num+1) + + else if(href_list["modifyline"]) + var/num = round(text2num(href_list["modifyline"]),1) + var/content = stripped_input(usr, "Enter your line: ", parent.name, lines[num], MUSIC_MAXLINECHARS) + if(!content || !in_range(parent, usr)) + return + if(num > lines.len || num < 1) + return + lines[num] = content + + else if(href_list["stop"]) + stop_playing() + + else if(href_list["setlinearfalloff"]) + var/amount = input(usr, "Set linear sustain duration in seconds", "Linear Sustain Duration") as null|num + if(!isnull(amount)) + set_linear_falloff_duration(round(amount * 10, world.tick_lag)) + + else if(href_list["setexpfalloff"]) + var/amount = input(usr, "Set exponential sustain factor", "Exponential sustain factor") as null|num + if(!isnull(amount)) + set_exponential_drop_rate(round(amount, 0.00001)) + + else if(href_list["setvolume"]) + var/amount = input(usr, "Set volume", "Volume") as null|num + if(!isnull(amount)) + set_volume(round(amount, 1)) + + else if(href_list["setdropoffvolume"]) + var/amount = input(usr, "Set dropoff threshold", "Dropoff Threshold Volume") as null|num + if(!isnull(amount)) + set_dropoff_volume(round(amount, 0.01)) + + else if(href_list["switchinstrument"]) + if(!length(allowed_instrument_ids)) + return + else if(length(allowed_instrument_ids) == 1) + set_instrument(allowed_instrument_ids[1]) + return + var/list/categories = list() + for(var/i in allowed_instrument_ids) + var/datum/instrument/I = SSinstruments.get_instrument(i) + if(I) + LAZYSET(categories[I.category || "ERROR CATEGORY"], I.name, I.id) + var/cat = input(usr, "Select Category", "Instrument Category") as null|anything in categories + if(!cat) + return + var/list/instruments = categories[cat] + var/choice = input(usr, "Select Instrument", "Instrument Selection") as null|anything in instruments + if(!choice) + return + choice = instruments[choice] //get id + if(choice) + set_instrument(choice) + + else if(href_list["setnoteshift"]) + var/amount = input(usr, "Set note shift", "Note Shift") as null|num + if(!isnull(amount)) + note_shift = CLAMP(amount, note_shift_min, note_shift_max) + + else if(href_list["setsustainmode"]) + var/choice = input(usr, "Choose a sustain mode", "Sustain Mode") as null|anything in list("Linear", "Exponential") + switch(choice) + if("Linear") + sustain_mode = SUSTAIN_LINEAR + if("Exponential") + sustain_mode = SUSTAIN_EXPONENTIAL + + else if(href_list["togglesustainhold"]) + full_sustain_held_note = !full_sustain_held_note + + updateDialog() diff --git a/code/modules/instruments/songs/play_legacy.dm b/code/modules/instruments/songs/play_legacy.dm new file mode 100644 index 0000000000..fa64656ebc --- /dev/null +++ b/code/modules/instruments/songs/play_legacy.dm @@ -0,0 +1,82 @@ +/// Playing legacy instruments - None of the "advanced" like sound reservations and decay are invoked. +/datum/song/proc/do_play_lines_legacy(mob/user) + while(repeat >= 0) + var/cur_oct[7] + var/cur_acc[7] + for(var/i = 1 to 7) + cur_oct[i] = 3 + cur_acc[i] = "n" + + for(var/line in lines) + for(var/beat in splittext(lowertext(line), ",")) + if(should_stop_playing(user)) + return + var/list/notes = splittext(beat, "/") + if(length(notes)) //because some jack-butts are going to do ,,,, to symbolize 3 rests instead of something reasonable like ,/1. + for(var/note in splittext(notes[1], "-")) + if(length(note) == 0) + continue + var/cur_note = text2ascii(note) - 96 + if(cur_note < 1 || cur_note > 7) + continue + for(var/i=2 to length(note)) + var/ni = copytext(note,i,i+1) + if(!text2num(ni)) + if(ni == "#" || ni == "b" || ni == "n") + cur_acc[cur_note] = ni + else if(ni == "s") + cur_acc[cur_note] = "#" // so shift is never required + else + cur_oct[cur_note] = text2num(ni) + playnote_legacy(cur_note, cur_acc[cur_note], cur_oct[cur_note]) + if(notes.len >= 2 && text2num(notes[2])) + sleep(sanitize_tempo(tempo / text2num(notes[2]))) + else + sleep(tempo) + if(should_stop_playing(user)) + return + repeat-- + updateDialog() + repeat = 0 + +// note is a number from 1-7 for A-G +// acc is either "b", "n", or "#" +// oct is 1-8 (or 9 for C) +/datum/song/proc/playnote_legacy(note, acc as text, oct) + // handle accidental -> B<>C of E<>F + if(acc == "b" && (note == 3 || note == 6)) // C or F + if(note == 3) + oct-- + note-- + acc = "n" + else if(acc == "#" && (note == 2 || note == 5)) // B or E + if(note == 2) + oct++ + note++ + acc = "n" + else if(acc == "#" && (note == 7)) //G# + note = 1 + acc = "b" + else if(acc == "#") // mass convert all sharps to flats, octave jump already handled + acc = "b" + note++ + + // check octave, C is allowed to go to 9 + if(oct < 1 || (note == 3 ? oct > 9 : oct > 8)) + return + + // now generate name + var/soundfile = "sound/instruments/[cached_legacy_dir]/[ascii2text(note+64)][acc][oct].[cached_legacy_ext]" + soundfile = file(soundfile) + // make sure the note exists + if(!fexists(soundfile)) + return + // and play + var/turf/source = get_turf(parent) + if((world.time - MUSICIAN_HEARCHECK_MINDELAY) > last_hearcheck) + do_hearcheck() + var/sound/music_played = sound(soundfile) + for(var/i in hearing_mobs) + var/mob/M = i + M.playsound_local(source, null, volume * using_instrument.volume_multiplier, falloff = 5, S = music_played) + // Could do environment and echo later but not for now diff --git a/code/modules/instruments/songs/play_synthesized.dm b/code/modules/instruments/songs/play_synthesized.dm new file mode 100644 index 0000000000..2573da324a --- /dev/null +++ b/code/modules/instruments/songs/play_synthesized.dm @@ -0,0 +1,135 @@ +/datum/song/proc/do_play_lines_synthesized(mob/user) + compile_lines() + while(repeat >= 0) + if(should_stop_playing(user)) + return + var/warned = FALSE + for(var/_chord in compiled_chords) + if(should_stop_playing(user)) + return + var/list/chord = _chord + var/tempodiv = chord[chord.len] + for(var/i in 1 to chord.len - 1) + var/key = chord[i] + if(!playkey_synth(key)) + if(!warned) + warned = TRUE + to_chat(user, "Your instrument has ran out of channels. You might be playing your song too fast or be setting sustain to too high of a value. This warning will be suppressed for the rest of this cycle.") + sleep(sanitize_tempo(tempo / (tempodiv || 1))) + repeat-- + updateDialog() + repeat = 0 + +/// C-Db2-A-A4/2,A-B#4-C/3,/4,A,A-B-C as an example +/datum/song/proc/compile_lines() + if(!length(src.lines)) + return + var/list/lines = src.lines //cache for hyepr speed! + compiled_chords = list() + var/list/octaves = list(3, 3, 3, 3, 3, 3, 3) + var/list/accents = list("n", "n", "n", "n", "n", "n", "n") + for(var/line in lines) + var/list/chords = splittext(lowertext(line), ",") + for(var/chord in chords) + var/list/compiled_chord = list() + var/tempodiv = 1 + var/list/notes_tempodiv = splittext(chord, "/") + var/len = length(notes_tempodiv) + if(len >= 2) + tempodiv = text2num(notes_tempodiv[2]) + if(len) //some dunkass is going to do ,,,, to make 3 rests instead of ,/1 because there's no standardization so let's be prepared for that. + var/list/notes = splittext(notes_tempodiv[1], "-") + for(var/note in notes) + if(length(note) == 0) + continue + // 1-7, A-G + var/key = text2ascii(note) - 96 + if((key < 1) || (key > 7)) + continue + for(var/i in 2 to length(note)) + var/oct_acc = copytext(note, i, i + 1) + var/num = text2num(oct_acc) + if(!num) //it's an accidental + accents[key] = oct_acc //if they misspelled it/fucked up that's on them lmao, no safety checks. + else //octave + octaves[key] = CLAMP(num, octave_min, octave_max) + compiled_chord += CLAMP((note_offset_lookup[key] + octaves[key] * 12 + accent_lookup[accents[key]]), key_min, key_max) + compiled_chord += tempodiv //this goes last + if(length(compiled_chord)) + compiled_chords[++compiled_chords.len] = compiled_chord + CHECK_TICK + return compiled_chords + +/datum/song/proc/playkey_synth(key) + if(can_noteshift) + key = clamp(key + note_shift, key_min, key_max) + if((world.time - MUSICIAN_HEARCHECK_MINDELAY) > last_hearcheck) + do_hearcheck() + var/datum/instrument_key/K = using_instrument.samples[num2text(key)] //See how fucking easy it is to make a number text? You don't need a complicated 9 line proc! + //Should probably add channel limiters here at some point but I don't care right now. + var/channel = pop_channel() + if(isnull(channel)) + return FALSE + . = TRUE + var/sound/copy = sound(K.sample) + var/volume = src.volume * using_instrument.volume_multiplier + copy.frequency = K.frequency + copy.volume = volume + var/channel_text = num2text(channel) + channels_playing[channel_text] = 100 + last_channel_played = channel_text + for(var/i in hearing_mobs) + var/mob/M = i + M.playsound_local(get_turf(parent), null, volume, FALSE, K.frequency, INSTRUMENT_DISTANCE_NO_FALLOFF, channel, null, copy, distance_multiplier = INSTRUMENT_DISTANCE_FALLOFF_BUFF) + // Could do environment and echo later but not for now + +/datum/song/proc/terminate_all_sounds(clear_channels = TRUE) + for(var/i in hearing_mobs) + terminate_sound_mob(i) + if(clear_channels) + channels_playing.len = 0 + channels_idle.len = 0 + SSinstruments.current_instrument_channels -= using_sound_channels + using_sound_channels = 0 + SSsounds.free_datum_channels(src) + +/datum/song/proc/terminate_sound_mob(mob/M) + for(var/channel in channels_playing) + M.stop_sound_channel(text2num(channel)) + +/datum/song/proc/pop_channel() + if(length(channels_idle)) //just pop one off of here if we have one available + . = text2num(channels_idle[1]) + channels_idle.Cut(1,2) + return + if(using_sound_channels >= max_sound_channels) + return + . = SSinstruments.reserve_instrument_channel(src) + if(!isnull(.)) + using_sound_channels++ + +/datum/song/proc/process_decay(wait_ds) + var/linear_dropoff = cached_linear_dropoff * wait_ds + var/exponential_dropoff = cached_exponential_dropoff ** wait_ds + for(var/channel in channels_playing) + if(full_sustain_held_note && (channel == last_channel_played)) + continue + var/current_volume = channels_playing[channel] + switch(sustain_mode) + if(SUSTAIN_LINEAR) + current_volume -= linear_dropoff + if(SUSTAIN_EXPONENTIAL) + current_volume /= exponential_dropoff + channels_playing[channel] = current_volume + var/dead = current_volume <= sustain_dropoff_volume + var/channelnumber = text2num(channel) + if(dead) + channels_playing -= channel + channels_idle += channel + for(var/i in hearing_mobs) + var/mob/M = i + M.stop_sound_channel(channelnumber) + else + for(var/i in hearing_mobs) + var/mob/M = i + M.set_sound_channel_volume(channelnumber, (current_volume * 0.01) * volume * using_instrument.volume_multiplier) diff --git a/code/modules/integrated_electronics/subtypes/smart.dm b/code/modules/integrated_electronics/subtypes/smart.dm index d4c565c49a..d0c47f0950 100644 --- a/code/modules/integrated_electronics/subtypes/smart.dm +++ b/code/modules/integrated_electronics/subtypes/smart.dm @@ -18,8 +18,8 @@ var/datum/integrated_io/I = inputs[1] set_pin_data(IC_OUTPUT, 1, null) if(!isweakref(I.data)) - return activate_pin(3) + return var/atom/A = I.data.resolve() if(!A) activate_pin(3) diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index c5065cd169..0d70e872ac 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -42,7 +42,7 @@ uniform = /obj/item/clothing/under/rank/engineering/chief_engineer shoes = /obj/item/clothing/shoes/sneakers/brown head = /obj/item/clothing/head/hardhat/white - gloves = /obj/item/clothing/gloves/color/black/ce + gloves = /obj/item/clothing/gloves/color/black backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced=1) backpack = /obj/item/storage/backpack/industrial diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm index 811dff87e7..3cf4fbb102 100644 --- a/code/modules/jobs/job_types/head_of_security.dm +++ b/code/modules/jobs/job_types/head_of_security.dm @@ -42,7 +42,7 @@ uniform = /obj/item/clothing/under/rank/security/head_of_security shoes = /obj/item/clothing/shoes/jackboots suit = /obj/item/clothing/suit/armor/hos/trenchcoat - gloves = /obj/item/clothing/gloves/color/black/hos + gloves = /obj/item/clothing/gloves/color/black head = /obj/item/clothing/head/HoS/beret glasses = /obj/item/clothing/glasses/hud/security/sunglasses suit_store = /obj/item/gun/energy/e_gun diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index e83ac26153..30eed6c8f0 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -117,10 +117,10 @@ glass_overlay.appearance_flags = RESET_COLOR . += glass_overlay -/obj/item/clothing/head/helmet/space/hostile_environment/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/clothing/head/helmet/space/hostile_environment/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) - var/mutable_appearance/M = mutable_appearance('icons/mob/head.dmi', "hostile_env_glass") + var/mutable_appearance/M = mutable_appearance('icons/mob/clothing/head.dmi', "hostile_env_glass") M.appearance_flags = RESET_COLOR . += M diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index a95c0e24ed..56e1a04b95 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -835,9 +835,9 @@ force = CLAMP((ghost_counter * 4), 0, 75) user.visible_message("[user] strikes with the force of [ghost_counter] vengeful spirits!") - ..() + return ..() -/obj/item/melee/ghost_sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) +/obj/item/melee/ghost_sword/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) var/ghost_counter = ghost_check() final_block_chance += CLAMP((ghost_counter * 5), 0, 75) owner.visible_message("[owner] is protected by a ring of [ghost_counter] ghosts!") diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index c212c22c98..f10229f4bf 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -87,14 +87,6 @@ return . = ..() -/obj/machinery/computer/shuttle/mining/common - name = "lavaland shuttle console" - desc = "Used to call and send the lavaland shuttle." - req_access = list() - circuit = /obj/item/circuitboard/computer/mining_shuttle/common - shuttleId = "mining_common" - possible_destinations = "lavaland_common_away;commonmining_home" - /**********************Mining car (Crate like thing, not the rail car)**************************/ /obj/structure/closet/crate/miningcar diff --git a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm index 4365e59a7a..ab278b2e82 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm @@ -76,7 +76,7 @@ var/list/recommended_species /datum/sprite_accessory/underwear - icon = 'icons/mob/underwear.dmi' + icon = 'icons/mob/clothing/underwear.dmi' var/has_color = FALSE var/has_digitigrade = FALSE var/covers_groin = FALSE diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 78e38c5b89..b2d02d8fa2 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -263,19 +263,36 @@ Works together with spawning an observer, noted above. */ /mob/proc/ghostize(can_reenter_corpse = TRUE, special = FALSE, penalize = FALSE, voluntary = FALSE) - penalize = suiciding || penalize // suicide squad. + var/sig_flags = SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, can_reenter_corpse, special, penalize) + penalize = !(sig_flags & COMPONENT_DO_NOT_PENALIZE_GHOSTING) && (suiciding || penalize) // suicide squad. voluntary_ghosted = voluntary - if(!key || key[1] == "@" || (SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, can_reenter_corpse, special, penalize) & COMPONENT_BLOCK_GHOSTING)) + if(!key || key[1] == "@" || (sig_flags & COMPONENT_BLOCK_GHOSTING)) return //mob has no key, is an aghost or some component hijacked. stop_sound_channel(CHANNEL_HEARTBEAT) //Stop heartbeat sounds because You Are A Ghost Now var/mob/dead/observer/ghost = new(get_turf(src), src) // Transfer safety to observer spawning proc. SStgui.on_transfer(src, ghost) // Transfer NanoUIs. - ghost.can_reenter_corpse = can_reenter_corpse + ghost.can_reenter_corpse = can_reenter_corpse || (sig_flags & COMPONENT_FREE_GHOSTING) if (client && client.prefs && client.prefs.auto_ooc) if (!(client.prefs.chat_toggles & CHAT_OOC)) client.prefs.chat_toggles ^= CHAT_OOC transfer_ckey(ghost, FALSE) - ghost.AddElement(/datum/element/ghost_role_eligibility,penalize) // technically already run earlier, but this adds the penalty + if(penalize) + var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) MINUTES + var/roundstart_quit_limit = CONFIG_GET(number/roundstart_suicide_time_limit) MINUTES + if(world.time < roundstart_quit_limit) //add up the time difference to their antag rolling penalty if they quit before half a (ingame) hour even passed. + penalty += roundstart_quit_limit - world.time + if(penalty) + penalty += world.realtime + if(SSautotransfer.can_fire && SSautotransfer.maxvotes) + var/maximumRoundEnd = SSautotransfer.starttime + SSautotransfer.voteinterval * SSautotransfer.maxvotes + if(penalty - SSshuttle.realtimeofstart > maximumRoundEnd + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) + penalty = CANT_REENTER_ROUND + if(!(ckey in GLOB.client_ghost_timeouts)) + GLOB.client_ghost_timeouts += ckey + GLOB.client_ghost_timeouts[ckey] = 0 + else if(GLOB.client_ghost_timeouts[ckey] == CANT_REENTER_ROUND) + return + GLOB.client_ghost_timeouts[ckey] = max(GLOB.client_ghost_timeouts[ckey],penalty) // needs to be done AFTER the ckey transfer, too return ghost @@ -297,12 +314,17 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(penalty - SSshuttle.realtimeofstart > maximumRoundEnd + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) penalty = CANT_REENTER_ROUND - if(SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, (stat == DEAD) ? TRUE : FALSE, FALSE, (stat == DEAD)? penalty : 0, (stat == DEAD)? TRUE : FALSE) & COMPONENT_BLOCK_GHOSTING) + var/sig_flags = SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, (stat == DEAD) ? TRUE : FALSE, FALSE, (stat == DEAD)? penalty : 0, (stat == DEAD)? TRUE : FALSE) + + if(sig_flags & COMPONENT_BLOCK_GHOSTING) return + if(sig_flags & COMPONENT_DO_NOT_PENALIZE_GHOSTING) + penalty = 0 + if(stat != DEAD) succumb() - if(stat == DEAD) + if(stat == DEAD || sig_flags & COMPONENT_FREE_GHOSTING) ghostize(1) else var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst alive you won't be able to re-enter this round [penalty ? "or play ghost roles [penalty == CANT_REENTER_ROUND ? "until the round is over" : "for the next [DisplayTimeText(penalty)]"]" : ""]! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") @@ -321,7 +343,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set name = "Ghost" set desc = "Relinquish your life and enter the land of the dead." - if(SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, FALSE, FALSE) & COMPONENT_BLOCK_GHOSTING) + var/sig_flags = SEND_SIGNAL(src, COMSIG_MOB_GHOSTIZE, FALSE, FALSE) + + if(sig_flags & COMPONENT_BLOCK_GHOSTING) return var/penalty = CONFIG_GET(number/suicide_reenter_round_timer) MINUTES @@ -333,10 +357,16 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(penalty - SSshuttle.realtimeofstart > maximumRoundEnd + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime) penalty = CANT_REENTER_ROUND - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst alive you won't be able to re-enter this round [penalty ? "or play ghost roles [penalty == CANT_REENTER_ROUND ? "until the round is over" : "for the next [DisplayTimeText(penalty)]"]" : ""]! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") - if(response != "Ghost") - return - ghostize(0, penalize = TRUE) + if(sig_flags & COMPONENT_DO_NOT_PENALIZE_GHOSTING) + penalty = 0 + + if(sig_flags & COMPONENT_FREE_GHOSTING) + ghostize(1) + else + var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst alive you won't be able to re-enter this round [penalty ? "or play ghost roles [penalty == CANT_REENTER_ROUND ? "until the round is over" : "for the next [DisplayTimeText(penalty)]"]" : ""]! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + if(response != "Ghost") + return + ghostize(0, penalize = TRUE) @@ -670,7 +700,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return 0 transfer_ckey(target, FALSE) - target.AddElement(/datum/element/ghost_role_eligibility) + target.AddElement(/datum/element/ghost_role_eligibility, penalize_on_ghost = FALSE, free_ghosting = TRUE) target.faction = list("neutral") return 1 diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index ef6a372f9e..42b2c4433b 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -21,14 +21,13 @@ Doesn't work on other aliens/AI.*/ . = ..() action = new(src) -/obj/effect/proc_holder/alien/Click() - if(!iscarbon(usr)) - return 1 - var/mob/living/carbon/user = usr - if(cost_check(check_turf,user)) +/obj/effect/proc_holder/alien/Trigger(mob/living/carbon/user, skip_cost_check) + if(!istype(user)) + return TRUE + if(!skip_cost_check || cost_check(check_turf,user)) if(fire(user) && user) // Second check to prevent runtimes when evolving user.adjustPlasma(-plasma_cost) - return 1 + return TRUE /obj/effect/proc_holder/alien/on_gain(mob/living/carbon/user) return diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index e0647159a5..faea8e9bbc 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -63,13 +63,13 @@ if(hit_atom) if(isliving(hit_atom)) var/mob/living/L = hit_atom - if(!L.check_shields(src, 0, "the [name]", attack_type = LEAP_ATTACK)) + if(L.run_block(src, 0, "the [name]", ATTACK_TYPE_TACKLE, 0, src) & BLOCK_SUCCESS) + DefaultCombatKnockdown(40, 1, 1) + else L.visible_message("[src] pounces on [L]!", "[src] pounces on you!") L.DefaultCombatKnockdown(100) sleep(2)//Runtime prevention (infinite bump() calls on hulks) step_towards(src,L) - else - DefaultCombatKnockdown(40, 1, 1) toggle_leap(0) else if(hit_atom.density && !hit_atom.CanPass(src)) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index a2952bf8de..f0e94e4845 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -430,7 +430,6 @@ else dropItemToGround(I) return - return TRUE /mob/living/carbon/get_standard_pixel_y_offset(lying = 0) if(lying) @@ -984,14 +983,121 @@ /mob/living/carbon/vv_get_dropdown() . = ..() - . += "---" - .["Make AI"] = "?_src_=vars;[HrefToken()];makeai=[REF(src)]" - .["Modify bodypart"] = "?_src_=vars;[HrefToken()];editbodypart=[REF(src)]" - .["Modify organs"] = "?_src_=vars;[HrefToken()];editorgans=[REF(src)]" - .["Hallucinate"] = "?_src_=vars;[HrefToken()];hallucinate=[REF(src)]" - .["Give martial arts"] = "?_src_=vars;[HrefToken()];givemartialart=[REF(src)]" - .["Give brain trauma"] = "?_src_=vars;[HrefToken()];givetrauma=[REF(src)]" - .["Cure brain traumas"] = "?_src_=vars;[HrefToken()];curetraumas=[REF(src)]" + VV_DROPDOWN_OPTION("", "---------") + VV_DROPDOWN_OPTION(VV_HK_MAKE_AI, "Make AI") + VV_DROPDOWN_OPTION(VV_HK_MODIFY_BODYPART, "Modify bodypart") + VV_DROPDOWN_OPTION(VV_HK_MODIFY_ORGANS, "Modify organs") + VV_DROPDOWN_OPTION(VV_HK_HALLUCINATION, "Hallucinate") + VV_DROPDOWN_OPTION(VV_HK_MARTIAL_ART, "Give Martial Arts") + VV_DROPDOWN_OPTION(VV_HK_GIVE_TRAUMA, "Give Brain Trauma") + VV_DROPDOWN_OPTION(VV_HK_CURE_TRAUMA, "Cure Brain Traumas") + +/mob/living/carbon/vv_do_topic(list/href_list) + . = ..() + if(href_list[VV_HK_MODIFY_BODYPART]) + if(!check_rights(R_SPAWN)) + return + var/edit_action = input(usr, "What would you like to do?","Modify Body Part") as null|anything in list("add","remove", "augment") + if(!edit_action) + return + var/list/limb_list = list() + if(edit_action == "remove" || edit_action == "augment") + for(var/obj/item/bodypart/B in bodyparts) + limb_list += B.body_zone + if(edit_action == "remove") + limb_list -= BODY_ZONE_CHEST + else + limb_list = list(BODY_ZONE_HEAD, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) + for(var/obj/item/bodypart/B in bodyparts) + limb_list -= B.body_zone + var/result = input(usr, "Please choose which body part to [edit_action]","[capitalize(edit_action)] Body Part") as null|anything in limb_list + if(result) + var/obj/item/bodypart/BP = get_bodypart(result) + switch(edit_action) + if("remove") + if(BP) + BP.drop_limb() + else + to_chat(usr, "[src] doesn't have such bodypart.") + if("add") + if(BP) + to_chat(usr, "[src] already has such bodypart.") + else + if(!regenerate_limb(result)) + to_chat(usr, "[src] cannot have such bodypart.") + if("augment") + if(ishuman(src)) + if(BP) + BP.change_bodypart_status(BODYPART_ROBOTIC, TRUE, TRUE) + else + to_chat(usr, "[src] doesn't have such bodypart.") + else + to_chat(usr, "Only humans can be augmented.") + admin_ticket_log("[key_name_admin(usr)] has modified the bodyparts of [src]") + if(href_list[VV_HK_MAKE_AI]) + if(!check_rights(R_SPAWN)) + return + if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") + return + usr.client.holder.Topic("vv_override", list("makeai"=href_list[VV_HK_TARGET])) + if(href_list[VV_HK_MODIFY_ORGANS]) + if(!check_rights(NONE)) + return + usr.client.manipulate_organs(src) + if(href_list[VV_HK_MARTIAL_ART]) + if(!check_rights(NONE)) + return + var/list/artpaths = subtypesof(/datum/martial_art) + var/list/artnames = list() + for(var/i in artpaths) + var/datum/martial_art/M = i + artnames[initial(M.name)] = M + var/result = input(usr, "Choose the martial art to teach","JUDO CHOP") as null|anything in artnames + if(!usr) + return + if(QDELETED(src)) + to_chat(usr, "Mob doesn't exist anymore") + return + if(result) + var/chosenart = artnames[result] + var/datum/martial_art/MA = new chosenart + MA.teach(src) + log_admin("[key_name(usr)] has taught [MA] to [key_name(src)].") + message_admins("[key_name_admin(usr)] has taught [MA] to [key_name_admin(src)].") + if(href_list[VV_HK_GIVE_TRAUMA]) + if(!check_rights(NONE)) + return + var/list/traumas = subtypesof(/datum/brain_trauma) + var/result = input(usr, "Choose the brain trauma to apply","Traumatize") as null|anything in traumas + if(!usr) + return + if(QDELETED(src)) + to_chat(usr, "Mob doesn't exist anymore") + return + if(!result) + return + var/datum/brain_trauma/BT = gain_trauma(result) + if(BT) + log_admin("[key_name(usr)] has traumatized [key_name(src)] with [BT.name]") + message_admins("[key_name_admin(usr)] has traumatized [key_name_admin(src)] with [BT.name].") + if(href_list[VV_HK_CURE_TRAUMA]) + if(!check_rights(NONE)) + return + cure_all_traumas(TRAUMA_RESILIENCE_ABSOLUTE) + log_admin("[key_name(usr)] has cured all traumas from [key_name(src)].") + message_admins("[key_name_admin(usr)] has cured all traumas from [key_name_admin(src)].") + if(href_list[VV_HK_HALLUCINATION]) + if(!check_rights(NONE)) + return + var/list/hallucinations = subtypesof(/datum/hallucination) + var/result = input(usr, "Choose the hallucination to apply","Send Hallucination") as null|anything in hallucinations + if(!usr) + return + if(QDELETED(src)) + to_chat(usr, "Mob doesn't exist anymore") + return + if(result) + new result(src, TRUE) /mob/living/carbon/can_resist() return bodyparts.len > 2 && ..() diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 836560ca99..9c4f0316b7 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -9,7 +9,7 @@ if(istype(src.glasses, /obj/item/clothing/glasses)) //glasses var/obj/item/clothing/glasses/GFP = src.glasses number += GFP.flash_protect - + if(istype(src.wear_mask, /obj/item/clothing/mask)) //mask var/obj/item/clothing/mask/MFP = src.wear_mask number += MFP.flash_protect @@ -86,13 +86,10 @@ if(!(combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) totitemdamage *= 1.5 //CIT CHANGES END HERE - if(user != src && check_shields(I, totitemdamage, "the [I.name]", MELEE_ATTACK, I.armour_penetration)) + var/impacting_zone = (user == src)? check_zone(user.zone_selected) : ran_zone(user.zone_selected) + if((user != src) && (run_block(I, totitemdamage, "the [I]", ATTACK_TYPE_MELEE, I.armour_penetration, user, impacting_zone) & BLOCK_SUCCESS)) return FALSE - var/obj/item/bodypart/affecting - if(user == src) - affecting = get_bodypart(check_zone(user.zone_selected)) //we're self-mutilating! yay! - else - affecting = get_bodypart(ran_zone(user.zone_selected)) + var/obj/item/bodypart/affecting = get_bodypart(impacting_zone) if(!affecting) //missing limb? we select the first bodypart (you can never have zero, because of chest) affecting = bodyparts[1] SEND_SIGNAL(I, COMSIG_ITEM_ATTACK_ZONE, src, user, affecting) @@ -278,6 +275,8 @@ if(health >= 0 && !(HAS_TRAIT(src, TRAIT_FAKEDEATH))) var/friendly_check = FALSE + if(run_block(M, 0, M.name, ATTACK_TYPE_UNARMED)) + return if(lying) if(buckled) to_chat(M, "You need to unbuckle [src] first to do that!") diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index a515693047..94aba6851a 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -849,15 +849,95 @@ /mob/living/carbon/human/vv_get_dropdown() . = ..() - . += "---" - .["Make monkey"] = "?_src_=vars;[HrefToken()];makemonkey=[REF(src)]" - .["Set Species"] = "?_src_=vars;[HrefToken()];setspecies=[REF(src)]" - .["Make cyborg"] = "?_src_=vars;[HrefToken()];makerobot=[REF(src)]" - .["Make alien"] = "?_src_=vars;[HrefToken()];makealien=[REF(src)]" - .["Make slime"] = "?_src_=vars;[HrefToken()];makeslime=[REF(src)]" - .["Toggle Purrbation"] = "?_src_=vars;[HrefToken()];purrbation=[REF(src)]" - .["Copy outfit"] = "?_src_=vars;[HrefToken()];copyoutfit=[REF(src)]" - .["Add/Remove Quirks"] = "?_src_=vars;[HrefToken()];modquirks=[REF(src)]" + VV_DROPDOWN_OPTION("", "---------") + VV_DROPDOWN_OPTION(VV_HK_COPY_OUTFIT, "Copy Outfit") + VV_DROPDOWN_OPTION(VV_HK_MOD_QUIRKS, "Add/Remove Quirks") + VV_DROPDOWN_OPTION(VV_HK_MAKE_MONKEY, "Make Monkey") + VV_DROPDOWN_OPTION(VV_HK_MAKE_CYBORG, "Make Cyborg") + VV_DROPDOWN_OPTION(VV_HK_MAKE_SLIME, "Make Slime") + VV_DROPDOWN_OPTION(VV_HK_MAKE_ALIEN, "Make Alien") + VV_DROPDOWN_OPTION(VV_HK_SET_SPECIES, "Set Species") + VV_DROPDOWN_OPTION(VV_HK_PURRBATION, "Toggle Purrbation") + +/mob/living/carbon/human/vv_do_topic(list/href_list) + . = ..() + if(href_list[VV_HK_COPY_OUTFIT]) + if(!check_rights(R_SPAWN)) + return + copy_outfit() + if(href_list[VV_HK_MOD_QUIRKS]) + if(!check_rights(R_SPAWN)) + return + + var/list/options = list("Clear"="Clear") + for(var/x in subtypesof(/datum/quirk)) + var/datum/quirk/T = x + var/qname = initial(T.name) + options[has_quirk(T) ? "[qname] (Remove)" : "[qname] (Add)"] = T + + var/result = input(usr, "Choose quirk to add/remove","Quirk Mod") as null|anything in options + if(result) + if(result == "Clear") + for(var/datum/quirk/q in roundstart_quirks) + remove_quirk(q.type) + else + var/T = options[result] + if(has_quirk(T)) + remove_quirk(T) + else + add_quirk(T,TRUE) + if(href_list[VV_HK_MAKE_MONKEY]) + if(!check_rights(R_SPAWN)) + return + if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") + return + usr.client.holder.Topic("vv_override", list("monkeyone"=href_list[VV_HK_TARGET])) + if(href_list[VV_HK_MAKE_CYBORG]) + if(!check_rights(R_SPAWN)) + return + if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") + return + usr.client.holder.Topic("vv_override", list("makerobot"=href_list[VV_HK_TARGET])) + if(href_list[VV_HK_MAKE_ALIEN]) + if(!check_rights(R_SPAWN)) + return + if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") + return + usr.client.holder.Topic("vv_override", list("makealien"=href_list[VV_HK_TARGET])) + if(href_list[VV_HK_MAKE_SLIME]) + if(!check_rights(R_SPAWN)) + return + if(alert("Confirm mob type change?",,"Transform","Cancel") != "Transform") + return + usr.client.holder.Topic("vv_override", list("makeslime"=href_list[VV_HK_TARGET])) + if(href_list[VV_HK_SET_SPECIES]) + if(!check_rights(R_SPAWN)) + return + var/result = input(usr, "Please choose a new species","Species") as null|anything in GLOB.species_list + if(result) + var/newtype = GLOB.species_list[result] + admin_ticket_log("[key_name_admin(usr)] has modified the bodyparts of [src] to [result]") + set_species(newtype) + if(href_list[VV_HK_PURRBATION]) + if(!check_rights(R_SPAWN)) + return + if(!ishumanbasic(src)) + to_chat(usr, "This can only be done to the basic human species at the moment.") + return + var/success = purrbation_toggle(src) + if(success) + to_chat(usr, "Put [src] on purrbation.") + log_admin("[key_name(usr)] has put [key_name(src)] on purrbation.") + var/msg = "[key_name_admin(usr)] has put [key_name(src)] on purrbation." + message_admins(msg) + admin_ticket_log(src, msg) + + else + to_chat(usr, "Removed [src] from purrbation.") + log_admin("[key_name(usr)] has removed [key_name(src)] from purrbation.") + var/msg = "[key_name_admin(usr)] has removed [key_name(src)] from purrbation." + message_admins(msg) + admin_ticket_log(src, msg) /mob/living/carbon/human/MouseDrop_T(mob/living/target, mob/living/user) if(pulling == target && grab_state >= GRAB_AGGRESSIVE && stat == CONSCIOUS) diff --git a/code/modules/mob/living/carbon/human/human_block.dm b/code/modules/mob/living/carbon/human/human_block.dm new file mode 100644 index 0000000000..b1a5153ce5 --- /dev/null +++ b/code/modules/mob/living/carbon/human/human_block.dm @@ -0,0 +1,8 @@ +/mob/living/carbon/human/get_blocking_items() + . = ..() + if(wear_suit) + . += wear_suit + if(w_uniform) + . += w_uniform + if(wear_neck) + . += wear_neck diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index f4227e390e..324420a7dd 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -52,36 +52,12 @@ return martial_art_result return ..() -/mob/living/carbon/human/check_reflect(def_zone) - if(wear_suit?.IsReflect(def_zone)) - return TRUE - return ..() - -/mob/living/carbon/human/check_shields(atom/AM, damage, attack_text = "the attack", attack_type = MELEE_ATTACK, armour_penetration = 0) - . = ..() - if(.) - return - var/block_chance_modifier = round(damage / -3) - if(wear_suit) - var/final_block_chance = wear_suit.block_chance - (CLAMP((armour_penetration-wear_suit.armour_penetration)/2,0,100)) + block_chance_modifier - if(wear_suit.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type)) - return TRUE - if(w_uniform) - var/final_block_chance = w_uniform.block_chance - (CLAMP((armour_penetration-w_uniform.armour_penetration)/2,0,100)) + block_chance_modifier - if(w_uniform.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type)) - return TRUE - if(wear_neck) - var/final_block_chance = wear_neck.block_chance - (CLAMP((armour_penetration-wear_neck.armour_penetration)/2,0,100)) + block_chance_modifier - if(wear_neck.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type)) - return TRUE - return FALSE - /mob/living/carbon/human/can_embed(obj/item/I) if(I.get_sharpness() || is_pointed(I) || is_type_in_typecache(I, GLOB.can_embed_types)) return TRUE return FALSE -/mob/living/carbon/human/proc/check_block() +/mob/living/carbon/human/proc/check_martial_melee_block() if(mind) if(mind.martial_art && prob(mind.martial_art.block_chance) && mind.martial_art.can_use(src) && in_throw_mode && !incapacitated(FALSE, TRUE)) return TRUE diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index f0bf2fc23e..e39ce7d488 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -893,7 +893,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) accessory_overlay.icon_state = "m_ears_none_[layertext]" if(bodypart == "tail") accessory_overlay.icon_state = "m_tail_husk_[layertext]" - if(MATRIXED) + if(S.color_src == MATRIXED) var/list/husklist = list() husklist += ReadRGB("#a3a3a3") husklist += ReadRGB("#a3a3a3") @@ -1437,7 +1437,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) to_chat(user, "You do not breathe, so you cannot perform CPR.") /datum/species/proc/grab(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) - if(target.check_block()) + if(target.check_martial_melee_block()) target.visible_message("[target] blocks [user]'s grab attempt!") return 0 if(attacker_style && attacker_style.grab_act(user,target)) @@ -1453,9 +1453,15 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(IS_STAMCRIT(user)) //CITADEL CHANGE - makes it impossible to punch while in stamina softcrit to_chat(user, "You're too exhausted.") //CITADEL CHANGE - ditto return FALSE //CITADEL CHANGE - ditto - if(target.check_block()) + if(target.check_martial_melee_block()) target.visible_message("[target] blocks [user]'s attack!") return FALSE + + if(HAS_TRAIT(user, TRAIT_PUGILIST))//CITADEL CHANGE - makes punching cause staminaloss but funny martial artist types get a discount + user.adjustStaminaLossBuffered(1.5) + else + user.adjustStaminaLossBuffered(3.5) + if(attacker_style && attacker_style.harm_act(user,target)) return TRUE else @@ -1474,13 +1480,15 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) else user.do_attack_animation(target, ATTACK_EFFECT_PUNCH) - user.adjustStaminaLossBuffered(5) //CITADEL CHANGE - makes punching cause staminaloss - var/damage = rand(user.dna.species.punchdamagelow, user.dna.species.punchdamagehigh) + var/puncherstam = user.getStaminaLoss() + var/puncherbrute = user.getBruteLoss() + var/punchedstam = target.getStaminaLoss() + var/punchedbrute = target.getBruteLoss() //CITADEL CHANGES - makes resting and disabled combat mode reduce punch damage, makes being out of combat mode result in you taking more damage - if(!(target.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && damage < user.dna.species.punchstunthreshold) - damage = user.dna.species.punchstunthreshold - 1 + if(!(target.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) + damage *= 1.5 if(!CHECK_MOBILITY(user, MOBILITY_STAND)) damage *= 0.5 if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) @@ -1494,7 +1502,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(atk_verb == ATTACK_EFFECT_KICK) //kicks never miss (provided your species deals more than 0 damage) miss_chance = 0 else - miss_chance = min((user.dna.species.punchdamagehigh/user.dna.species.punchdamagelow) + user.getStaminaLoss() + (user.getBruteLoss()*0.5), 100) //old base chance for a miss + various damage. capped at 100 to prevent weirdness in prob() + miss_chance = min(10 + ((puncherstam + puncherbrute)*0.5), 100) //probability of miss has a base of 10, and modified based on half your stamina and brute total. Capped at max 100 and min 0 to prevent weirdness in prob() if(!damage || !affecting || prob(miss_chance))//future-proofing for species that have 0 damage/weird cases where no zone is targeted playsound(target.loc, user.dna.species.miss_sound, 25, TRUE, -1) @@ -1529,13 +1537,25 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) log_combat(user, target, "punched") if((target.stat != DEAD) && damage >= user.dna.species.punchstunthreshold) - target.visible_message("[user] knocks [target] down!", \ - "You're knocked down by [user]!", "You hear aggressive shuffling followed by a loud thud!", COMBAT_MESSAGE_RANGE, user) - to_chat(user, "You knock [target] down!") - var/knockdown_duration = 40 + (target.getStaminaLoss() + (target.getBruteLoss()*0.5))*0.8 - armor_block - target.DefaultCombatKnockdown(knockdown_duration) - target.forcesay(GLOB.hit_appends) - log_combat(user, target, "got a stun punch with their previous punch") + if((punchedstam > 50) && prob(punchedstam*0.5)) //If our punch victim has been hit above the threshold, and they have more than 50 stamina damage, roll for stun, probability of 1% per 2 stamina damage + + target.visible_message("[user] knocks [target] down!", \ + "You're knocked down by [user]!", "You hear aggressive shuffling followed by a loud thud!", COMBAT_MESSAGE_RANGE, user) + to_chat(user, "You knock [target] down!") + + var/knockdown_duration = 40 + (punchedstam + (punchedbrute*0.5))*0.8 - armor_block + target.DefaultCombatKnockdown(knockdown_duration) + target.forcesay(GLOB.hit_appends) + log_combat(user, target, "got a stun punch with their previous punch") + + if(HAS_TRAIT(user, TRAIT_KI_VAMPIRE) && !HAS_TRAIT(target, TRAIT_NOBREATH) && (punchedbrute < 100)) //If we're a ki vampire we also sap them of lifeforce, but only if they're not too beat up. Also living organics only. + user.adjustBruteLoss(-5) + user.adjustFireLoss(-5) + user.adjustStaminaLoss(-20) + + target.adjustCloneLoss(10) + target.adjustBruteLoss(10) + else if(!(target.mobility_flags & MOBILITY_STAND)) target.forcesay(GLOB.hit_appends) @@ -1552,6 +1572,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/aim_for_groin = user.zone_selected == "groin" var/target_aiming_for_groin = target.zone_selected == "groin" + if(target.check_martial_melee_block()) //END EDIT + target.visible_message("[target] blocks [user]'s disarm attempt!") + return FALSE if(IS_STAMCRIT(user)) to_chat(user, "You're too exhausted!") return FALSE @@ -1680,9 +1703,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /datum/species/proc/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/H) // Allows you to put in item-specific reactions based on species if(user != H) - if(H.check_shields(I, I.force, "the [I.name]", MELEE_ATTACK, I.armour_penetration)) + if(H.run_block(I, I.force, "the [I.name]", ATTACK_TYPE_MELEE, I.armour_penetration, user, affecting.body_zone) & BLOCK_SUCCESS) return 0 - if(H.check_block()) + if(H.check_martial_melee_block()) H.visible_message("[H] blocks [I]!") return 0 @@ -1798,7 +1821,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) return TRUE if(M.mind) attacker_style = M.mind.martial_art - if((M != H) && M.a_intent != INTENT_HELP && H.check_shields(M, 0, M.name, attack_type = UNARMED_ATTACK)) + if((M != H) && M.a_intent != INTENT_HELP && (H.run_block(M, 0, "[M]", ATTACK_TYPE_UNARMED, 0, M, M.zone_selected) & BLOCK_SUCCESS)) log_combat(M, H, "attempted to touch") H.visible_message("[M] attempted to touch [H]!") return TRUE @@ -1836,7 +1859,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(IS_STAMCRIT(user)) to_chat(user, "You're too exhausted.") return FALSE - if(target.check_block()) + if(target.check_martial_melee_block()) target.visible_message("[target] blocks [user]'s shoving attempt!") return FALSE if(attacker_style && attacker_style.disarm_act(user,target)) diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 5a9b830bc8..bb2c08aa9b 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -92,6 +92,8 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // //These count in on_life ticks which should be 2 seconds per every increment of 1 in a perfect world. var/dwarf_filth_ticker = 0 //Currently set =< 4, that means this will fire the proc around every 4-8 seconds. var/dwarf_eth_ticker = 0 //Currently set =< 1, that means this will fire the proc around every 2 seconds + var/last_filth_spam + var/last_alcohol_spam /obj/item/organ/dwarfgland/prepare_eat() var/obj/S = ..() @@ -136,40 +138,39 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // filth_counter += 10 //Dwarves could technically chainstun each other in a vomit tantrum spiral. switch(filth_counter) if(11 to 25) - if(prob(25)) - to_chat(owner, "Someone should really clean up in here!") + if(last_filth_spam + 40 SECONDS < world.time) + to_chat(owner, "Someone should really clean up in here!") + last_filth_spam = world.time if(26 to 50) - if(prob(30)) //Probability the message appears + if(prob(6)) //And then the probability they vomit along with it. to_chat(owner, "The stench makes you queasy.") - if(prob(20)) //And then the probability they vomit along with it. - owner.vomit(20) //I think vomit should stay over a disgust adjustment. + owner.vomit(10) //I think vomit should stay over a disgust adjustment. if(51 to 75) - if(prob(35)) + if(prob(9)) to_chat(owner, "By Armok! You won't be able to keep alcohol down at all!") - if(prob(25)) - owner.vomit(20) //Its more funny + owner.vomit(20) //Its more funny if(76 to 100) - if(prob(40)) + if(prob(11)) to_chat(owner, "You can't live in such FILTH!") - if(prob(25)) - owner.adjustToxLoss(10) //Now they start dying. - owner.vomit(20) + owner.adjustToxLoss(10) //Now they start dying. + owner.vomit(20) if(101 to INFINITY) //Now they will really start dying - if(prob(40)) + if(last_filth_spam + 12 SECONDS < world.time) to_chat(owner, " THERES TOO MUCH FILTH, OH GODS THE FILTH!") + last_filth_spam = world.time + if(prob(40)) owner.adjustToxLoss(15) - owner.vomit(40) + owner.vomit(30) CHECK_TICK //Check_tick right here, its motherfuckin magic. (To me at least) //Handles the dwarf alcohol cycle tied to on_life, it ticks in dwarf_cycle_ticker. /obj/item/organ/dwarfgland/proc/dwarf_eth_cycle() //BOOZE POWER + var/init_stored_alcohol = stored_alcohol for(var/datum/reagent/R in owner.reagents.reagent_list) if(istype(R, /datum/reagent/consumable/ethanol)) var/datum/reagent/consumable/ethanol/E = R - stored_alcohol += (E.boozepwr / 50) - if(stored_alcohol > max_alcohol) //Dwarves technically start at 250 alcohol stored. - stored_alcohol = max_alcohol + stored_alcohol = CLAMP(stored_alcohol + E.boozepwr / 50, 0, max_alcohol) var/heal_amt = heal_rate stored_alcohol -= alcohol_rate //Subtracts alcohol_Rate from stored alcohol so EX: 250 - 0.25 per each loop that occurs. if(stored_alcohol > 400) //If they are over 400 they start regenerating @@ -177,16 +178,27 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // owner.adjustFireLoss(-heal_amt) //Unless they drink casually all the time. owner.adjustOxyLoss(-heal_amt) owner.adjustCloneLoss(-heal_amt) //Also they will probably get brain damage if thats a thing here. - if(prob(25)) - switch(stored_alcohol) - if(0 to 24) + if(init_stored_alcohol + 0.5 < stored_alcohol) //recovering stored alcohol at a steady rate of +0.75, no spam. + return + switch(stored_alcohol) + if(0 to 24) + if(last_alcohol_spam + 8 SECONDS < world.time) to_chat(owner, "DAMNATION INCARNATE, WHY AM I CURSED WITH THIS DRY-SPELL? I MUST DRINK.") - owner.adjustToxLoss(35) - if(25 to 50) + last_alcohol_spam = world.time + owner.adjustToxLoss(10) + if(25 to 50) + if(last_alcohol_spam + 20 SECONDS < world.time) to_chat(owner, "Oh DAMN, I need some brew!") - if(51 to 75) + last_alcohol_spam = world.time + if(51 to 75) + if(last_alcohol_spam + 35 SECONDS < world.time) to_chat(owner, "Your body aches, you need to get ahold of some booze...") - if(76 to 100) + last_alcohol_spam = world.time + if(76 to 100) + if(last_alcohol_spam + 40 SECONDS < world.time) to_chat(owner, "A pint of anything would really hit the spot right now.") - if(101 to 150) + last_alcohol_spam = world.time + if(101 to 150) + if(last_alcohol_spam + 50 SECONDS < world.time) to_chat(owner, "You feel like you could use a good brew.") + last_alcohol_spam = world.time diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index 446e726256..abc2288e9b 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -11,7 +11,7 @@ siemens_coeff = 0 punchdamagelow = 5 punchdamagehigh = 14 - punchstunthreshold = 11 //about 40% chance to stun + punchstunthreshold = 10 no_equip = list(SLOT_WEAR_MASK, SLOT_WEAR_SUIT, SLOT_GLOVES, SLOT_SHOES, SLOT_W_UNIFORM, SLOT_S_STORE) nojumpsuit = 1 sexes = 1 @@ -168,7 +168,7 @@ name = "Silver Golem" id = "silver golem" fixed_mut_color = "ddd" - punchstunthreshold = 9 //60% chance, from 40% + punchstunthreshold = 9 meat = /obj/item/stack/ore/silver info_text = "As a Silver Golem, your attacks have a higher chance of stunning. Being made of silver, your body is immune to most types of magic." prefix = "Silver" @@ -190,7 +190,7 @@ stunmod = 0.4 punchdamagelow = 12 punchdamagehigh = 21 - punchstunthreshold = 18 //still 40% stun chance + punchstunthreshold = 18 speedmod = 4 //pretty fucking slow meat = /obj/item/stack/ore/iron info_text = "As a Plasteel Golem, you are slower, but harder to stun, and hit very hard when punching." @@ -469,7 +469,7 @@ var/cooldown = 150 var/last_teleport = 0 -/datum/action/innate/unstable_teleport/IsAvailable() +/datum/action/innate/unstable_teleport/IsAvailable(silent = FALSE) if(..()) if(world.time > last_teleport + cooldown) return 1 diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 98c4cedeb9..775f36cfc7 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -84,7 +84,7 @@ background_icon_state = "bg_alien" required_mobility_flags = NONE -/datum/action/innate/regenerate_limbs/IsAvailable() +/datum/action/innate/regenerate_limbs/IsAvailable(silent = FALSE) if(..()) var/mob/living/carbon/human/H = owner var/list/limbs_to_heal = H.get_missing_limbs() @@ -223,7 +223,7 @@ icon_icon = 'icons/mob/actions/actions_slime.dmi' background_icon_state = "bg_alien" -/datum/action/innate/split_body/IsAvailable() +/datum/action/innate/split_body/IsAvailable(silent = FALSE) if(..()) var/mob/living/carbon/human/H = owner if(H.blood_volume >= BLOOD_VOLUME_SLIME_SPLIT) @@ -776,7 +776,7 @@ ..() species = _species -/datum/action/innate/use_extract/IsAvailable() +/datum/action/innate/use_extract/IsAvailable(silent = FALSE) if(..()) if(species && species.current_extract && (world.time > species.extract_cooldown)) return TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm index 3c17ef9066..cb8fdbf101 100644 --- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm @@ -12,9 +12,9 @@ inherent_traits = list(TRAIT_NOBREATH) speedmod = 1.5 //faster than golems but not by much - punchdamagelow = 6 - punchdamagehigh = 14 - punchstunthreshold = 14 //about 44% chance to stun + punchdamagelow = 2 + punchdamagehigh = 12 //still better than humans + punchstunthreshold = 10 no_equip = list(SLOT_WEAR_MASK, SLOT_WEAR_SUIT, SLOT_GLOVES, SLOT_SHOES, SLOT_W_UNIFORM) diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index 1700927a24..6c42e622fe 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -23,7 +23,7 @@ armor = 25 punchdamagelow = 10 punchdamagehigh = 19 - punchstunthreshold = 14 //about 50% chance to stun + punchstunthreshold = 14 disguise_fail_health = 50 /datum/species/synth/on_species_gain(mob/living/carbon/human/H, datum/species/old_species) diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index 03da959171..c4a9fdb086 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -152,5 +152,7 @@ if(transfer_name) H.name = caster.name - clothes_req = 0 - human_req = 0 + + clothes_req = NONE + mobs_whitelist = null + mobs_blacklist = null diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index cb603dee90..63e772e07c 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -118,17 +118,15 @@ There are several things that need to be remembered: return - var/t_color = U.item_color - if(!t_color) - t_color = U.icon_state + var/target_overlay = U.icon_state if(U.adjusted == ALT_STYLE) - t_color = "[t_color]_d" + target_overlay = "[target_overlay]_d" - var/alt_worn = U.alternate_worn_icon || 'icons/mob/uniform.dmi' + var/alt_worn = U.mob_overlay_icon || 'icons/mob/clothing/uniform.dmi' var/variant_flag = NONE if((DIGITIGRADE in dna.species.species_traits) && U.mutantrace_variation & STYLE_DIGITIGRADE) - alt_worn = 'icons/mob/uniform_digi.dmi' + alt_worn = 'icons/mob/clothing/uniform_digi.dmi' variant_flag |= STYLE_DIGITIGRADE var/mutable_appearance/uniform_overlay @@ -136,10 +134,10 @@ There are several things that need to be remembered: if(dna && dna.species.sexes) var/G = (dna.features["body_model"] == FEMALE) ? "f" : "m" if(G == "f" && U.fitted != NO_FEMALE_UNIFORM) - uniform_overlay = U.build_worn_icon(t_color, UNIFORM_LAYER, alt_worn, FALSE, U.fitted, variant_flag, FALSE) + uniform_overlay = U.build_worn_icon(UNIFORM_LAYER, alt_worn, FALSE, U.fitted, target_overlay, variant_flag, FALSE) if(!uniform_overlay) - uniform_overlay = U.build_worn_icon(t_color, UNIFORM_LAYER, alt_worn, FALSE, NO_FEMALE_UNIFORM, variant_flag, FALSE) + uniform_overlay = U.build_worn_icon( UNIFORM_LAYER, alt_worn, FALSE, NO_FEMALE_UNIFORM, target_overlay, variant_flag, FALSE) if(OFFSET_UNIFORM in dna.species.offset_features) @@ -167,7 +165,7 @@ There are several things that need to be remembered: update_observer_view(wear_id) //TODO: add an icon file for ID slot stuff, so it's less snowflakey - id_overlay = wear_id.build_worn_icon(state = wear_id.item_state, default_layer = ID_LAYER, default_icon_file = 'icons/mob/mob.dmi') + id_overlay = wear_id.build_worn_icon(default_layer = ID_LAYER, default_icon_file = 'icons/mob/mob.dmi', override_state = wear_id.item_state) if(OFFSET_ID in dna.species.offset_features) id_overlay.pixel_x += dna.species.offset_features[OFFSET_ID][1] id_overlay.pixel_y += dna.species.offset_features[OFFSET_ID][2] @@ -199,10 +197,7 @@ There are several things that need to be remembered: if(hud_used.inventory_shown) client.screen += gloves update_observer_view(gloves,1) - var/t_state = gloves.item_state - if(!t_state) - t_state = gloves.icon_state - overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/hands.dmi') + overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/clothing/hands.dmi') gloves_overlay = overlays_standing[GLOVES_LAYER] if(OFFSET_GLOVES in dna.species.offset_features) gloves_overlay.pixel_x += dna.species.offset_features[OFFSET_GLOVES][1] @@ -228,7 +223,7 @@ There are several things that need to be remembered: client.screen += glasses //Either way, add the item to the HUD update_observer_view(glasses,1) if(!(head && (head.flags_inv & HIDEEYES)) && !(wear_mask && (wear_mask.flags_inv & HIDEEYES))) - overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/eyes.dmi') + overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/clothing/eyes.dmi', override_state = glasses.icon_state) var/mutable_appearance/glasses_overlay = overlays_standing[GLASSES_LAYER] if(glasses_overlay) if(OFFSET_GLASSES in dna.species.offset_features) @@ -255,7 +250,7 @@ There are several things that need to be remembered: client.screen += ears //add it to the client's screen update_observer_view(ears,1) - overlays_standing[EARS_LAYER] = ears.build_worn_icon(state = ears.icon_state, default_layer = EARS_LAYER, default_icon_file = 'icons/mob/ears.dmi') + overlays_standing[EARS_LAYER] = ears.build_worn_icon(default_layer = EARS_LAYER, default_icon_file = 'icons/mob/ears.dmi') var/mutable_appearance/ears_overlay = overlays_standing[EARS_LAYER] if(OFFSET_EARS in dna.species.offset_features) ears_overlay.pixel_x += dna.species.offset_features[OFFSET_EARS][1] @@ -282,16 +277,13 @@ There are several things that need to be remembered: client.screen += shoes //add it to client's screen update_observer_view(shoes,1) - var/alt_icon = S.alternate_worn_icon || 'icons/mob/feet.dmi' + var/alt_icon = S.mob_overlay_icon || 'icons/mob/clothing/feet.dmi' var/variation_flag = NONE if((DIGITIGRADE in dna.species.species_traits) && S.mutantrace_variation & STYLE_DIGITIGRADE) - alt_icon = 'icons/mob/feet_digi.dmi' + alt_icon = 'icons/mob/clothing/feet_digi.dmi' variation_flag |= STYLE_DIGITIGRADE - var/t_state = shoes.item_state - if (!t_state) - t_state = shoes.icon_state - overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(t_state, SHOES_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) + overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(SHOES_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) var/mutable_appearance/shoes_overlay = overlays_standing[SHOES_LAYER] if(OFFSET_SHOES in dna.species.offset_features) shoes_overlay.pixel_x += dna.species.offset_features[OFFSET_SHOES][1] @@ -314,7 +306,7 @@ There are several things that need to be remembered: var/t_state = s_store.item_state if(!t_state) t_state = s_store.icon_state - overlays_standing[SUIT_STORE_LAYER] = mutable_appearance(((s_store.alternate_worn_icon) ? s_store.alternate_worn_icon : 'icons/mob/belt_mirror.dmi'), t_state, -SUIT_STORE_LAYER) + overlays_standing[SUIT_STORE_LAYER] = mutable_appearance(((s_store.mob_overlay_icon) ? s_store.mob_overlay_icon : 'icons/mob/clothing/belt_mirror.dmi'), t_state, -SUIT_STORE_LAYER) var/mutable_appearance/s_store_overlay = overlays_standing[SUIT_STORE_LAYER] if(OFFSET_S_STORE in dna.species.offset_features) s_store_overlay.pixel_x += dna.species.offset_features[OFFSET_S_STORE][1] @@ -324,12 +316,24 @@ There are several things that need to be remembered: /mob/living/carbon/human/update_inv_head() - ..() - update_mutant_bodyparts() + remove_overlay(HEAD_LAYER) + + if(!get_bodypart(BODY_ZONE_HEAD)) //Decapitated + return + + if(client && hud_used) + var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HEAD] + inv.update_icon() + if(head) + head.screen_loc = ui_head + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) + client.screen += head + update_observer_view(head,1) remove_overlay(HEAD_LAYER) var/obj/item/clothing/head/H = head - var/alt_icon = H.alternate_worn_icon || 'icons/mob/head.dmi' + var/alt_icon = H.mob_overlay_icon || 'icons/mob/clothing/head.dmi' var/muzzled = FALSE var/variation_flag = NONE if(dna.species.mutant_bodyparts["mam_snouts"] && dna.features["mam_snouts"] != "None") @@ -337,10 +341,10 @@ There are several things that need to be remembered: else if(dna.species.mutant_bodyparts["snout"] && dna.features["snout"] != "None") muzzled = TRUE if(muzzled && H.mutantrace_variation & STYLE_MUZZLE) - alt_icon = 'icons/mob/head_muzzled.dmi' + alt_icon = 'icons/mob/clothing/head_muzzled.dmi' variation_flag |= STYLE_MUZZLE - overlays_standing[HEAD_LAYER] = H.build_worn_icon(H.icon_state, HEAD_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) + overlays_standing[HEAD_LAYER] = H.build_worn_icon(HEAD_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, H.icon_state, variation_flag, FALSE) var/mutable_appearance/head_overlay = overlays_standing[HEAD_LAYER] if(OFFSET_HEAD in dna.species.offset_features) @@ -348,6 +352,7 @@ There are several things that need to be remembered: head_overlay.pixel_y += dna.species.offset_features[OFFSET_HEAD][2] overlays_standing[HEAD_LAYER] = head_overlay apply_overlay(HEAD_LAYER) + update_mutant_bodyparts() /mob/living/carbon/human/update_inv_belt() remove_overlay(BELT_LAYER) @@ -362,11 +367,7 @@ There are several things that need to be remembered: client.screen += belt update_observer_view(belt) - var/t_state = belt.item_state - if(!t_state) - t_state = belt.icon_state - - overlays_standing[BELT_LAYER] = belt.build_worn_icon(state = t_state, default_layer = BELT_LAYER, default_icon_file = 'icons/mob/belt.dmi') + overlays_standing[BELT_LAYER] = belt.build_worn_icon(default_layer = BELT_LAYER, default_icon_file = 'icons/mob/clothing/belt.dmi') var/mutable_appearance/belt_overlay = overlays_standing[BELT_LAYER] if(OFFSET_BELT in dna.species.offset_features) belt_overlay.pixel_x += dna.species.offset_features[OFFSET_BELT][1] @@ -390,7 +391,7 @@ There are several things that need to be remembered: client.screen += wear_suit update_observer_view(wear_suit,1) - var/worn_icon = wear_suit.alternate_worn_icon || 'icons/mob/suit.dmi' + var/worn_icon = wear_suit.mob_overlay_icon || 'icons/mob/clothing/suit.dmi' var/center = FALSE var/dimension_x = 32 var/dimension_y = 32 @@ -405,20 +406,20 @@ There are several things that need to be remembered: variation_flag |= S.mutantrace_variation & T.taur_mode || S.mutantrace_variation & T.alt_taur_mode switch(variation_flag) if(STYLE_HOOF_TAURIC) - worn_icon = 'icons/mob/taur_hooved.dmi' + worn_icon = 'icons/mob/clothing/taur_hooved.dmi' if(STYLE_SNEK_TAURIC) - worn_icon = 'icons/mob/taur_naga.dmi' + worn_icon = 'icons/mob/clothing/taur_naga.dmi' if(STYLE_PAW_TAURIC) - worn_icon = 'icons/mob/taur_canine.dmi' + worn_icon = 'icons/mob/clothing/taur_canine.dmi' if(worn_icon != init_worn_icon) //worn icon sprite was changed, taur offsets will have to be applied. center = T.center dimension_x = T.dimension_x dimension_y = T.dimension_y else if((DIGITIGRADE in dna.species.species_traits) && S.mutantrace_variation & STYLE_DIGITIGRADE) //not a taur, but digitigrade legs. - worn_icon = 'icons/mob/suit_digi.dmi' + worn_icon = 'icons/mob/clothing/suit_digi.dmi' variation_flag |= STYLE_DIGITIGRADE - overlays_standing[SUIT_LAYER] = S.build_worn_icon(wear_suit.icon_state, SUIT_LAYER, worn_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) + overlays_standing[SUIT_LAYER] = S.build_worn_icon(SUIT_LAYER, worn_icon, FALSE, NO_FEMALE_UNIFORM, wear_suit.icon_state, variation_flag, FALSE) var/mutable_appearance/suit_overlay = overlays_standing[SUIT_LAYER] if(OFFSET_SUIT in dna.species.offset_features) suit_overlay.pixel_x += dna.species.offset_features[OFFSET_SUIT][1] @@ -456,11 +457,24 @@ There are several things that need to be remembered: /mob/living/carbon/human/update_inv_wear_mask() - ..() + remove_overlay(FACEMASK_LAYER) + + if(!get_bodypart(BODY_ZONE_HEAD)) //Decapitated + return + + if(client && hud_used) + var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_MASK] + inv.update_icon() + if(wear_mask) + wear_mask.screen_loc = ui_mask + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) + client.screen += wear_mask + update_observer_view(wear_mask,1) var/obj/item/clothing/mask/M = wear_mask remove_overlay(FACEMASK_LAYER) - var/alt_icon = M.alternate_worn_icon || 'icons/mob/mask.dmi' + var/alt_icon = M.mob_overlay_icon || 'icons/mob/clothing/mask.dmi' var/muzzled = FALSE var/variation_flag = NONE if(head && (head.flags_inv & HIDEMASK)) @@ -470,11 +484,10 @@ There are several things that need to be remembered: else if(dna.species.mutant_bodyparts["snout"] && dna.features["snout"] != "None") muzzled = TRUE if(muzzled && M.mutantrace_variation & STYLE_MUZZLE) - alt_icon = 'icons/mob/mask_muzzled.dmi' + alt_icon = 'icons/mob/clothing/mask_muzzled.dmi' variation_flag |= STYLE_MUZZLE - overlays_standing[FACEMASK_LAYER] = M.build_worn_icon(wear_mask.icon_state, FACEMASK_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) - var/mutable_appearance/mask_overlay = overlays_standing[FACEMASK_LAYER] + var/mutable_appearance/mask_overlay = M.build_worn_icon(FACEMASK_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, wear_mask.icon_state, variation_flag, FALSE) if(OFFSET_FACEMASK in dna.species.offset_features) mask_overlay.pixel_x += dna.species.offset_features[OFFSET_FACEMASK][1] @@ -512,22 +525,6 @@ There are several things that need to be remembered: //human HUD updates for items in our inventory -//update whether our head item appears on our hud. -/mob/living/carbon/human/update_hud_head(obj/item/I) - I.screen_loc = ui_head - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) - client.screen += I - update_observer_view(I,1) - -//update whether our mask item appears on our hud. -/mob/living/carbon/human/update_hud_wear_mask(obj/item/I) - I.screen_loc = ui_mask - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) - client.screen += I - update_observer_view(I,1) - //update whether our neck item appears on our hud. /mob/living/carbon/human/update_hud_neck(obj/item/I) I.screen_loc = ui_neck @@ -556,27 +553,32 @@ covers: By Remie Richards (yes I'm taking credit because this just removed 90% of the copypaste in update_icons()) -state: A string to use as the state, this is FAR too complex to solve in this proc thanks to shitty old code -so it's specified as an argument instead. +override_state: A string to use as the state, otherwise item_state or icon_state will be used. default_layer: The layer to draw this on if no other layer is specified default_icon_file: The icon file to draw states from if no other icon file is specified -isinhands: If true then alternate_worn_icon is skipped so that default_icon_file is used, +isinhands: If true then mob_overlay_icon is skipped so that default_icon_file is used, in this situation default_icon_file is expected to match either the lefthand_ or righthand_ file var femalueuniform: A value matching a uniform item's fitted var, if this is anything but NO_FEMALE_UNIFORM, we generate/load female uniform sprites matching all previously decided variables +style_flags: mutant race appearance flags, mostly used for worn_overlays() + +use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if mob_overlay_icon is present. */ -/obj/item/proc/build_worn_icon(state = "", default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, style_flags = NONE, use_alt_icon = TRUE) +/obj/item/proc/build_worn_icon(default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, override_state, style_flags = NONE, use_mob_overlay_icon = TRUE) + + var/t_state + t_state = override_state || item_state || icon_state //Find a valid icon file from variables+arguments var/file2use - if(!isinhands && alternate_worn_icon && use_alt_icon) - file2use = alternate_worn_icon + if(!isinhands && mob_overlay_icon && use_mob_overlay_icon) + file2use = mob_overlay_icon if(!file2use) file2use = default_icon_file @@ -589,13 +591,13 @@ generate/load female uniform sprites matching all previously decided variables var/mutable_appearance/standing if(femaleuniform) - standing = wear_female_version(state,file2use,layer2use,femaleuniform) + standing = wear_female_version(t_state,file2use,layer2use,femaleuniform) if(!standing) - standing = mutable_appearance(file2use, state, -layer2use) + standing = mutable_appearance(file2use, t_state, -layer2use) //Get the overlays for this item when it's being worn //eg: ammo counters, primed grenade flashes, etc. - var/list/worn_overlays = worn_overlays(isinhands, file2use, style_flags) + var/list/worn_overlays = worn_overlays(isinhands, file2use, t_state, style_flags) if(worn_overlays && worn_overlays.len) standing.overlays.Add(worn_overlays) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index ebb5a3dd31..8097859aac 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -28,10 +28,8 @@ if(stat != DEAD) handle_brain_damage() - /* BUG_PROBABLE_CAUSE if(stat != DEAD) handle_liver() - */ if(stat == DEAD) stop_sound_channel(CHANNEL_HEARTBEAT) @@ -377,9 +375,15 @@ var/turf/open/miasma_turf = deceasedturf - var/list/cached_gases = miasma_turf.air.gases + var/datum/gas_mixture/stank = new - cached_gases[/datum/gas/miasma] += 0.1 + stank.gases[/datum/gas/miasma] = 0.1 + + stank.temperature = BODYTEMP_NORMAL + + miasma_turf.assume_air(stank) + + miasma_turf.air_update_turf() /mob/living/carbon/proc/handle_blood() return @@ -684,36 +688,17 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put var/obj/item/organ/liver/liver = getorganslot(ORGAN_SLOT_LIVER) if((!dna && !liver) || (NOLIVER in dna.species.species_traits)) return - if(liver) - if(liver.damage < liver.maxHealth) - liver.organ_flags |= ORGAN_FAILING - liver_failure() - else + if(!liver || liver.organ_flags & ORGAN_FAILING) liver_failure() -/mob/living/carbon/proc/undergoing_liver_failure() - var/obj/item/organ/liver/liver = getorganslot(ORGAN_SLOT_LIVER) - if(liver && liver.failing) - return TRUE - -/mob/living/carbon/proc/return_liver_damage() - var/obj/item/organ/liver/liver = getorganslot(ORGAN_SLOT_LIVER) - if(liver) - return liver.damage - -/mob/living/carbon/proc/applyLiverDamage(var/d) - var/obj/item/organ/liver/L = getorganslot(ORGAN_SLOT_LIVER) - if(L) - L.damage += d - /mob/living/carbon/proc/liver_failure() reagents.end_metabolization(src, keep_liverless = TRUE) //Stops trait-based effects on reagents, to prevent permanent buffs reagents.metabolize(src, can_overdose=FALSE, liverless = TRUE) if(HAS_TRAIT(src, TRAIT_STABLELIVER)) return adjustToxLoss(4, TRUE, TRUE) - if(prob(30)) - to_chat(src, "You feel a stabbing pain in your abdomen!") + if(prob(15)) + to_chat(src, "You feel a stabbing pain in your abdomen!") //////////////// diff --git a/code/modules/mob/living/carbon/monkey/update_icons.dm b/code/modules/mob/living/carbon/monkey/update_icons.dm index ff83b00fe1..1e00815f24 100644 --- a/code/modules/mob/living/carbon/monkey/update_icons.dm +++ b/code/modules/mob/living/carbon/monkey/update_icons.dm @@ -45,7 +45,7 @@ remove_overlay(LEGCUFF_LAYER) clear_alert("legcuffed") if(legcuffed) - var/mutable_appearance/legcuffs = mutable_appearance('icons/mob/restraints.dmi', legcuffed.item_state, -LEGCUFF_LAYER) + var/mutable_appearance/legcuffs = mutable_appearance('icons/mob/clothing/restraints.dmi', legcuffed.item_state, -LEGCUFF_LAYER) legcuffs.color = handcuffed.color legcuffs.pixel_y = 8 diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index e5483e8d73..a431059a89 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -42,15 +42,11 @@ observers = null break - var/t_state = I.item_state - if(!t_state) - t_state = I.icon_state - var/icon_file = I.lefthand_file if(get_held_index_of_item(I) % 2 == 0) icon_file = I.righthand_file - hands += I.build_worn_icon(state = t_state, default_layer = HANDS_LAYER, default_icon_file = icon_file, isinhands = TRUE) + hands += I.build_worn_icon(default_layer = HANDS_LAYER, default_icon_file = icon_file, isinhands = TRUE) overlays_standing[HANDS_LAYER] = hands apply_overlay(HANDS_LAYER) @@ -94,13 +90,13 @@ if(!get_bodypart(BODY_ZONE_HEAD)) //Decapitated return - if(client && hud_used && hud_used.inv_slots[SLOT_WEAR_MASK]) + if(client && hud_used) var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_MASK] - inv.update_icon() + inv?.update_icon() if(wear_mask) if(!(head && (head.flags_inv & HIDEMASK))) - overlays_standing[FACEMASK_LAYER] = wear_mask.build_worn_icon(state = wear_mask.icon_state, default_layer = FACEMASK_LAYER, default_icon_file = 'icons/mob/mask.dmi') + overlays_standing[FACEMASK_LAYER] = wear_mask.build_worn_icon(default_layer = FACEMASK_LAYER, default_icon_file = 'icons/mob/clothing/mask.dmi', override_state = wear_mask.icon_state) update_hud_wear_mask(wear_mask) apply_overlay(FACEMASK_LAYER) @@ -114,7 +110,7 @@ if(wear_neck) if(!(head && (head.flags_inv & HIDENECK))) - overlays_standing[NECK_LAYER] = wear_neck.build_worn_icon(state = wear_neck.icon_state, default_layer = NECK_LAYER, default_icon_file = 'icons/mob/neck.dmi') + overlays_standing[NECK_LAYER] = wear_neck.build_worn_icon(default_layer = NECK_LAYER, default_icon_file = 'icons/mob/clothing/neck.dmi', override_state = wear_neck.icon_state) update_hud_neck(wear_neck) apply_overlay(NECK_LAYER) @@ -122,12 +118,12 @@ /mob/living/carbon/update_inv_back() remove_overlay(BACK_LAYER) - if(client && hud_used && hud_used.inv_slots[SLOT_BACK]) + if(client && hud_used) var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_BACK] - inv.update_icon() + inv?.update_icon() if(back) - overlays_standing[BACK_LAYER] = back.build_worn_icon(state = back.icon_state, default_layer = BACK_LAYER, default_icon_file = 'icons/mob/back.dmi') + overlays_standing[BACK_LAYER] = back.build_worn_icon(default_layer = BACK_LAYER, default_icon_file = 'icons/mob/clothing/back.dmi', override_state = back.icon_state) update_hud_back(back) apply_overlay(BACK_LAYER) @@ -138,12 +134,12 @@ if(!get_bodypart(BODY_ZONE_HEAD)) //Decapitated return - if(client && hud_used && hud_used.inv_slots[SLOT_BACK]) + if(client && hud_used) var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HEAD] - inv.update_icon() + inv?.update_icon() if(head) - overlays_standing[HEAD_LAYER] = head.build_worn_icon(state = head.icon_state, default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/head.dmi') + overlays_standing[HEAD_LAYER] = head.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/clothing/head.dmi', override_state = head.icon_state) update_hud_head(head) apply_overlay(HEAD_LAYER) @@ -152,7 +148,7 @@ /mob/living/carbon/update_inv_handcuffed() remove_overlay(HANDCUFF_LAYER) if(handcuffed) - var/mutable_appearance/cuffs = mutable_appearance('icons/mob/restraints.dmi', handcuffed.item_state, -HANDCUFF_LAYER) + var/mutable_appearance/cuffs = mutable_appearance('icons/mob/clothing/restraints.dmi', handcuffed.item_state, -HANDCUFF_LAYER) cuffs.color = handcuffed.color overlays_standing[HANDCUFF_LAYER] = cuffs @@ -162,7 +158,7 @@ remove_overlay(LEGCUFF_LAYER) clear_alert("legcuffed") if(legcuffed) - var/mutable_appearance/legcuffs = mutable_appearance('icons/mob/restraints.dmi', legcuffed.item_state, -LEGCUFF_LAYER) + var/mutable_appearance/legcuffs = mutable_appearance('icons/mob/clothing/restraints.dmi', legcuffed.item_state, -LEGCUFF_LAYER) legcuffs.color = legcuffed.color overlays_standing[LEGCUFF_LAYER] = legcuffs @@ -195,15 +191,6 @@ /mob/living/carbon/proc/update_hud_back(obj/item/I) return - - -//Overlays for the worn overlay so you can overlay while you overlay -//eg: ammo counters, primed grenade flashing, etc. -//"icon_file" is used automatically for inhands etc. to make sure it gets the right inhand file -/obj/item/proc/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) - . = list() - - /mob/living/carbon/update_body() update_body_parts() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 4ef741745f..5fa64e5ab5 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1198,3 +1198,19 @@ gender = ngender return TRUE return FALSE + +/mob/living/vv_get_header() + . = ..() + var/refid = REF(src) + . += {" +
    [VV_HREF_TARGETREF_1V(refid, VV_HK_BASIC_EDIT, "[ckey || "no ckey"]", NAMEOF(src, ckey))] / [VV_HREF_TARGETREF_1V(refid, VV_HK_BASIC_EDIT, "[real_name || "no real name"]", NAMEOF(src, real_name))] +
    + BRUTE:[getBruteLoss()] + FIRE:[getFireLoss()] + TOXIN:[getToxLoss()] + OXY:[getOxyLoss()] + CLONE:[getCloneLoss()] + BRAIN:[getOrganLoss(ORGAN_SLOT_BRAIN)] + STAMINA:[getStaminaLoss()] + + "} diff --git a/code/modules/mob/living/living_block.dm b/code/modules/mob/living/living_block.dm new file mode 100644 index 0000000000..d9e3309e47 --- /dev/null +++ b/code/modules/mob/living/living_block.dm @@ -0,0 +1,98 @@ +// This file has a weird name, but it's for anything related to the checks for shields, blocking, dodging, and similar "stop this attack before it actually impacts the target" as opposed to "defend once it has hit". + +/* +/// Bitflags for check_block() and handle_block(). Meant to be combined. You can be hit and still reflect, for example, if you do not use BLOCK_SUCCESS. +/// Attack was not blocked +#define BLOCK_NONE NONE +/// Attack was blocked, do not do damage. THIS FLAG MUST BE THERE FOR DAMAGE/EFFECT PREVENTION! +#define BLOCK_SUCCESS (1<<1) + +/// The below are for "metadata" on "how" the attack was blocked. + +/// Attack was and should be reflected (NOTE: the SHOULD here is important, as it says "the thing blocking isn't handling the reflecting for you so do it yourself"!) +#define BLOCK_SHOULD_REFLECT (1<<2) +/// Attack was manually redirected (including reflected) by any means by the defender. For when YOU are handling the reflection, rather than the thing hitting you. (see sleeping carp) +#define BLOCK_REDIRECTED (1<<3) +/// Attack was blocked by something like a shield. +#define BLOCK_PHYSICAL_EXTERNAL (1<<4) +/// Attack was blocked by something worn on you. +#define BLOCK_PHYSICAL_INTERNAL (1<<5) +/// Attack should pass through. Like SHOULD_REFLECT but for.. well, passing through harmlessly. +#define BLOCK_SHOULD_PASSTHROUGH (1<<6) +/// Attack outright missed because the target dodged. Should usually be combined with SHOULD_PASSTHROUGH or something (see martial arts) +#define BLOCK_TARGET_DODGED (1<<7) +*/ + +///Check whether or not we can block, without "triggering" a block. Basically run checks without effects like depleting shields. Wrapper for do_run_block(). The arguments on that means the same as for this. +/mob/living/proc/check_block(atom/object, damage, attack_text = "the attack", attack_type, armour_penetration, mob/attacker, def_zone, list/return_list) + return do_run_block(FALSE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list) + +/// Runs a block "sequence", effectively checking and then doing effects if necessary. Wrapper for do_run_block(). The arguments on that means the same as for this. +/mob/living/proc/run_block(atom/object, damage, attack_text = "the attack", attack_type, armour_penetration, mob/attacker, def_zone, list/return_list) + return do_run_block(TRUE, object, damage, attack_text, attack_type, armour_penetration, attacker, check_zone(def_zone), return_list) + +/** The actual proc for block checks. DO NOT USE THIS DIRECTLY UNLESS YOU HAVE VERY GOOD REASON TO. To reduce copypaste for differences between handling for real attacks and virtual checks. + * Automatically checks all held items for /obj/item/proc/run_block() with the same parameters. + * @params + * real_attack - If this attack is real. This one is quirky; If it's real, run_block is called. If it's not, check_block is called and none of the regular checks happen, and this is effectively only useful + * for populating return_list with blocking metadata. + * object - Whatever /atom is actually hitting us, in essence. For example, projectile if gun, item if melee, structure/whatever if it's a thrown, etc. + * damage - The nominal damage this would do if it was to hit. Obviously doesn't take into effect explosions/magic/similar things.. unless you implement it to raise the value. + * attack_text - The text that this attack should show, in the context of something like "[src] blocks [attack_text]!" + * attack_type - See __DEFINES/combat.dm - Attack types, to distinguish between, for example, someone throwing an item at us vs bashing us with it. + * armour_penetration - 0-100 value of how effectively armor penetrating the attack should be. + * attacker - Set to the mob attacking IF KNOWN. Do not expect this to always be set! + * def_zone - The zone this'll impact. + * return_list - If something wants to grab things from what items/whatever put into list/block_return on obj/item/run_block and the comsig, pass in a list so you can grab anything put in it after block runs. + */ +/mob/living/proc/do_run_block(real_attack = TRUE, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list = list()) + // Component signal block runs have highest priority.. for now. + . = SEND_SIGNAL(src, COMSIG_LIVING_RUN_BLOCK, real_attack, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, return_list) + if((. & BLOCK_SUCCESS) && !(. & BLOCK_CONTINUE_CHAIN)) + return + var/list/obj/item/tocheck = get_blocking_items() + sortTim(tocheck, /proc/cmp_item_block_priority_asc) + // i don't like this + var/block_chance_modifier = round(damage / -3) + if(real_attack) + for(var/obj/item/I in tocheck) + // i don't like this too + var/final_block_chance = I.block_chance - (CLAMP((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example + var/results = I.run_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list) + . |= results + if((results & BLOCK_SUCCESS) && !(results & BLOCK_CONTINUE_CHAIN)) + break + else + for(var/obj/item/I in tocheck) + // i don't like this too + var/final_block_chance = I.block_chance - (CLAMP((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example + I.check_block(src, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, return_list) + +/// Gets an unsortedlist of objects to run block checks on. +/mob/living/proc/get_blocking_items() + . = list() + for(var/obj/item/I in held_items) + // this is a bad check but i am not removing it until a better catchall is made + if(istype(I, /obj/item/clothing)) + continue + . |= I + +/obj/item + /// The 0% to 100% chance for the default implementation of random block rolls. + var/block_chance = 0 + /// Block priority, higher means we check this higher in the "chain". + var/block_priority = BLOCK_PRIORITY_DEFAULT + +/// Runs block and returns flag for do_run_block to process. +/obj/item/proc/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + SEND_SIGNAL(src, COMSIG_ITEM_RUN_BLOCK, owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) + if(prob(final_block_chance)) + owner.visible_message("[owner] blocks [attack_text] with [src]!") + return BLOCK_SUCCESS | BLOCK_PHYSICAL_EXTERNAL + return BLOCK_NONE + +/// Returns block information using list/block_return. Used for check_block() on mobs. +/obj/item/proc/check_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + SEND_SIGNAL(src, COMSIG_ITEM_CHECK_BLOCK, owner, object, damage, attack_text, attack_type, armour_penetration, attacker, def_zone, final_block_chance, block_return) + var/existing = block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] + block_return[BLOCK_RETURN_NORMAL_BLOCK_CHANCE] = max(existing || 0, final_block_chance) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 27ecaf30d5..7d220739d5 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -36,48 +36,44 @@ /mob/living/proc/on_hit(obj/item/projectile/P) return BULLET_ACT_HIT -/mob/living/proc/check_shields(atom/AM, damage, attack_text = "the attack", attack_type = MELEE_ATTACK, armour_penetration = 0) - var/block_chance_modifier = round(damage / -3) - for(var/obj/item/I in held_items) - if(!istype(I, /obj/item/clothing)) - var/final_block_chance = I.block_chance - (CLAMP((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example - if(I.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type)) - return TRUE - return FALSE - -/mob/living/proc/check_reflect(def_zone) //Reflection checks for anything in your hands, based on the reflection chance of the object(s) - for(var/obj/item/I in held_items) - if(I.IsReflect(def_zone)) - return TRUE - return FALSE - -/mob/living/proc/reflect_bullet_check(obj/item/projectile/P, def_zone) - if(P.is_reflectable && check_reflect(def_zone)) // Checks if you've passed a reflection% check - visible_message("The [P.name] gets reflected by [src]!", \ - "The [P.name] gets reflected by [src]!") - // Find a turf near or on the original location to bounce to - if(P.starting) - var/new_x = P.starting.x + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) - var/new_y = P.starting.y + pick(0, 0, 0, 0, 0, -1, 1, -2, 2) - var/turf/curloc = get_turf(src) - // redirect the projectile - P.original = locate(new_x, new_y, P.z) - P.starting = curloc - P.firer = src - P.yo = new_y - curloc.y - P.xo = new_x - curloc.x - var/new_angle_s = P.Angle + rand(120,240) - while(new_angle_s > 180) // Translate to regular projectile degrees - new_angle_s -= 360 - P.setAngle(new_angle_s) - return TRUE - return FALSE +/mob/living/proc/handle_projectile_attack_redirection(obj/item/projectile/P, redirection_mode, silent = FALSE) + P.ignore_source_check = TRUE + switch(redirection_mode) + if(REDIRECT_METHOD_DEFLECT) + P.setAngle(SIMPLIFY_DEGREES(P.Angle + rand(120, 240))) + if(!silent) + visible_message("[P] gets deflected by [src]!", \ + "[P] gets deflected by [src]!") + if(REDIRECT_METHOD_REFLECT) + P.setAngle(SIMPLIFY_DEGREES(P.Angle + 180)) + if(!silent) + visible_message("[P] gets reflected by [src]!", \ + "[P] gets reflected by [src]!") + if(REDIRECT_METHOD_PASSTHROUGH) + if(!silent) + visible_message("[P] passes through [src]!", \ + "[P] passes through [src]!") + return + if(REDIRECT_METHOD_RETURN_TO_SENDER) + if(!silent) + visible_message("[src] deflects [P] back at their attacker!", \ + "[src] deflects [P] back at their attacker!") + if(P.firer) + P.setAngle(Get_Angle(src, P.firer)) + else + P.setAngle(SIMPLIFY_DEGREES(P.Angle + 180)) + else + CRASH("Invalid rediretion mode [redirection_mode]") /mob/living/bullet_act(obj/item/projectile/P, def_zone) if(P.original != src || P.firer != src) //try to block or reflect the bullet, can't do so when shooting oneself - if(reflect_bullet_check(P, def_zone)) - return BULLET_ACT_FORCE_PIERCE // complete projectile permutation - if(check_shields(P, P.damage, "the [P.name]", PROJECTILE_ATTACK, P.armour_penetration)) + var/list/returnlist = list() + var/returned = run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist) + if(returned & BLOCK_SHOULD_REDIRECT) + handle_projectile_attack_redirection(P, returnlist[BLOCK_RETURN_REDIRECT_METHOD]) + if(returned & BLOCK_REDIRECTED) + return BULLET_ACT_FORCE_PIERCE + if(returned & BLOCK_SUCCESS) P.on_hit(src, 100, def_zone) return BULLET_ACT_BLOCK var/armor = run_armor_check(def_zone, P.flag, null, null, P.armour_penetration, null) @@ -108,12 +104,14 @@ return FALSE /mob/living/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum) + // Throwingdatum can be null if someone had an accident() while slipping with an item in hand. var/obj/item/I var/throwpower = 30 if(isitem(AM)) I = AM throwpower = I.throwforce - if(check_shields(AM, throwpower, "\the [AM.name]", THROWN_PROJECTILE_ATTACK)) + var/impacting_zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest + if(run_block(AM, throwpower, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, impacting_zone) & BLOCK_SUCCESS) hitpush = FALSE skipcatch = TRUE blocked = TRUE @@ -124,10 +122,9 @@ if(I) if(!skipcatch && isturf(I.loc) && catch_item(I)) return TRUE - var/zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest var/dtype = BRUTE var/volume = I.get_volume_by_throwforce_and_or_w_class() - SEND_SIGNAL(I, COMSIG_MOVABLE_IMPACT_ZONE, src, zone) + SEND_SIGNAL(I, COMSIG_MOVABLE_IMPACT_ZONE, src, impacting_zone) dtype = I.damtype if (I.throwforce > 0) //If the weapon's throwforce is greater than zero... @@ -145,8 +142,8 @@ if(!blocked) visible_message("[src] has been hit by [I].", \ "[src] has been hit by [I].") - var/armor = run_armor_check(zone, "melee", "Your armor has protected your [parse_zone(zone)].", "Your armor has softened hit to your [parse_zone(zone)].",I.armour_penetration) - apply_damage(I.throwforce, dtype, zone, armor) + var/armor = run_armor_check(impacting_zone, "melee", "Your armor has protected your [parse_zone(impacting_zone)].", "Your armor has softened hit to your [parse_zone(impacting_zone)].",I.armour_penetration) + apply_damage(I.throwforce, dtype, impacting_zone, armor) if(I.thrownby) log_combat(I.thrownby, src, "threw and hit", I) else @@ -193,17 +190,6 @@ if(user == anchored || !isturf(user.loc)) return FALSE - //pacifist vore check. - if(user.pulling && HAS_TRAIT(user, TRAIT_PACIFISM) && user.voremode) //they can only do heals, noisy guts, absorbing (technically not harm) - if(ismob(user.pulling)) - var/mob/P = user.pulling - if(src != user) - to_chat(user, "You can't risk digestion!") - return FALSE - else - user.vore_attack(user, P, user) - return - //normal vore check. if(user.pulling && user.grab_state == GRAB_AGGRESSIVE && user.voremode) if(ismob(user.pulling)) @@ -283,7 +269,7 @@ /mob/living/attack_hand(mob/user) ..() //Ignoring parent return value here. SEND_SIGNAL(src, COMSIG_MOB_ATTACK_HAND, user) - if((user != src) && user.a_intent != INTENT_HELP && check_shields(user, 0, user.name, attack_type = UNARMED_ATTACK)) + if((user != src) && user.a_intent != INTENT_HELP && (run_block(user, 0, user.name, ATTACK_TYPE_UNARMED | ATTACK_TYPE_MELEE, null, user, check_zone(user.zone_selected)) & BLOCK_SUCCESS)) log_combat(user, src, "attempted to touch") visible_message("[user] attempted to touch [src]!") return TRUE @@ -294,7 +280,7 @@ to_chat(user, "You don't want to hurt [src]!") return TRUE var/hulk_verb = pick("smash","pummel") - if(user != src && check_shields(user, 15, "the [hulk_verb]ing")) + if(user != src && (run_block(user, 15, "the [hulk_verb]ing", ATTACK_TYPE_MELEE, null, user, check_zone(user.zone_selected)) & BLOCK_SUCCESS)) return TRUE ..() return FALSE @@ -309,14 +295,14 @@ M.Feedstop() return // can't attack while eating! - if(HAS_TRAIT(src, TRAIT_PACIFISM)) + if(HAS_TRAIT(M, TRAIT_PACIFISM)) to_chat(M, "You don't want to hurt anyone!") return FALSE var/damage = rand(5, 35) if(M.is_adult) damage = rand(20, 40) - if(check_shields(M, damage, "the [M.name]")) + if(run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, null, M, check_zone(M.zone_selected)) & BLOCK_SUCCESS) return FALSE if (stat != DEAD) @@ -335,7 +321,7 @@ if(HAS_TRAIT(M, TRAIT_PACIFISM)) to_chat(M, "You don't want to hurt anyone!") return FALSE - if(check_shields(M, rand(M.melee_damage_lower, M.melee_damage_upper), "the [M.name]", MELEE_ATTACK, M.armour_penetration)) + if(run_block(M, rand(M.melee_damage_lower, M.melee_damage_upper), "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected)) & BLOCK_SUCCESS) return FALSE if(M.attack_sound) playsound(loc, M.attack_sound, 50, 1, 1) @@ -345,17 +331,15 @@ log_combat(M, src, "attacked") return TRUE - /mob/living/attack_paw(mob/living/carbon/monkey/M) if (M.a_intent == INTENT_HARM) if(HAS_TRAIT(M, TRAIT_PACIFISM)) to_chat(M, "You don't want to hurt anyone!") return FALSE - if(M.is_muzzled() || (M.wear_mask && M.wear_mask.flags_cover & MASKCOVERSMOUTH)) to_chat(M, "You can't bite with your mouth covered!") return FALSE - if(check_shields(M, 0, "the [M.name]")) + if(run_block(M, 0, "the [M.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, M, check_zone(M.zone_selected)) & BLOCK_SUCCESS) return FALSE M.do_attack_animation(src, ATTACK_EFFECT_BITE) if (prob(75)) @@ -379,7 +363,7 @@ if(HAS_TRAIT(L, TRAIT_PACIFISM)) to_chat(L, "You don't want to hurt anyone!") return FALSE - if(L != src && check_shields(L, rand(1, 3), "the [L.name]")) + if(L != src && (run_block(L, rand(1, 3), "the [L.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, L, check_zone(L.zone_selected)) & BLOCK_SUCCESS)) return FALSE L.do_attack_animation(src) if(prob(90)) @@ -393,7 +377,7 @@ "[L.name] has attempted to bite [src]!", null, COMBAT_MESSAGE_RANGE) /mob/living/attack_alien(mob/living/carbon/alien/humanoid/M) - if((M != src) && M.a_intent != INTENT_HELP && check_shields(M, 0, "the [M.name]")) + if((M != src) && M.a_intent != INTENT_HELP && (run_block(M, 0, "the [M.name]", ATTACK_TYPE_MELEE | ATTACK_TYPE_UNARMED, M, check_zone(M.zone_selected)) & BLOCK_SUCCESS)) visible_message("[M] attempted to touch [src]!") return FALSE switch(M.a_intent) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 35b49cce8e..f90b285d2d 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -354,7 +354,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(cultslurring) message = cultslur(message) - + if(clockcultslurring) message = CLOCK_CULT_SLUR(message) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 6b4a6645e6..d178af9fb0 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -695,7 +695,7 @@ holo_icon = client.prefs.get_filtered_holoform(HOLOFORM_FILTER_AI) else holo_icon = getHologramIcon(icon('icons/mob/ai.dmi', "female")) - else if("xeno queen") + if("xeno queen") holo_icon = getHologramIcon(icon(icon_list[input],"alienq")) else holo_icon = getHologramIcon(icon(icon_list[input], input)) diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 810dd778de..892cc3f13b 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -283,9 +283,7 @@ T.visible_message("A port on [src] opens to reveal [cable], which promptly falls to the floor.", "You hear the soft click of something light and hard falling to the ground.") if("loudness") if(subscreen == 1) // Open Instrument - internal_instrument.interact(src) - if(subscreen == 2) // Change Instrument type - internal_instrument.selectInstrument() + internal_instrument.ui_interact(src) //updateUsrDialog() We only need to account for the single mob this is intended for, and he will *always* be able to call this window paiInterface() // So we'll just call the update directly rather than doing some default checks diff --git a/code/modules/mob/living/silicon/robot/update_icons.dm b/code/modules/mob/living/silicon/robot/update_icons.dm index 8d40e35706..72ad21c51e 100644 --- a/code/modules/mob/living/silicon/robot/update_icons.dm +++ b/code/modules/mob/living/silicon/robot/update_icons.dm @@ -41,7 +41,7 @@ else add_overlay("ov-opencover -c") if(hat) - var/mutable_appearance/head_overlay = hat.build_worn_icon(state = hat.icon_state, default_layer = 20, default_icon_file = 'icons/mob/head.dmi') + var/mutable_appearance/head_overlay = hat.build_worn_icon(default_layer = 20, default_icon_file = 'icons/mob/clothing/head.dmi', override_state = hat.icon_state) head_overlay.pixel_y += hat_offset add_overlay(head_overlay) update_fire() diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index a93bc8662e..9b3db8af62 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -112,11 +112,15 @@ /mob/living/silicon/bullet_act(obj/item/projectile/P, def_zone) if(P.original != src || P.firer != src) //try to block or reflect the bullet, can't do so when shooting oneself - if(reflect_bullet_check(P, def_zone)) - return -1 // complete projectile permutation - if(check_shields(P, P.damage, "the [P.name]", PROJECTILE_ATTACK, P.armour_penetration)) + var/list/returnlist = list() + var/returned = run_block(P, P.damage, "the [P.name]", ATTACK_TYPE_PROJECTILE, P.armour_penetration, P.firer, def_zone, returnlist) + if(returned & BLOCK_SHOULD_REDIRECT) + handle_projectile_attack_redirection(P, returnlist[BLOCK_RETURN_REDIRECT_METHOD]) + if(returned & BLOCK_REDIRECTED) + return BULLET_ACT_FORCE_PIERCE + if(returned & BLOCK_SUCCESS) P.on_hit(src, 100, def_zone) - return 2 + return BULLET_ACT_BLOCK if((P.damage_type == BRUTE || P.damage_type == BURN)) adjustBruteLoss(P.damage) if(prob(P.damage*1.5)) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 75364b2845..a8e0d2c1c8 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -445,7 +445,6 @@ Pass the desired type path itself, declaring a temporary var beforehand is not r return scan_result else return FALSE //The current element failed assessment, move on to the next. - return /mob/living/simple_animal/bot/proc/check_bot(targ) var/turf/T = get_turf(targ) diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index d3fb65c585..ab7c632214 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -523,9 +523,6 @@ soft_reset() return - reagent_id = null - return - /mob/living/simple_animal/bot/medbot/proc/check_overdose(mob/living/carbon/patient,reagent_id,injection_amount) var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id] if(!R.overdose_threshold) //Some chems do not have an OD threshold diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 5754f8c3b2..d199bc2ead 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -235,10 +235,11 @@ Auto Patrol: []"}, playsound(src, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) C.visible_message("[src] is trying to put zipties on [C]!",\ "[src] is trying to put zipties on you!") - addtimer(CALLBACK(src, .proc/attempt_handcuff, C), 60) + if(do_after(src, 60, FALSE, C)) + attempt_handcuff(C) /mob/living/simple_animal/bot/secbot/proc/attempt_handcuff(mob/living/carbon/C) - if( !on || !Adjacent(C) || !isturf(C.loc) ) //if he's in a closet or not adjacent, we cancel cuffing. + if (!on) return if(!C.handcuffed) C.handcuffed = new /obj/item/restraints/handcuffs/cable/zipties/used(C) diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index a6366c03fe..674cc722d8 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -392,6 +392,9 @@ var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult) if(!C) return + if(!C.cult_team) + to_chat(the_construct, "You are alone, and have no team.") + return var/datum/objective/eldergod/summon_objective = locate() in C.cult_team.objectives if(summon_objective.check_completion()) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index 0d344f1a9b..2a84152088 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -105,7 +105,7 @@ . = ..() if(can_be_held) //icon/item state is defined in mob_holder/drone_worn_icon() - AddElement(/datum/element/mob_holder, null, 'icons/mob/head.dmi', 'icons/mob/inhands/clothing_righthand.dmi', 'icons/mob/inhands/clothing_lefthand.dmi', ITEM_SLOT_HEAD, /datum/element/mob_holder.proc/drone_worn_icon) + AddElement(/datum/element/mob_holder, null, 'icons/mob/clothing/head.dmi', 'icons/mob/inhands/clothing_righthand.dmi', 'icons/mob/inhands/clothing_lefthand.dmi', ITEM_SLOT_HEAD, /datum/element/mob_holder.proc/drone_worn_icon) /mob/living/simple_animal/drone/med_hud_set_health() var/image/holder = hud_list[DIAG_HUD] diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm index 0f97a4c496..54184310a8 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -92,8 +92,8 @@ return if(hack) if(hacked) - return Stun(40) + return if(clockwork) to_chat(src, "ERROR: LAW OVERRIDE DETECTED") to_chat(src, "From now on, these are your laws:") diff --git a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm index 408edc7110..815c2bc0db 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm @@ -28,12 +28,7 @@ var/y_shift = getItemPixelShiftY() if(r_hand) - - var/r_state = r_hand.item_state - if(!r_state) - r_state = r_hand.icon_state - - var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(state = r_state, default_layer = DRONE_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) + var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(default_layer = DRONE_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) if(y_shift) r_hand_overlay.pixel_y += y_shift @@ -46,12 +41,7 @@ client.screen |= r_hand if(l_hand) - - var/l_state = l_hand.item_state - if(!l_state) - l_state = l_hand.icon_state - - var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(state = l_state, default_layer = DRONE_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(default_layer = DRONE_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) if(y_shift) l_hand_overlay.pixel_y += y_shift @@ -82,10 +72,10 @@ if(client && hud_used && hud_used.hud_shown) head.screen_loc = ui_drone_head client.screen += head - var/used_head_icon = 'icons/mob/head.dmi' + var/used_head_icon = 'icons/mob/clothing/head.dmi' if(istype(head, /obj/item/clothing/mask)) - used_head_icon = 'icons/mob/mask.dmi' - var/mutable_appearance/head_overlay = head.build_worn_icon(state = head.icon_state, default_layer = DRONE_HEAD_LAYER, default_icon_file = used_head_icon) + used_head_icon = 'icons/mob/clothing/mask.dmi' + var/mutable_appearance/head_overlay = head.build_worn_icon(default_layer = DRONE_HEAD_LAYER, default_icon_file = used_head_icon, override_state = head.icon_state) head_overlay.pixel_y -= 15 drone_overlays[DRONE_HEAD_LAYER] = head_overlay diff --git a/code/modules/mob/living/simple_animal/friendly/gondola.dm b/code/modules/mob/living/simple_animal/friendly/gondola.dm index 67ec46cf2d..04d53e7d05 100644 --- a/code/modules/mob/living/simple_animal/friendly/gondola.dm +++ b/code/modules/mob/living/simple_animal/friendly/gondola.dm @@ -33,6 +33,10 @@ if (!(istype(src, /mob/living/simple_animal/pet/gondola/gondolapod))) CreateGondola() +/mob/living/simple_animal/pet/gondola/ComponentInitialize() + . = ..() + AddElement(/datum/element/spellcasting, SPELL_SKIP_VOCAL) // so they can cast spells despite being silent. + /mob/living/simple_animal/pet/gondola/proc/CreateGondola() icon_state = null icon_living = null diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 3a1df8c0b3..af342118a2 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -112,6 +112,9 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians attacktext = "bites" attack_sound = 'sound/weapons/bite.ogg' recolorentiresprite = TRUE + if(!recolorentiresprite) //we want this to proc before stand logs in, so the overlay isnt gone for some reason + cooloverlay = mutable_appearance(icon, theme) + add_overlay(cooloverlay) /mob/living/simple_animal/hostile/guardian/Login() //if we have a mind, set its name to ours when it logs in ..() @@ -310,11 +313,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians var/obj/item/r_hand = get_item_for_held_index(2) if(r_hand) - var/r_state = r_hand.item_state - if(!r_state) - r_state = r_hand.icon_state - - hands_overlays += r_hand.build_worn_icon(state = r_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) + hands_overlays += r_hand.build_worn_icon(default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) r_hand.layer = ABOVE_HUD_LAYER @@ -323,11 +322,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians client.screen |= r_hand if(l_hand) - var/l_state = l_hand.item_state - if(!l_state) - l_state = l_hand.icon_state - - hands_overlays += l_hand.build_worn_icon(state = l_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + hands_overlays += l_hand.build_worn_icon(default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) l_hand.layer = ABOVE_HUD_LAYER diff --git a/code/modules/mob/living/simple_animal/guardian/types/charger.dm b/code/modules/mob/living/simple_animal/guardian/types/charger.dm index 237ab9d919..1ece6dde37 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/charger.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/charger.dm @@ -54,7 +54,7 @@ var/blocked = FALSE if(hasmatchingsummoner(hit_atom)) //if the summoner matches don't hurt them blocked = TRUE - if(L.check_shields(src, 90, "[name]", attack_type = THROWN_PROJECTILE_ATTACK)) + if(L.run_block(src, 90, "[name]", ATTACK_TYPE_TACKLE, 0, src) & BLOCK_SUCCESS) blocked = TRUE if(!blocked) L.drop_all_held_items() diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 3c3612f434..439bedf3cc 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -400,10 +400,9 @@ action.button_icon_state = "wrap_[active]" action.UpdateButtonIcon() -/obj/effect/proc_holder/wrap/Click() - if(!istype(usr, /mob/living/simple_animal/hostile/poison/giant_spider/nurse)) +/obj/effect/proc_holder/wrap/Trigger(mob/living/simple_animal/hostile/poison/giant_spider/nurse/user) + if(!istype(user)) return TRUE - var/mob/living/simple_animal/hostile/poison/giant_spider/nurse/user = usr activate(user) return TRUE @@ -444,7 +443,7 @@ check_flags = AB_CHECK_CONSCIOUS button_icon_state = "lay_eggs" -/datum/action/innate/spider/lay_eggs/IsAvailable() +/datum/action/innate/spider/lay_eggs/IsAvailable(silent = FALSE) if(..()) if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse)) return 0 @@ -508,7 +507,7 @@ desc = "Send a command to all living spiders." button_icon_state = "command" -/datum/action/innate/spider/comm/IsAvailable() +/datum/action/innate/spider/comm/IsAvailable(silent = FALSE) if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse/midwife)) return FALSE return TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/visuals_icons.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/visuals_icons.dm index b3e0f3b658..9d451748b0 100644 --- a/code/modules/mob/living/simple_animal/hostile/gorilla/visuals_icons.dm +++ b/code/modules/mob/living/simple_animal/hostile/gorilla/visuals_icons.dm @@ -33,14 +33,12 @@ var/obj/item/r_hand = get_item_for_held_index(2) if(r_hand) - var/r_state = r_hand.item_state ? r_hand.item_state : r_hand.icon_state - var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(state = r_state, default_layer = GORILLA_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) + var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(default_layer = GORILLA_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) r_hand_overlay.pixel_y -= 1 hands_overlays += r_hand_overlay if(l_hand) - var/l_state = l_hand.item_state ? l_hand.item_state : l_hand.icon_state - var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(state = l_state, default_layer = GORILLA_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(default_layer = GORILLA_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) l_hand_overlay.pixel_y -= 1 hands_overlays += l_hand_overlay diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 08bd1cedbc..83d27e7ea6 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -762,7 +762,7 @@ Difficulty: Very Hard name = "Exit Possession" desc = "Exits the body you are possessing." charge_max = 60 - clothes_req = 0 + clothes_req = NONE invocation_type = "none" max_targets = 1 range = -1 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 9ee51c0c4f..8aed1ede30 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -26,7 +26,6 @@ pull_force = MOVE_FORCE_OVERPOWERING mob_size = MOB_SIZE_LARGE layer = LARGE_MOB_LAYER //Looks weird with them slipping under mineral walls and cameras and shit otherwise - mouse_opacity = MOUSE_OPACITY_OPAQUE // Easier to click on in melee, they're giant targets anyway flags_1 = PREVENT_CONTENTS_EXPLOSION_1 | HEAR_1 var/list/crusher_loot var/medal_type diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm index 95fafbabfd..884e3bb989 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm @@ -40,27 +40,27 @@ deathsound = 'sound/magic/demon_dies.ogg' deathmessage = "begins to shudder as it becomes transparent..." loot_drop = /obj/item/clothing/neck/cloak/herald_cloak - + can_talk = 1 attack_action_types = list(/datum/action/innate/elite_attack/herald_trishot, /datum/action/innate/elite_attack/herald_directionalshot, /datum/action/innate/elite_attack/herald_teleshot, /datum/action/innate/elite_attack/herald_mirror) - + var/mob/living/simple_animal/hostile/asteroid/elite/herald/mirror/my_mirror = null var/is_mirror = FALSE - + /mob/living/simple_animal/hostile/asteroid/elite/herald/death() . = ..() if(!is_mirror) addtimer(CALLBACK(src, .proc/become_ghost), 8) if(my_mirror != null) qdel(my_mirror) - + /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/become_ghost() icon_state = "herald_ghost" - + /mob/living/simple_animal/hostile/asteroid/elite/herald/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null) . = ..() if(.) @@ -71,25 +71,25 @@ button_icon_state = "herald_trishot" chosen_message = "You are now firing three shots in your chosen direction." chosen_attack_num = HERALD_TRISHOT - + /datum/action/innate/elite_attack/herald_directionalshot name = "Circular Shot" button_icon_state = "herald_directionalshot" chosen_message = "You are firing projectiles in all directions." chosen_attack_num = HERALD_DIRECTIONALSHOT - + /datum/action/innate/elite_attack/herald_teleshot name = "Teleport Shot" button_icon_state = "herald_teleshot" chosen_message = "You will now fire a shot which teleports you where it lands." chosen_attack_num = HERALD_TELESHOT - + /datum/action/innate/elite_attack/herald_mirror name = "Summon Mirror" button_icon_state = "herald_mirror" chosen_message = "You will spawn a mirror which duplicates your attacks." chosen_attack_num = HERALD_MIRROR - + /mob/living/simple_animal/hostile/asteroid/elite/herald/OpenFire() if(client) switch(chosen_attack) @@ -124,7 +124,7 @@ my_mirror.herald_teleshot(target) if(HERALD_MIRROR) herald_mirror() - + /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/shoot_projectile(turf/marker, set_angle, var/is_teleshot) var/turf/startloc = get_turf(src) var/obj/item/projectile/herald/H = null @@ -137,7 +137,7 @@ if(target) H.original = target H.fire(set_angle) - + /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_trishot(target) ranged_cooldown = world.time + 30 playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) @@ -151,17 +151,17 @@ addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 10) addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 12) addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 14) - + /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_circleshot() var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315) for(var/i in directional_shot_angles) shoot_projectile(get_turf(src), i, FALSE) - + /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/unenrage() if(stat == DEAD || is_mirror) return icon_state = "herald" - + /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_directionalshot() ranged_cooldown = world.time + 50 if(!is_mirror) @@ -172,14 +172,14 @@ playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) addtimer(CALLBACK(src, .proc/herald_circleshot), 15) addtimer(CALLBACK(src, .proc/unenrage), 20) - + /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_teleshot(target) ranged_cooldown = world.time + 30 playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) var/target_turf = get_turf(target) var/angle_to_target = Get_Angle(src, target_turf) shoot_projectile(target_turf, angle_to_target, TRUE) - + /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_mirror() ranged_cooldown = world.time + 40 playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) @@ -190,7 +190,7 @@ my_mirror = new_mirror my_mirror.my_master = src my_mirror.faction = faction.Copy() - + /mob/living/simple_animal/hostile/asteroid/elite/herald/mirror name = "herald's mirror" desc = "This fiendish work of magic copies the herald's attacks. Seems logical to smash it." @@ -203,16 +203,16 @@ del_on_death = TRUE is_mirror = TRUE var/mob/living/simple_animal/hostile/asteroid/elite/herald/my_master = null - + /mob/living/simple_animal/hostile/asteroid/elite/herald/mirror/Initialize() ..() toggle_ai(AI_OFF) - + /mob/living/simple_animal/hostile/asteroid/elite/herald/mirror/Destroy() if(my_master != null) my_master.my_mirror = null . = ..() - + /obj/item/projectile/herald name ="death bolt" icon_state= "chronobolt" @@ -222,7 +222,7 @@ eyeblur = 0 damage_type = BRUTE pass_flags = PASSTABLE - + /obj/item/projectile/herald/teleshot name ="golden bolt" damage = 0 @@ -239,11 +239,11 @@ var/mob/living/F = firer if(F != null && istype(F, /mob/living/simple_animal/hostile/asteroid/elite) && F.faction_check_mob(L)) L.heal_overall_damage(damage) - + /obj/item/projectile/herald/teleshot/on_hit(atom/target, blocked = FALSE) . = ..() firer.forceMove(get_turf(src)) - + //Herald's loot: Cloak of the Prophet /obj/item/clothing/neck/cloak/herald_cloak @@ -252,13 +252,13 @@ icon = 'icons/obj/lavaland/elite_trophies.dmi' icon_state = "herald_cloak" body_parts_covered = CHEST|GROIN|ARMS - hit_reaction_chance = 10 - + var/hit_reaction_chance = 10 + /obj/item/clothing/neck/cloak/herald_cloak/proc/reactionshot(mob/living/carbon/owner) var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315) for(var/i in directional_shot_angles) shoot_projectile(get_turf(owner), i, owner) - + /obj/item/clothing/neck/cloak/herald_cloak/proc/shoot_projectile(turf/marker, set_angle, mob/living/carbon/owner) var/turf/startloc = get_turf(owner) var/obj/item/projectile/herald/H = null @@ -266,12 +266,11 @@ H.preparePixelProjectile(marker, startloc) H.firer = owner H.fire(set_angle) - -/obj/item/clothing/neck/cloak/herald_cloak/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + +/obj/item/clothing/neck/cloak/herald_cloak/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) . = ..() if(rand(1,100) > hit_reaction_chance) return owner.visible_message("[owner]'s [src] emits a loud noise as [owner] is struck!") - var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315) playsound(get_turf(owner), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE) addtimer(CALLBACK(src, .proc/reactionshot, owner), 10) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index d83a38ae24..c9011c5f5f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -12,7 +12,7 @@ * - Charges at the target after a telegraph, throwing them across the arena should it connect. * - Legionnaire's head detaches, attacking as it's own entity. Has abilities of it's own later into the fight. Once dead, regenerates after a brief period. If the skill is used while the head is off, it will be killed. * - Leaves a pile of bones at your location. Upon using this skill again, you'll swap locations with the bone pile. - * - Spews a cloud of smoke from it's maw, wherever said maw is. + * - Spews a cloud of smoke from it's maw, wherever said maw is. * A unique fight incorporating the head mechanic of legion into a whole new beast. Combatants will need to make sure the tag-team of head and body don't lure them into a deadly trap. */ @@ -45,35 +45,35 @@ /datum/action/innate/elite_attack/head_detach, /datum/action/innate/elite_attack/bonfire_teleport, /datum/action/innate/elite_attack/spew_smoke) - + var/mob/living/simple_animal/hostile/asteroid/elite/legionnairehead/myhead = null var/obj/structure/legionnaire_bonfire/mypile = null var/has_head = TRUE - + /datum/action/innate/elite_attack/legionnaire_charge name = "Legionnaire Charge" button_icon_state = "legionnaire_charge" chosen_message = "You will attempt to grab your opponent and throw them." chosen_attack_num = LEGIONNAIRE_CHARGE - + /datum/action/innate/elite_attack/head_detach name = "Release Head" button_icon_state = "head_detach" chosen_message = "You will now detach your head or kill it if it is already released." chosen_attack_num = HEAD_DETACH - + /datum/action/innate/elite_attack/bonfire_teleport name = "Bonfire Teleport" button_icon_state = "bonfire_teleport" chosen_message = "You will leave a bonfire. Second use will let you swap positions with it indefintiely. Using this move on the same tile as your active bonfire removes it." chosen_attack_num = BONFIRE_TELEPORT - + /datum/action/innate/elite_attack/spew_smoke name = "Spew Smoke" button_icon_state = "spew_smoke" chosen_message = "Your head will spew smoke in an area, wherever it may be." chosen_attack_num = SPEW_SMOKE - + /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/OpenFire() if(client) switch(chosen_attack) @@ -96,7 +96,7 @@ bonfire_teleport() if(SPEW_SMOKE) spew_smoke() - + /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/legionnaire_charge(target) ranged_cooldown = world.time + 50 var/dir_to_target = get_dir(get_turf(src), get_turf(target)) @@ -107,7 +107,7 @@ playsound(src,'sound/magic/demon_attack1.ogg', 200, 1) visible_message("[src] prepares to charge!") addtimer(CALLBACK(src, .proc/legionnaire_charge_2, dir_to_target, 0), 5) - + /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/legionnaire_charge_2(var/move_dir, var/times_ran) if(times_ran >= 4) return @@ -136,7 +136,7 @@ L.Stun(20) //substituting this for the Paralyze from the line above, because we don't have tg paralysis stuff L.adjustBruteLoss(50) addtimer(CALLBACK(src, .proc/legionnaire_charge_2, move_dir, (times_ran + 1)), 2) - + /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/head_detach(target) ranged_cooldown = world.time + 10 if(myhead != null) @@ -160,11 +160,11 @@ else if(health < maxHealth * 0.5) myhead.melee_damage_lower = 20 myhead.melee_damage_upper = 20 - + /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/onHeadDeath() myhead = null addtimer(CALLBACK(src, .proc/regain_head), 50) - + /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/regain_head() has_head = TRUE if(stat == DEAD) @@ -196,7 +196,7 @@ forceMove(pileturf) visible_message("[src] forms from the bonfire!") mypile.forceMove(legionturf) - + /mob/living/simple_animal/hostile/asteroid/elite/legionnaire/proc/spew_smoke() ranged_cooldown = world.time + 60 var/turf/T = null @@ -213,7 +213,7 @@ var/datum/effect_system/smoke_spread/smoke = new smoke.set_up(2, T) smoke.start() - + //The legionnaire's head. Basically the same as any legion head, but we have to tell our creator when we die so they can generate another head. /mob/living/simple_animal/hostile/asteroid/elite/legionnairehead name = "legionnaire head" @@ -239,12 +239,12 @@ faction = list() ranged = FALSE var/mob/living/simple_animal/hostile/asteroid/elite/legionnaire/body = null - + /mob/living/simple_animal/hostile/asteroid/elite/legionnairehead/death() . = ..() if(body) body.onHeadDeath() - + //The legionnaire's bonfire, which can be swapped positions with. Also sets flammable living beings on fire when they walk over it. /obj/structure/legionnaire_bonfire name = "bone pile" @@ -258,20 +258,20 @@ light_range = 4 light_color = LIGHT_COLOR_RED var/mob/living/simple_animal/hostile/asteroid/elite/legionnaire/myowner = null - - + + /obj/structure/legionnaire_bonfire/Entered(atom/movable/mover, turf/target) if(isliving(mover)) var/mob/living/L = mover L.adjust_fire_stacks(3) L.IgniteMob() . = ..() - + /obj/structure/legionnaire_bonfire/Destroy() if(myowner != null) myowner.mypile = null . = ..() - + //The visual effect which appears in front of legionnaire when he goes to charge. /obj/effect/temp_visual/dragon_swoop/legionnaire duration = 10 @@ -280,7 +280,7 @@ /obj/effect/temp_visual/dragon_swoop/legionnaire/Initialize() . = ..() transform *= 0.33 - + // Legionnaire's loot: Legionnaire Spine /obj/item/crusher_trophy/legionnaire_spine diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index b41ca15948..89d9919981 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -285,9 +285,10 @@ if("Miner") mob_species = pickweight(list(/datum/species/human = 70, /datum/species/lizard = 26, /datum/species/fly = 2, /datum/species/plasmaman = 2)) if(mob_species == /datum/species/plasmaman) - uniform = /obj/item/clothing/under/plasmaman - head = /obj/item/clothing/head/helmet/space/plasmaman + uniform = /obj/item/clothing/under/plasmaman/mining + head = /obj/item/clothing/head/helmet/space/plasmaman/mining belt = /obj/item/tank/internals/plasmaman/belt + mask = /obj/item/clothing/mask/gas/explorer else uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland if (prob(4)) diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index fb31e48d90..8c622c7f29 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -169,7 +169,7 @@ desc = "You will trigger a large amount of lights around you to flicker." charge_max = 300 - clothes_req = 0 + clothes_req = NONE range = 14 /obj/effect/proc_holder/spell/aoe_turf/flicker_lights/cast(list/targets,mob/user = usr) @@ -185,7 +185,7 @@ message = "You glare your eyes." charge_max = 600 - clothes_req = 0 + clothes_req = NONE range = 10 /obj/effect/proc_holder/spell/aoe_turf/blindness/cast(list/targets,mob/user = usr) @@ -201,7 +201,7 @@ desc = "Toggle your nightvision mode." charge_max = 10 - clothes_req = 0 + clothes_req = NONE message = "You toggle your night vision!" range = -1 diff --git a/code/modules/mob/living/simple_animal/hostile/wizard.dm b/code/modules/mob/living/simple_animal/hostile/wizard.dm index 7265540679..15d641299d 100644 --- a/code/modules/mob/living/simple_animal/hostile/wizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/wizard.dm @@ -43,23 +43,23 @@ /mob/living/simple_animal/hostile/wizard/Initialize() . = ..() fireball = new /obj/effect/proc_holder/spell/aimed/fireball - fireball.clothes_req = 0 - fireball.human_req = 0 - fireball.player_lock = 0 + fireball.clothes_req = NONE + fireball.mobs_whitelist = null + fireball.player_lock = FALSE AddSpell(fireball) var/obj/item/implant/exile/I = new I.implant(src, null, TRUE) mm = new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile - mm.clothes_req = 0 - mm.human_req = 0 - mm.player_lock = 0 + mm.clothes_req = NONE + mm.mobs_whitelist = null + mm.player_lock = FALSE AddSpell(mm) blink = new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink - blink.clothes_req = 0 - blink.human_req = 0 - blink.player_lock = 0 + blink.clothes_req = NONE + blink.mobs_whitelist = null + blink.player_lock = FALSE blink.outer_tele_radius = 3 AddSpell(blink) diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm index bf80ab9ff4..4f8e271d6f 100644 --- a/code/modules/mob/living/simple_animal/slime/powers.dm +++ b/code/modules/mob/living/simple_animal/slime/powers.dm @@ -11,7 +11,7 @@ background_icon_state = "bg_alien" var/needs_growth = NO_GROWTH_NEEDED -/datum/action/innate/slime/IsAvailable() +/datum/action/innate/slime/IsAvailable(silent = FALSE) if(..()) var/mob/living/simple_animal/slime/S = owner if(needs_growth == GROWTH_NEEDED) diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 5cdeaecd37..1375d88948 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -7,6 +7,8 @@ /mob/living/proc/DefaultCombatKnockdown(amount, updating = TRUE, ignore_canknockdown = FALSE, override_hardstun, override_stamdmg) if(!iscarbon(src)) return Paralyze(amount, updating, ignore_canknockdown) + if(!ignore_canknockdown && !(status_flags & CANKNOCKDOWN)) + return FALSE if(istype(buckled, /obj/vehicle/ridden)) buckled.unbuckle_mob(src) var/drop_items = amount > 80 //80 is cutoff for old item dropping behavior diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 5225534cee..d03443cf61 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -632,7 +632,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) /mob/proc/add_spells_to_statpanel(list/spells) for(var/obj/effect/proc_holder/spell/S in spells) - if(S.can_be_cast_by(src)) + if((!S.mobs_blacklist || !S.mobs_blacklist[src]) && (!S.mobs_whitelist || S.mobs_whitelist[src])) switch(S.charge_type) if("recharge") statpanel("[S.panel]","[S.charge_counter/10.0]/[S.charge_max/10]",S) @@ -946,18 +946,65 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) /mob/vv_get_dropdown() . = ..() - . += "---" - .["Gib"] = "?_src_=vars;[HrefToken()];gib=[REF(src)]" - .["Give Spell"] = "?_src_=vars;[HrefToken()];give_spell=[REF(src)]" - .["Remove Spell"] = "?_src_=vars;[HrefToken()];remove_spell=[REF(src)]" - .["Give Disease"] = "?_src_=vars;[HrefToken()];give_disease=[REF(src)]" - .["Toggle Godmode"] = "?_src_=vars;[HrefToken()];godmode=[REF(src)]" - .["Drop Everything"] = "?_src_=vars;[HrefToken()];drop_everything=[REF(src)]" - .["Regenerate Icons"] = "?_src_=vars;[HrefToken()];regenerateicons=[REF(src)]" - .["Show player panel"] = "?_src_=vars;[HrefToken()];mob_player_panel=[REF(src)]" - .["Toggle Build Mode"] = "?_src_=vars;[HrefToken()];build_mode=[REF(src)]" - .["Assume Direct Control"] = "?_src_=vars;[HrefToken()];direct_control=[REF(src)]" - .["Offer Control to Ghosts"] = "?_src_=vars;[HrefToken()];offer_control=[REF(src)]" + VV_DROPDOWN_OPTION("", "---------") + VV_DROPDOWN_OPTION(VV_HK_GIB, "Gib") + VV_DROPDOWN_OPTION(VV_HK_GIVE_SPELL, "Give Spell") + VV_DROPDOWN_OPTION(VV_HK_REMOVE_SPELL, "Remove Spell") + VV_DROPDOWN_OPTION(VV_HK_GIVE_DISEASE, "Give Disease") + VV_DROPDOWN_OPTION(VV_HK_GODMODE, "Toggle Godmode") + VV_DROPDOWN_OPTION(VV_HK_DROP_ALL, "Drop Everything") + VV_DROPDOWN_OPTION(VV_HK_REGEN_ICONS, "Regenerate Icons") + VV_DROPDOWN_OPTION(VV_HK_PLAYER_PANEL, "Show player panel") + VV_DROPDOWN_OPTION(VV_HK_BUILDMODE, "Toggle Buildmode") + VV_DROPDOWN_OPTION(VV_HK_DIRECT_CONTROL, "Assume Direct Control") + VV_DROPDOWN_OPTION(VV_HK_OFFER_GHOSTS, "Offer Control to Ghosts") + +/mob/vv_do_topic(list/href_list) + . = ..() + if(href_list[VV_HK_REGEN_ICONS]) + if(!check_rights(NONE)) + return + regenerate_icons() + if(href_list[VV_HK_PLAYER_PANEL]) + if(!check_rights(NONE)) + return + usr.client.holder.show_player_panel(src) + if(href_list[VV_HK_GODMODE]) + if(!check_rights(R_ADMIN)) + return + usr.client.cmd_admin_godmode(src) + if(href_list[VV_HK_GIVE_SPELL]) + if(!check_rights(NONE)) + return + usr.client.give_spell(src) + if(href_list[VV_HK_REMOVE_SPELL]) + if(!check_rights(NONE)) + return + usr.client.remove_spell(src) + if(href_list[VV_HK_GIVE_DISEASE]) + if(!check_rights(NONE)) + return + usr.client.give_disease(src) + if(href_list[VV_HK_GIB]) + if(!check_rights(R_FUN)) + return + usr.client.cmd_admin_gib(src) + if(href_list[VV_HK_BUILDMODE]) + if(!check_rights(R_BUILDMODE)) + return + togglebuildmode(src) + if(href_list[VV_HK_DROP_ALL]) + if(!check_rights(NONE)) + return + usr.client.cmd_admin_drop_everything(src) + if(href_list[VV_HK_DIRECT_CONTROL]) + if(!check_rights(NONE)) + return + usr.client.cmd_assume_direct_control(src) + if(href_list[VV_HK_OFFER_GHOSTS]) + if(!check_rights(NONE)) + return + offer_control(src) /mob/vv_get_var(var_name) switch(var_name) @@ -965,6 +1012,10 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0) return debug_variable(var_name, logging, 0, src, FALSE) . = ..() +/mob/vv_auto_rename(new_name) + //Do not do parent's actions, as we *usually* do this differently. + fully_replace_character_name(real_name, new_name) + /mob/verb/open_language_menu() set name = "Open Language Menu" set category = "IC" diff --git a/code/modules/modular_computers/computers/item/processor.dm b/code/modules/modular_computers/computers/item/processor.dm index 295ecc66c0..81e2cb95e6 100644 --- a/code/modules/modular_computers/computers/item/processor.dm +++ b/code/modules/modular_computers/computers/item/processor.dm @@ -20,7 +20,6 @@ . = ..() if(!loc || !istype(loc, /obj/machinery/modular_computer)) CRASH("Inapropriate type passed to obj/item/modular_computer/processor/New()! Aborting.") - return // Obtain reference to machinery computer all_components = list() idle_threads = list() @@ -69,4 +68,4 @@ if(MC_SDD) machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_disk if(MC_AI) - machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_card \ No newline at end of file + machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_card diff --git a/code/modules/modular_computers/hardware/battery_module.dm b/code/modules/modular_computers/hardware/battery_module.dm index 55f7c19cd7..e03427cc9c 100644 --- a/code/modules/modular_computers/hardware/battery_module.dm +++ b/code/modules/modular_computers/hardware/battery_module.dm @@ -54,7 +54,6 @@ holder.shutdown_computer() return TRUE - return FALSE @@ -95,4 +94,4 @@ name = "nano battery" desc = "A tiny power cell, commonly seen in low-end portable microcomputers." icon_state = "cell_micro" - maxcharge = 300 \ No newline at end of file + maxcharge = 300 diff --git a/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm b/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm index b360a70775..c0ee68cdee 100644 --- a/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm +++ b/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm @@ -57,12 +57,12 @@ It is possible to destroy the net by the occupant or someone else. continue//So all they're left with are shoes and uniform. H.dropItemToGround(W) H.dna.species.give_important_for_life(H) // After we remove items, at least give them what they need to live. +/* var/datum/antagonist/antag_datum for(var/datum/antagonist/ninja/AD in GLOB.antagonists) //Because only ninjas get capture objectives; They're not doable without the suit. if(AD.owner == master) antag_datum = AD break - for(var/datum/objective/capture/capture in antag_datum) if(istype(affecting, /mob/living/carbon/human)) //Humans. if(affecting.stat == DEAD)//Dead folks are worth less. @@ -87,7 +87,7 @@ It is possible to destroy the net by the occupant or someone else. capture.captured_amount+=1 continue capture.captured_amount+=2 - +*/ affecting.revive(1, 1) //Basically a revive and full heal, including limbs/organs //In case people who have been captured dead want to hang out at the holding area @@ -106,7 +106,7 @@ It is possible to destroy the net by the occupant or someone else. playsound(affecting, 'sound/effects/sparks2.ogg', 50, 1) new /obj/effect/temp_visual/dir_setting/ninja/phase(affecting.drop_location(), affecting.dir) -/obj/attack_alien(mob/living/carbon/alien/humanoid/user) +/obj/structure/energy_net/attack_alien(mob/living/carbon/alien/humanoid/user) if(attack_generic(user, 15, BRUTE, "melee", 0)) //Aliens normally deal 60 damage to structures. They'd one-shot nets without this. playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1) diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm index 01e6abaa6a..b46f30b4fb 100644 --- a/code/modules/ninja/suit/suit.dm +++ b/code/modules/ninja/suit/suit.dm @@ -22,7 +22,7 @@ Contents: armor = list("melee" = 60, "bullet" = 50, "laser" = 30,"energy" = 15, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 100, "acid" = 100) strip_delay = 12 - actions_types = list(/datum/action/item_action/initialize_ninja_suit, /datum/action/item_action/ninjasmoke, /datum/action/item_action/ninjaboost, /datum/action/item_action/ninjapulse, /datum/action/item_action/ninjastar, /datum/action/item_action/ninjanet, /datum/action/item_action/ninja_sword_recall, /datum/action/item_action/ninja_stealth, /datum/action/item_action/toggle_glove) + actions_types = list(/datum/action/item_action/initialize_ninja_suit, /datum/action/item_action/ninjasmoke, /datum/action/item_action/ninjaboost, /datum/action/item_action/ninjapulse, /datum/action/item_action/ninjastar, /datum/action/item_action/ninja_sword_recall, /datum/action/item_action/ninja_stealth, /datum/action/item_action/toggle_glove) //Important parts of the suit. var/mob/living/carbon/human/affecting = null @@ -175,9 +175,6 @@ Contents: if(istype(action, /datum/action/item_action/ninjastar)) ninjastar() return TRUE - if(istype(action, /datum/action/item_action/ninjanet)) - ninjanet() - return TRUE if(istype(action, /datum/action/item_action/ninja_sword_recall)) ninja_sword_recall() return TRUE diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 2c02903d3e..f46d4bf029 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -8,7 +8,6 @@ item_flags = NOBLUDGEON /obj/item/paper/contract/ComponentInitialize() - return . = ..() AddElement(/datum/element/update_icon_blocker) diff --git a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_premade.dm index 9a60158e73..2d03a17e0a 100644 --- a/code/modules/paperwork/paper_premade.dm +++ b/code/modules/paperwork/paper_premade.dm @@ -48,11 +48,113 @@ name = "paper- 'Chemical Information'" info = "Known Onboard Toxins:
    \n\tGrade A Semi-Liquid Plasma:
    \n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
    \n\t\tA gas mask fails to filter plasma after 50 units.
    \n\t\tWill attempt to diffuse like a gas.
    \n\t\tFiltered by scrubbers.
    \n\t\tThere is a bottled version which is very different
    \n\t\t\tfrom the version found in canisters!
    \n
    \n\t\tWARNING: Highly Flammable. Keep away from heat sources
    \n\t\texcept in an enclosed fire area!
    \n\t\tWARNING: It is a crime to use this without authorization.
    \nKnown Onboard Anti-Toxin:
    \n\tAnti-Toxin Type 01P: Works against Grade A Plasma.
    \n\t\tBest if injected directly into bloodstream.
    \n\t\tA full injection is in every regular Med-Kit.
    \n\t\tSpecial toxin Kits hold around 7.
    \n
    \nKnown Onboard Chemicals (other):
    \n\tRejuvenation T#001:
    \n\t\tEven 1 unit injected directly into the bloodstream
    \n\t\t\twill cure unconscious and sleep toxins.
    \n\t\tIf administered to a dying patient it will prevent
    \n\t\t\tfurther damage for about units*3 seconds.
    \n\t\t\tit will not cure them or allow them to be cured.
    \n\t\tIt can be administered to a non-dying patient
    \n\t\t\tbut the chemicals disappear just as fast.
    \n\tMorphine T#054:
    \n\t\t5 units will induce precisely 1 minute of sleep.
    \n\t\t\tThe effect are cumulative.
    \n\t\tWARNING: It is a crime to use this without authorization" - /* * Stations */ +/obj/item/paper/guides/cogstation/job_changes + name = "MEMO: Job Changes" + info = "To ensure minimal employee downtime, please take note of the following changes to select professions that Cogstation specifically requires:
    \n
    \n- Chemists are to have basic Research accessand an encryption key for the Science channel.
    \n- Roboticists are to have basic Medical and Morgue access.
    \n- Engineers and Atmospheric Technicians are to have Warehouse and Mining access.
    \n- The Cook should not have Morgue access
    \n- The Clown and Mime are to have Maintenance access. This is necessary due to the location of their offices.
    \n
    \nGenerated by Organic Resources Bot #2053" + +/obj/item/paper/guides/cogstation/letter_sec + name = "To future Security personnel" + info = "As this station's Head of Security prior to it being translocated to your sector, my hope is that Central Command will properly brief you on the ins and outs of this particular layout. I'm writing this in case they don't. 'CogStation' as it's called may be worlds different than other stations in your sector, so I wanted to mention a few things:
    \n
    \nFirst of all, the brig uses a 'genpop' prison system. While I'm sure books exist on the subject, the main thing to know is prisoners share a common area regardless of sentence length. There is a single solitary cell, but it should be reserved only for the particularly dangerous.
    \n
    \nYour auxiliary posts can be found in the fore and starboard quarter parts of the station; near arrivals and cargo, respectively. I've heard about stations with a post in each department - unfortunately, this isn't one of them. If it's any consolation, the security wing is rather centrally located.
    \n
    \nAfter a perp's done their time, you can let them out via the disposal unit right outside the prison wing. It'll plop them right outside your front desk without the potential hassle of escorting them through your office.
    \n
    \nHave a secure day!
    \n- Louis Cannon" + +/obj/item/paper/guides/cogstation/disposals + name = "Regarding the disposal system:" + info = "As you might have noticed, this station has far more disposal pipes than you may expect from your average Nanotrasen research facility. Part of the reason for this is specialization - mail, trash, even corpses have their own disposal systems. Unfortunately, the convenient color-coding was lost in translocation and we've had to compensate by marking the area around each bin.
    \n
    \n- WHITE/GRAY STRIPES is for DELIVERIES.
    \n- RED STRIPES is for CORPSES.
    \n- EVERYTHING ELSE is for TRASH,
    barring a few exceptions that should be labeled as such.
    \n
    \nIdeally the station won't sustain any heavy structural damage during your time here but if it does, or someone decides to tamper with/sabotage this system, you'll be forgiven if you can't put it back together perfectly.
    \n
    \n-C. Donnelly
    Architectural Analyst" + +/obj/item/paper/guides/cogstation/janitor + name = "a quick tip" + info = "I'm gonna tell you something I wish I knew my first day here: there's an auxiliary custodial closet on the other end of the station. Just head straight through maintenance behind the bathrooms next to engineering and you'll find it.
    \n
    \nNow this sounds great until you realize there's no quick way to the other end of the station without a spacesuit - then it sounds like a gift from the gods!
    \n
    \n- 'Squeaky' Kleiner" + +/obj/item/paper/guides/cogstation/cooks + name = "MEMO: Cooks" + info = "Please be aware that while a smartfridge has recently been installed in your kitchen, botanists may choose to use the produce delivery system instead. You'll find the outlet, in addition to your freezer in the adjacent service hall. You can also send food directly to the bar and prison inmates via the disposal bins marked with dark red and bright red tiling, respectively.
    \n
    \nGenerated by Organic Resources Bot #7004" + +/obj/item/paper/guides/cogstation/cdn_chap + name = "About the corpse disposal network" + info = "One of the medical staff has insisted I leave a message regarding the 'corpse disposal network' and its significance. From what I have been told, it has been designed so medical staff can deliver the deceased directly to you. However, bodies from the medical booth or detective's office next door will be sent your way first.
    \nThe delivery chute will allow you to send these bodies to the medical department so that they can attempt to revive them, if possible. I would recommend periodically checking the morgue for any unannounced arrivals, but make sure bodies are devoid of a soul before 'burying' or cremating them!
    \n
    \nSoulstone Obelisk
    \n
    \nDepartment of Higher-Dimensional Affairs" + +/obj/item/paper/guides/cogstation/letter_cmo + name = "To the future Medical Director..." + info = "From one Medical Director to another, I'm happy to say you won't have to rethink how you do things here, since saving lives is universal! That being said, you might want to consider the following:
    \n
    \n There's a medical booth over in the civilian wing, so ideally folks with minor cuts and bruises will head there first. While it can operate on a self-serve basis, you might want to send one of your doctors there to make sure it's run proper.
    \n
    \n The Geneticists and Virologists share the same pool of test subjects, so make sure they don't reintroduce them to the control group! A group of regular monkeys is dangerous enough, so do NOT attack one in view of the others!
    \n
    \nLastly, you might want to check the morgue regularly - it's one of the two main endpoints for the corpse disposal network. At the very least, make sure robotics gets your approval BEFORE borging someone! Robert hasn't been the same since he became Rob-Bot...
    \n
    \nEarl. E. Greaves" + +/obj/item/paper/guides/cogstation/cdn_med + name = "Corpse Disposal Network" + info = "It's come to my attention that this station has been outfitted with a Corpse Disposal Network (CDN), and disposal units incorporated into this network are marked with RED STRIPES surrounding them. This morgue is one of the network's major endpoints, the other being the chapel morgue.
    \n
    \nAs such, it should be checked routinely for any bodies that may have arrived unannounced. Cloned corpses or personnel that have proven unrevivable can be shipped to the chapel morgue via your delivery chute. The same can be done for bodies that arrived brainless, although if you want botany to have at them you should tag them accordingly.
    \n
    \nLiving persons who treat the CDN like a theme park ride are to be swiftly removed from the medical department, short of them being on the verge of death. In such cases, treatment is advised.
    \n
    \n-Dr. Halley" + +/obj/item/paper/guides/cogstation/letter_eng + name = "To future Engineering staff:" + info = "I'm not gonna sugarcoat this. Compared to other departments, you might have your work cut out for you. CogStation is an entirely different beast than your standard Box, but everyone's still gonna expect you to keep the place running.
    \n
    \n If there's any good news, it's your time to shine if you know how to run a thermo-electric generator. That's what this station runs on, and CentCom isn't planning on changing that. If it's absolutely critical you might be able to run a singularity or tesla engine east of mining, but it won't have any sort of shielding out there.
    \n
    \nThe air system's different too. It's multiple small networks instead of a single big one, with air hookups across the station. Fortunately it's not that complicated, but it comes at the expense of being able to filter out and reuse specific gases. Besides, you'll probably be busy enough with the engine and general upkeep anyway.
    \n
    \nThe disposal network in contrast is significantly more complicated, yet more capable. I've already elaborated on it, so I'll let you find and read my write-up for that. As for the routing system, it's just begging to get hit by a stray meteor so consider other utilities a higher priority.
    \n
    \nGood luck. You're gonna need it.
    \n
    \n-C. Donnelly
    Architectural Analyst" + +/obj/item/paper/guides/cogstation/letter_chief + name = "To the future Chief Engineer:" + info = "Considering some of the other heads are writing letters to their successors, I reckon I might as well do the same. If this place is heading where I think it is, I sure as hell hope they made sure you know how to run a TEG. Oh who am I kidding, of course they won't. Well, the good news is unlike that newfangled supermatter that can kill everyone from radiation before you know anything is wrong, you'll know if a Thermo-Electric Generator is failing, since you'll either have no power or be on fire.
    \n
    \nThere's two main ways to set it up, with the 'proper way' being to run plasma through the pipes. You hook them up on the hot side (the one with the red pipes), then use the heaters and freezers to keep the hot side hot and the cold side cold. Just keep an eye on pressures - too much on the hot side or too little on the cold side and you'll get reduced or even no power. Of course, the fun way is to get something cooking in the burn chamber for the hot side and use space itself for the cold side. You might want to throw a monkey into the burn chamber for good luck and an indication whether your gas is suitably hot or not. Just make sure that
    \n
    \nI found this on the CE's desk. My guess is he was going to finish it, but was interrupted at some point in his last shift and ultimately met his untimely demise. I just hope whatever he was going to warn you about wasn't critical...
    \n
    \n-C. Donnelly
    " + +/obj/item/paper/guides/cogstation/letter_hos + name = "To the future HoS" + info = "I'm gonna be rather disappointed if CentCom doesn't brief you about this station, but if they don't I wrote up another letter for your department that should cover it pretty well. Make sure your officers read it if they aren't up to speed.
    \n
    \nSomething you in particular should know is that if someone's getting to be too much to handle, the boys and I have constructed a 'discount transfer centre' just behind the router. Use it only as a last resort - the walls may be reinforced but they're still thin, and you'll have big trouble on your hands if the AI or any cyborgs find out about it.
    \n
    -LC" + +/obj/item/paper/guides/cogstation/letter_supp + name = "To future Supply Staff:" + info = "Cargo, move freight. Miners, don't die. Your jobs are pretty straightforward, which is likely why they originally fell under Engineering on this station as opposed to their own department. Although we've considerably readjusted this part of the station to accommodate you, there are potential differences you should be aware of.
    \n
    \nEngineeringwill have access to some of your department, namely the warehouse and mining dock. Mining operations on this station were originally asteroid-based, hence the catwalk into the great beyond. Although you won't need to worry about being space-worthy due to a newly installed shuttle dock, they might need to get out there.
    \n
    \nYou'll have all your usual means of shipping out goods, but the disposal network is more complex with a separate line for mail and trash. I've left another note that explains this in detail, but know trash is the janitor's responsibility, not yours.
    \n
    \nThe biggest difference has to be this station's router system, which allows departments to ship goods between themselves. Even if the belts aren't working properly they'll still have their own request consoles, so you'll want to check for orders regularly.
    \n
    \n-C. Donnelly
    \nArchitectural Analyst" + +/obj/item/paper/fluff/cogstation/sleepers + name = "Re: Sleepers?" + info = "Yes, the sleepers are meant to be publicly accessible. Policies in this station's original location encouraged crew to visit the clinic or treat themselves when it came to minor injuries.
    \n
    \nThis is no excuse for you not to do your jobs. You may wish to keep an eye on the sleepers as to ensure they're being used responsibly. Remember, allowing an overdose to happen under your watch isn't much different from administering that overdose yourself.
    \n
    \n- Dr. Halley" + +/obj/item/paper/fluff/cogstation/cloner + name = "Re: Issue with the cloner?" + info = "I've yet to see any sentient small primates working in this sector, but if they aren't carrying the Devo gene they should be fine. The document was likely referring to the nonsapient ones you can get out of a monkey cube.
    \n
    \n- Dr. Halley" + +/obj/item/paper/fluff/cogstation/letter_rd + name = "To the future Research Director" + info = "Apologies if you were expecting a letter from the station's Research Director, but just prior to translocation we found out they were a BLF operative. I wouldn't trust a single word they wrote and while I'm not a scientist, something tells me your department will have the easiest time adjusting to this station.
    \n
    \nYou should have everything you need - this is a research facility after all. It's just a matter of finding it, which shouldn't be too hard. Folks like you are why we're out in deep space, after all!
    \n-Louis Cannon
    \nFormer Head of Security" + +/obj/item/paper/fluff/cogstation/letter_cap + name = "Captain's Log" + info = "So I guess some of the other heads have decided to leave little notes for future employees here. Heartwarming, but the most important thing I figure I can leave you is the truth. Nevermind the Syndicate, the xenomorphs, the apocalyptic death cults I hear are a thing way out there - I'm convinced we are our own worst enemy.
    \n
    \nDon't believe me? Maybe you can ask Chief Engineer Earp. Oh right, he vaporized himself trying to produce enough power to keep the lights on in Space China for a week, despite only needing a sliver of that to run this place as intended. Or maybe you can ask Head of Security Cannon, who executed our Research Director in plain sight of everyone. Even if he was in the right, the final frontier isn't the goddamn wild west! Hell, maybe you can ask one of your 'staff assistants', although in my experience the only ones they seem to want to help is themselves.
    \n
    \nOf course, the REAL problems are with the higher-ups that stationed us on this deathtrap before deciding to send it your way, but there's only so much I can say and get away with it, for instance that they only sent this station since they could care less if it was a total loss. By the time you read this, I'll already be long gone. Maybe it'll be a different story with your crew, but between you and me, I wouldn't hold my breath...unless they fuck up the air system.
    \n
    \nDom Kahn
    Former Captain of Nanotrasen CogStation" + +/obj/item/paper/fluff/cogstation/letter_qm + name = "To the future Quartermaster:" + info = "Sorry if this office seems like an afterthought - as I mentioned in my letter to your department at large, you used to be a sub-department of Engineering on this station. Fortunately that's not the case here and you have cargo techs as opposed to other quartermasters, but you should keep the following in mind:
    \n
    \n- Keep your miners focused on where they're supposed to mine. I get the allure of deep space can be tempting, but we want them somewhere we can be fairly confident they'll come back alive and with ores.
    \n
    \n- Anyone with maintenance access can enter the Routing Depot at the heart of the station, but you'll need a space suit to safely reach it. You've been given one for this very reason, but your techs will need to source their own.
    \n
    \n- The fact that you've been given an office and had a good portion of your department refurbished as opposed to being told to make do should be seen as an indication that there are people in this company that care about you, even if it doesn't feel that way sometimes. Remember that before trying to 'declare independence' as 'Cargonia'.
    \n
    \n-C. Donnelly
    \nArchitectural Analyst" + +/obj/item/paper/fluff/cogstation/letter_chap + name = "A message from the DHDA" + info = "Regardless of what the name leads you to believe, CogStation is neither Ratvarian in origin nor designed by members of this so-called 'clock cult'. Despite a potential common enemy and instances of exhibiting peaceful behavior, their beliefs have been labeled 'Heretical' by the Department of Higher-Dimensional Affairs and following them is grounds for immediate termination.
    \nAs the station's designated Chaplain, it is advised you correct anyone who claims this station and/or its designers are Ratvarian. While they are most likely misinformed or 'joking around', untruths gain credibility the more they are repeated.
    \n
    \nSoulstone Obelisk
    \n
    \nDepartment of Higher-Dimensional Affairs" + +/obj/item/paper/fluff/cogstation/cluwne + name = "Mysterious Note" + info = "ThE rInGmAsTeR dOeSn'T rUn ThE cIrCus... HONK!!!" + +/obj/item/paper/fluff/cogstation/mime + name = "Au futur Mime" + info = "Toutes mes excuses pour toute mauvaise grammaire, je ne suis pas un haut-parleur naturel Français et a dû utiliser NanoTranslate. Bien que vous puissiez être mécontent de l’emplacement de votre bureau, s’il vous plaît comprendre que c’était le seul endroit où nous pourrions le mettre sans problèmes de sécurité et/ou CentClown se plaindre à ce sujet. Nous nous excusons également pour l’absence d’une zone de performance dédiée, mais nous espérons que vous accorder un accès à l’entretien compensera.
    \n
    \n-C. Donnelly
    \n
    \nAnalyste Architectural" + +/obj/item/paper/fluff/cogstation/bsrb + name = "Message from the NTBSRB" + info = "Congratulations, (sector name here)! You've been chosen as a candidate to receive a Nanotrasen icon via bluespace translocation! 'CogStation' as it's commonly known has a rich history and a unique layout. Our hope is that you'll be able to retrofit this station to serve your needs, ideally as one of your primary research hubs.

    We look forward to seeing what you can accomplish here!
    \n
    \n-The Nanotrasen Bluespace Research Board" + +/obj/item/paper/fluff/cogstation/survey + name = "Fwd: Survey Report" + info = "After a thorough investigation, I'm happy to say that this translocation and its consequences weren't for naught. CogStation appears to have made it in one piece, with the only exception being a 'drone factory' satellite. I suspect it met a fate similar to parts of the station's original home, which means there's the possibility it's not terribly far from here.
    \n
    \nI can see some of CogStation's components being alien to local crews, but fortunately some of the station's previous staff appear to have anticipated this and left some advice. The assessment team and I have decided to do the same where appropriate, although I can see some areas that might be worth redesigning to better suit area protocol. I've brought them up to the Chief Architect, you should hear from them in a couple of hours.
    \n
    \n-C. Donnelly
    \n
    \nArchitectural Analyst" + +/obj/item/paper/fluff/cogstation/router_off + name = "ROUTER STATUS: INACTIVE" + info = "This router line has been closed while we determine possible solutions. While you are free to use the request and supply consoles, you should plan on receiving your deliveries elsewhere.
    \n
    \n-C. Donnelly
    \n
    \nArchitectural Analyst" + +/obj/item/paper/fluff/cogstation/router_verylimited + name = "ROUTER STATUS: VERY LIMITED" + info = "Currently, this router is only capable of making deliveries to Engineering, Cargo and the recycler, via manual input from the Routing Depot. It is not yet capable of receiving deliveries, meaning you should expect to receive any orders elsewhere.
    \n
    \n-C. Donnelly
    \n
    \nArchitectural Analyst" + +/obj/item/paper/fluff/cogstation/router_limited + name = "ROUTER STATUS: LIMITED" + info = "Currently, this router cannot receive deliveries from the Airbridge, MedSci, Security, or Service Routers. Cargo and the recycler are the only points currently accepting deliveries from here, although manual input from the routing depot is currently required.
    \n
    \n-C. Donnelly
    \n
    \nArchitectural Analyst" + +/obj/item/paper/fluff/cogstation/router_cargo + name = "ROUTER STATUS: VERY LIMITED" + info = "Currently, this router cannot receive deliveries from the Airbridge, MedSci, Security, or Service Routers. It is not yet capable of making deliveries, beyond sending items to the recycler.
    \n
    \n-C. Donnelly
    \n
    \nArchitectural Analyst" /////////// CentCom diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index 2beb9296b3..241dde13a8 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -9,7 +9,6 @@ throw_speed = 3 throw_range = 7 custom_materials = list(/datum/material/iron=60) - item_color = "cargo" pressure_resistance = 2 attack_verb = list("stamped") @@ -20,52 +19,52 @@ /obj/item/stamp/qm name = "quartermaster's rubber stamp" icon_state = "stamp-qm" - item_color = "qm" + dye_color = DYE_QM /obj/item/stamp/law name = "law office's rubber stamp" icon_state = "stamp-law" - item_color = "cargo" + dye_color = DYE_LAW /obj/item/stamp/captain name = "captain's rubber stamp" icon_state = "stamp-cap" - item_color = "captain" + dye_color = DYE_CAPTAIN /obj/item/stamp/hop name = "head of personnel's rubber stamp" icon_state = "stamp-hop" - item_color = "hop" + dye_color = DYE_HOP /obj/item/stamp/hos name = "head of security's rubber stamp" icon_state = "stamp-hos" - item_color = "hosred" + dye_color = DYE_HOS /obj/item/stamp/ce name = "chief engineer's rubber stamp" icon_state = "stamp-ce" - item_color = "chief" + dye_color = DYE_CE /obj/item/stamp/rd name = "research director's rubber stamp" icon_state = "stamp-rd" - item_color = "director" + dye_color = DYE_RD /obj/item/stamp/cmo name = "chief medical officer's rubber stamp" icon_state = "stamp-cmo" - item_color = "cmo" + dye_color = DYE_CMO /obj/item/stamp/denied name = "\improper DENIED rubber stamp" icon_state = "stamp-deny" - item_color = "redcoat" + dye_color = DYE_REDCOAT /obj/item/stamp/clown name = "clown's rubber stamp" icon_state = "stamp-clown" - item_color = "clown" + dye_color = DYE_CLOWN /obj/item/stamp/attack_paw(mob/user) return attack_hand(user) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 9c96216ce8..1b23b1bb5d 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -84,7 +84,7 @@ var/lastused_equip = 0 var/lastused_environ = 0 var/lastused_total = 0 - var/main_status = 0 + var/main_status = 0 // Whether or not there's external power. 0 is "none", 1 is "insufficient", 2 is "charging". powernet = 0 // set so that APCs aren't found as powernet nodes //Hackish, Horrible, was like this before I changed it :( var/malfhack = 0 //New var for my changes to AI malf. --NeoFite var/mob/living/silicon/ai/malfai = null //See above --NeoFite @@ -1276,63 +1276,89 @@ var/last_eq = equipment var/last_en = environ var/last_ch = charging - var/excess = surplus() - - if(!src.avail()) + if(!avail()) main_status = 0 else if(excess < 0) main_status = 1 else main_status = 2 + var/cur_excess = excess + var/cur_used = lastused_total + + // first: if we have enough power, power the essentials DIRECTLY + + var/environ_satisfied = FALSE + var/equipment_satisfied = FALSE + var/lighting_satisfied = FALSE + + if(cur_excess >= lastused_environ) + autoset(environ, 1) + add_load(lastused_environ) + cur_excess -= lastused_environ + cur_used -= lastused_environ + environ_satisfied = TRUE + + if(cur_excess >= lastused_equip) + autoset(equipment, 1) + add_load(lastused_equip) + cur_excess -= lastused_equip + cur_used -= lastused_equip + equipment_satisfied = TRUE + + if(cur_excess >= lastused_light) + autoset(lighting, 1) + add_load(lastused_light) + cur_excess -= lastused_light + cur_used -= lastused_light + lighting_satisfied = TRUE + + + // next: take from or charge to the cell, depending on how much is left if(cell && !shorted) - // draw power from cell as before to power the area - var/cellused = min(cell.charge, GLOB.CELLRATE * lastused_total) // clamp deduction to a max, amount left in cell - cell.use(cellused) + if(cur_excess > 0) + var/charging_cell = min(cur_excess, cell.maxcharge * GLOB.CHARGELEVEL) + cell.give(charging_cell) + add_load(charging_cell) + lastused_total += charging_cell + longtermpower = min(10,longtermpower + 1) + if(chargemode && !charging) + chargecount++ + if(chargecount == 10) - if(excess > lastused_total) // if power excess recharge the cell - // by the same amount just used - cell.give(cellused) - add_load(cellused/GLOB.CELLRATE) // add the load used to recharge the cell - - - else // no excess, and not enough per-apc - if((cell.charge/GLOB.CELLRATE + excess) >= lastused_total) // can we draw enough from cell+grid to cover last usage? - cell.charge = min(cell.maxcharge, cell.charge + GLOB.CELLRATE * excess) //recharge with what we can - add_load(excess) // so draw what we can from the grid - charging = APC_NOT_CHARGING - - else // not enough power available to run the last tick! - charging = APC_NOT_CHARGING - chargecount = 0 + chargecount = 0 + charging = APC_CHARGING + else // not enough power available to run the last tick! + charging = APC_NOT_CHARGING + chargecount = 0 + longtermpower = max(-10,longtermpower - 2) + if(cell.charge >= cur_used) + cell.use(GLOB.CELLRATE * cur_used) + else // This turns everything off in the case that there is still a charge left on the battery, just not enough to run the room. equipment = autoset(equipment, 0) lighting = autoset(lighting, 0) environ = autoset(environ, 0) + // set channels based on remaining charge - // set channels depending on how much charge we have left - - // Allow the APC to operate as normal if the cell can charge - if(charging && longtermpower < 10) - longtermpower += 1 - else if(longtermpower > -10) - longtermpower -= 2 + var/cell_percent = cell.percent() if(cell.charge <= 0) // zero charge, turn all off equipment = autoset(equipment, 0) lighting = autoset(lighting, 0) environ = autoset(environ, 0) area.poweralert(0, src) - else if(cell.percent() < 15 && longtermpower < 0) // <15%, turn off lighting & equipment + + else if(cell_percent < 15 && longtermpower < 0) // <15%, turn off lighting & equipment equipment = autoset(equipment, 2) lighting = autoset(lighting, 2) environ = autoset(environ, 1) area.poweralert(0, src) - else if(cell.percent() < 30 && longtermpower < 0) // <30%, turn off equipment - equipment = autoset(equipment, 2) - lighting = autoset(lighting, 1) + else if(cell_percent < 30 && longtermpower < 0) // <30%, turn off lighting + equipment = autoset(equipment, 1) + lighting = autoset(lighting, 2) environ = autoset(environ, 1) area.poweralert(0, src) else // otherwise all can be on @@ -1340,50 +1366,21 @@ lighting = autoset(lighting, 1) environ = autoset(environ, 1) area.poweralert(1, src) - if(cell.percent() > 75) + if(cell_percent > 75) area.poweralert(1, src) - // now trickle-charge the cell - if(chargemode && charging == APC_CHARGING && operating) - if(excess > 0) // check to make sure we have enough to charge - // Max charge is capped to % per second constant - var/ch = min(excess*GLOB.CELLRATE, cell.maxcharge*GLOB.CHARGELEVEL) - add_load(ch/GLOB.CELLRATE) // Removes the power we're taking from the grid - cell.give(ch) // actually recharge the cell - - else - charging = APC_NOT_CHARGING // stop charging - chargecount = 0 // show cell as fully charged if so if(cell.charge >= cell.maxcharge) cell.charge = cell.maxcharge charging = APC_FULLY_CHARGED - if(chargemode) - if(!charging) - if(excess > cell.maxcharge*GLOB.CHARGELEVEL) - chargecount++ - else - chargecount = 0 - - if(chargecount == 10) - - chargecount = 0 - charging = APC_CHARGING - - else // chargemode off - charging = 0 - chargecount = 0 - - else // no cell, switch everything off - + else // no cell, can still run but not very well charging = APC_NOT_CHARGING chargecount = 0 - equipment = autoset(equipment, 0) - lighting = autoset(lighting, 0) - environ = autoset(environ, 0) - area.poweralert(0, src) + environ = autoset(environ, environ_satisfied) + equipment = autoset(equipment, equipment_satisfied) + lighting = autoset(lighting, lighting_satisfied) // update icon & area power if anything changed @@ -1398,17 +1395,13 @@ // on 0=off, 1=on, 2=autooff /obj/machinery/power/apc/proc/autoset(val, on) - if(on==0) - if(val==2) // if on, return off - return 0 - else if(val==3) // if auto-on, return auto-off - return 1 - else if(on==1) - if(val==1) // if auto-off, return auto-on - return 3 - else if(on==2) - if(val==3) // if auto-on, return auto-off - return 1 + if(val == 3 && (on == 2 || !on)) // if auto-on, return auto-off + return 1 + else if(val == 2 && !on) // if on, return off + return 0 + else if(on == 1 && val == 1) // if auto-off, return auto-on + return 3 + // no, i don't understand these comments either return val /obj/machinery/power/apc/proc/reset(wire) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 8d5de661ae..49848824e4 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -196,7 +196,7 @@ By design, d1 is the smallest direction and d2 is the highest /obj/structure/cable/proc/update_stored(length = 1, colorC = "red") stored.amount = length - stored.item_color = colorC + stored.color = colorC stored.update_icon() //////////////////////////////////////////// @@ -469,7 +469,6 @@ By design, d1 is the smallest direction and d2 is the highest // Definitions //////////////////////////////// -GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restraints", /obj/item/restraints/handcuffs/cable, 15))) /obj/item/stack/cable_coil name = "cable coil" @@ -482,7 +481,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai max_amount = MAXCOIL amount = MAXCOIL merge_type = /obj/item/stack/cable_coil // This is here to let its children merge between themselves - item_color = "red" + color = "red" desc = "A coil of insulated power cable." throwforce = 0 w_class = WEIGHT_CLASS_SMALL @@ -504,7 +503,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai /obj/item/stack/cable_coil/cyborg/attack_self(mob/user) var/cable_color = input(user,"Pick a cable color.","Cable Color") in list("red","yellow","green","blue","pink","orange","cyan","white") - item_color = cable_color + color = cable_color update_icon() /obj/item/stack/cable_coil/suicide_act(mob/user) @@ -514,18 +513,11 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return(OXYLOSS) -/obj/item/stack/cable_coil/Initialize(mapload, new_amount = null, param_color = null) +/obj/item/stack/cable_coil/Initialize(mapload, new_amount = null) . = ..() - - var/list/cable_colors = GLOB.cable_colors - item_color = param_color || item_color || pick(cable_colors) - if(cable_colors[item_color]) - item_color = cable_colors[item_color] - pixel_x = rand(-2,2) pixel_y = rand(-2,2) update_icon() - recipes = GLOB.cable_coil_recipes /////////////////////////////////// // General procedures @@ -541,7 +533,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai if(affecting && affecting.status == BODYPART_ROBOTIC) if(user == H) user.visible_message("[user] starts to fix some of the wires in [H]'s [affecting.name].", "You start fixing some of the wires in [H]'s [affecting.name].") - if(!do_mob(user, H, 50)) + if(!do_after(user, H, 50)) return if(item_heal_robotic(H, user, 0, 15)) use(1) @@ -553,8 +545,6 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai /obj/item/stack/cable_coil/update_icon() icon_state = "[initial(item_state)][amount < 3 ? amount : ""]" name = "cable [amount < 3 ? "piece" : "coil"]" - color = null - add_atom_colour(item_color, FIXED_COLOUR_PRIORITY) /obj/item/stack/cable_coil/attack_hand(mob/user) . = ..() @@ -562,9 +552,23 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai return var/obj/item/stack/cable_coil/new_cable = ..() if(istype(new_cable)) - new_cable.item_color = item_color + new_cable.color = color new_cable.update_icon() +/obj/item/stack/cable_coil/attack_self(mob/user) + if(!use(15)) + to_chat(user, "You dont have enough cable coil to make restraints out of them") + return + to_chat(user, "You start making some cable restraints.") + if(!do_after(user, 30, TRUE, user, TRUE)) + to_chat(user, "You fail to make cable restraints, you need to stand still while doing so.") + give(15) + return + var/obj/item/restraints/handcuffs/cable/result = new(get_turf(user)) + user.put_in_hands(result) + result.color = color + to_chat(user, "You make some restraints out of cable") + //add cables to the stack /obj/item/stack/cable_coil/proc/give(extra) if(amount + extra > max_amount) @@ -581,7 +585,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai /obj/item/stack/cable_coil/proc/get_new_cable(location) var/path = /obj/structure/cable - return new path(location, item_color) + return new path(location, color) // called when cable_coil is clicked on a turf /obj/item/stack/cable_coil/proc/place_turf(turf/T, mob/user, dirnew) @@ -738,7 +742,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai C.d2 = nd2 //updates the stored cable coil - C.update_stored(2, item_color) + C.update_stored(2, color) C.add_fingerprint(user) C.update_icon() @@ -769,40 +773,36 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai ///////////////////////////// /obj/item/stack/cable_coil/red - item_color = "red" - color = "#ff0000" + color = "red" /obj/item/stack/cable_coil/yellow - item_color = "yellow" - color = "#ffff00" + color = "yellow" /obj/item/stack/cable_coil/blue - item_color = "blue" - color = "#1919c8" + color = "blue" /obj/item/stack/cable_coil/green - item_color = "green" - color = "#00aa00" + color = "green" /obj/item/stack/cable_coil/pink - item_color = "pink" color = "#ff3ccd" /obj/item/stack/cable_coil/orange - item_color = "orange" color = "#ff8000" /obj/item/stack/cable_coil/cyan - item_color = "cyan" - color = "#00ffff" + color = "cyan" /obj/item/stack/cable_coil/white - item_color = "white" + color = "white" /obj/item/stack/cable_coil/random - item_color = null color = "#ffffff" +/obj/item/stack/cable_coil/random/Initialize(mapload, new_amount = null, param_color = null) + . = ..() + var/list/cable_colors = GLOB.cable_colors + color = pick(cable_colors) /obj/item/stack/cable_coil/random/five amount = 5 @@ -820,36 +820,33 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai update_icon() /obj/item/stack/cable_coil/cut/red - item_color = "red" - color = "#ff0000" + color = "red" /obj/item/stack/cable_coil/cut/yellow - item_color = "yellow" - color = "#ffff00" + color = "yellow" /obj/item/stack/cable_coil/cut/blue - item_color = "blue" - color = "#1919c8" + color = "blue" /obj/item/stack/cable_coil/cut/green - item_color = "green" - color = "#00aa00" + color = "green" /obj/item/stack/cable_coil/cut/pink - item_color = "pink" color = "#ff3ccd" - /obj/item/stack/cable_coil/cut/orange - item_color = "orange" color = "#ff8000" /obj/item/stack/cable_coil/cut/cyan - item_color = "cyan" - color = "#00ffff" + color = "cyan" /obj/item/stack/cable_coil/cut/white - item_color = "white" + color = "white" /obj/item/stack/cable_coil/cut/random - item_color = null - color = "#ffffff" \ No newline at end of file + color = "#ffffff" + +/obj/item/stack/cable_coil/cut/random/Initialize(mapload, new_amount = null, param_color = null) + . = ..() + var/list/cable_colors = GLOB.cable_colors + color = pick(cable_colors) + diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index a073997b9d..c471047682 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -51,7 +51,8 @@ for(var/datum/antagonist/cult/C in GLOB.antagonists) if(!C.owner) continue - all_cults |= C.cult_team + if(C.cult_team) + all_cults |= C.cult_team for(var/datum/team/cult/T in all_cults) deltimer(T.blood_target_reset_timer) T.blood_target = src diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 6c5f97557d..73ea3ccd59 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -185,7 +185,7 @@ if(sunfrac <= 0) return - var/sgen = SOLAR_GEN_RATE * sunfrac + var/sgen = SOLAR_GEN_RATE * sunfrac * efficiency add_avail(sgen) if(control) control.gen += sgen @@ -253,6 +253,7 @@ var/obj/item/stack/sheet/G = S.change_stack(null, 2) if(G) glass_type = G + G.moveToNullspace() playsound(src.loc, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] places the glass on the solar assembly.", "You place the glass on the solar assembly.") if(tracker) diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index 13a284e970..58a5bfb497 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -21,6 +21,11 @@ desc = "A 10mm incendiary bullet casing." projectile_type = /obj/item/projectile/bullet/incendiary/c10mm +/obj/item/ammo_casing/c10mm/soporific + name = ".10mm soporific bullet casing" + desc = "A 10mm soporific bullet casing." + projectile_type = /obj/item/projectile/bullet/c10mm/soporific + // 9mm (Stechkin APS) /obj/item/ammo_casing/c9mm diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index fbbca99ec2..81ae026138 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -52,6 +52,29 @@ ammo_type = /obj/item/ammo_casing/c10mm max_ammo = 20 +/obj/item/ammo_box/c10mm/fire + name = "ammo box (10mm Incendiary)" + icon_state = "10mmbox" + ammo_type = /obj/item/ammo_casing/c10mm/fire + max_ammo = 20 + +/obj/item/ammo_box/c10mm/hp + name = "ammo box (10mm Hollow Point)" + icon_state = "10mmbox" + ammo_type = /obj/item/ammo_casing/c10mm/hp + max_ammo = 20 + +/obj/item/ammo_box/c10mm/ap + name = "ammo box (10mm Armour Piercing)" + icon_state = "10mmbox" + ammo_type = /obj/item/ammo_casing/c10mm/ap + max_ammo = 20 + +/obj/item/ammo_box/c10mm/soporific + name = "ammo box (10mm Soporific)" + ammo_type = /obj/item/ammo_casing/c10mm/soporific + max_ammo = 20 + /obj/item/ammo_box/c45 name = "ammo box (.45)" icon_state = "45box" diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm index dbde572db1..63b0483875 100644 --- a/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -25,6 +25,13 @@ desc= "A gun magazine. Loaded with rounds which penetrate armour, but are less effective against normal targets." ammo_type = /obj/item/ammo_casing/c10mm/ap +/obj/item/ammo_box/magazine/m10mm/soporific + name = "pistol magazine (10mm soporific)" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "9x19pS" + desc = "A gun magazine. Loaded with rounds which inject the target with a variety of illegal substances to induce sleep in the target." + ammo_type = /obj/item/ammo_casing/c10mm/soporific + /obj/item/ammo_box/magazine/m45 name = "handgun magazine (.45)" icon_state = "45-8" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index d06ad972e6..9c1a23174e 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -41,7 +41,7 @@ var/firing = FALSE /// Used in gun-in-mouth execution/suicide and similar, while TRUE nothing should work on this like firing or modification and so on and so forth. var/busy_action = FALSE - var/weapon_weight = WEAPON_LIGHT //currently only used for inaccuracy + var/weapon_weight = WEAPON_LIGHT //used for inaccuracy and wielding requirements/penalties var/spread = 0 //Spread induced by the gun itself. var/burst_spread = 0 //Spread induced by the gun itself during burst fire per iteration. Only checked if spread is 0. var/randomspread = 1 //Set to 0 for shotguns. This is used for weapons that don't fire all their bullets at once. @@ -513,7 +513,7 @@ icon_icon = 'icons/mob/actions/actions_items.dmi' button_icon_state = "sniper_zoom" -/datum/action/item_action/toggle_scope_zoom/IsAvailable() +/datum/action/item_action/toggle_scope_zoom/IsAvailable(silent = FALSE) . = ..() if(!.) var/obj/item/gun/G = target diff --git a/code/modules/projectiles/guns/ballistic/magweapon.dm b/code/modules/projectiles/guns/ballistic/magweapon.dm index f1d02e5cc2..e71f414bd8 100644 --- a/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -1,10 +1,10 @@ /obj/item/gun/ballistic/automatic/magrifle - name = "\improper Magnetic Rifle" + name = "magnetic rifle" desc = "A simple upscalling of the technologies used in the magpistol, the magrifle is capable of firing slightly larger slugs in bursts. Compatible with the magpistol's slugs." icon_state = "magrifle" item_state = "arg" force = 10 - slot_flags = NONE + slot_flags = ITEM_SLOT_BACK mag_type = /obj/item/ammo_box/magazine/mmag fire_sound = 'sound/weapons/magrifle.ogg' can_suppress = FALSE @@ -17,6 +17,7 @@ inaccuracy_modifier = 0 dualwield_spread_mult = 1.4 weapon_weight = WEAPON_MEDIUM + w_class = WEIGHT_CLASS_BULKY var/obj/item/stock_parts/cell/cell var/cell_type = /obj/item/stock_parts/cell/magnetic @@ -63,12 +64,13 @@ spawnwithmagazine = FALSE /obj/item/gun/ballistic/automatic/magrifle/hyperburst - name = "\improper Hyper-Burst Rifle" + name = "\improper Hyper-Burst rifle" desc = "An extremely beefed up version of a stolen Nanotrasen weapon prototype, this 'rifle' is more like a cannon, with an extremely large bore barrel capable of generating several smaller magnetic 'barrels' to simultaneously launch multiple projectiles at once." icon_state = "hyperburst" - item_state = "arg" + slot_flags = NONE //too lazy for the sprites rn and it's pretty stronk anyway. mag_type = /obj/item/ammo_box/magazine/mhyper fire_sound = 'sound/weapons/magburst.ogg' + w_class = WEIGHT_CLASS_HUGE fire_delay = 40 recoil = 2 weapon_weight = WEAPON_HEAVY @@ -83,6 +85,8 @@ name = "magpistol" desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities." icon_state = "magpistol" + w_class = WEIGHT_CLASS_NORMAL + slot_flags = ITEM_SLOT_BELT fire_sound = 'sound/weapons/magpistol.ogg' mag_type = /obj/item/ammo_box/magazine/mmag/small fire_delay = 2 diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index 68f212ba30..e15c49b891 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -21,6 +21,38 @@ var/obj/item/suppressor/S = new(src) install_suppressor(S) +//(reskinnable stetchkin) +/obj/item/gun/ballistic/automatic/pistol/modular + name = "modular pistol" + desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors." + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "cde" + can_unsuppress = TRUE + obj_flags = UNIQUE_RENAME + unique_reskin = list("Default" = "cde", + "N-99" = "n99", + "Stealth" = "stealthpistol", + "HKVP-78" = "vp78", + "Luger" = "p08b", + "Mk.58" = "secguncomp", + "PX4 Storm" = "px4" + ) + +/obj/item/gun/ballistic/automatic/pistol/modular/update_icon() + ..() + if(current_skin) + icon_state = "[unique_reskin[current_skin]][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" + else + icon_state = "[initial(icon_state)][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" + if(magazine && suppressed) + cut_overlays() + add_overlay("[unique_reskin[current_skin]]-magazine-sup") //Yes, this means the default iconstate can't have a magazine overlay + else if (magazine) + cut_overlays() + add_overlay("[unique_reskin[current_skin]]-magazine") + else + cut_overlays() + /obj/item/gun/ballistic/automatic/pistol/m1911 name = "\improper M1911" desc = "A classic .45 handgun with a small magazine capacity." @@ -92,3 +124,34 @@ to_chat(user, "..and falls into view. Whew, that was a close one.") user.dropItemToGround(src) +////////////Anti Tank Pistol//////////// + +/obj/item/gun/ballistic/automatic/pistol/antitank + name = "Anti Tank Pistol" + desc = "A massively impractical and silly monstrosity of a pistol that fires .50 calliber rounds. The recoil is likely to dislocate your wrist." + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "atp" + item_state = "pistol" + recoil = 4 + mag_type = /obj/item/ammo_box/magazine/sniper_rounds + fire_delay = 50 + burst_size = 1 + can_suppress = 0 + w_class = WEIGHT_CLASS_NORMAL + actions_types = list() + fire_sound = 'sound/weapons/blastcannon.ogg' + spread = 20 //damn thing has no rifling. + +/obj/item/gun/ballistic/automatic/pistol/antitank/update_icon() + ..() + if(magazine) + cut_overlays() + add_overlay("atp-mag") + else + cut_overlays() + icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" + +/obj/item/gun/ballistic/automatic/pistol/antitank/syndicate + name = "Syndicate Anti Tank Pistol" + desc = "A massively impractical and silly monstrosity of a pistol that fires .50 calliber rounds. The recoil is likely to dislocate a variety of joints without proper bracing." + pin = /obj/item/firing_pin/implant/pindicate diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 36a9bba295..e0c84e7047 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -65,9 +65,6 @@ update_icon() /obj/item/gun/energy/Destroy() - //no need to delete them, since contents are already deleted in atom/movable/Destroy(). - cell = null - ammo_type = null STOP_PROCESSING(SSobj, src) return ..() diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 2fe9b326eb..bcd3a97ccd 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -24,6 +24,7 @@ icon_state = "toyburst" obj_flags = NONE fire_delay = 40 + w_class = WEIGHT_CLASS_HUGE weapon_weight = WEAPON_HEAVY selfcharge = EGUN_SELFCHARGE charge_delay = 2 @@ -56,12 +57,14 @@ /obj/item/gun/energy/laser/carbine name = "laser carbine" desc = "A ruggedized laser carbine featuring much higher capacity and improved handling when compared to a normal laser gun." - icon = 'icons/obj/guns/energy.dmi' icon_state = "lasernew" - item_state = "laser" + item_state = "lasernew" + slot_flags = ITEM_SLOT_BACK + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_MEDIUM + inaccuracy_modifier = 0.5 force = 10 throwforce = 10 - ammo_type = list(/obj/item/ammo_casing/energy/lasergun) cell_type = /obj/item/stock_parts/cell/lascarbine resistance_flags = FIRE_PROOF | ACID_PROOF diff --git a/code/modules/projectiles/guns/magic/staff.dm b/code/modules/projectiles/guns/magic/staff.dm index 14b2ff0c1a..c993c0013a 100644 --- a/code/modules/projectiles/guns/magic/staff.dm +++ b/code/modules/projectiles/guns/magic/staff.dm @@ -90,9 +90,10 @@ . = ..() AddComponent(/datum/component/butchering, 15, 125, 0, hitsound) -/obj/item/gun/magic/staff/spellblade/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(attack_type == PROJECTILE_ATTACK) - final_block_chance = 0 +/obj/item/gun/magic/staff/spellblade/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + // Do not block projectiles. + if(attack_type & ATTACK_TYPE_PROJECTILE) + return BLOCK_NONE return ..() /obj/item/gun/magic/staff/locker diff --git a/code/modules/projectiles/guns/misc/chameleon.dm b/code/modules/projectiles/guns/misc/chameleon.dm index d2afe2bd78..4fa614ae5c 100644 --- a/code/modules/projectiles/guns/misc/chameleon.dm +++ b/code/modules/projectiles/guns/misc/chameleon.dm @@ -60,13 +60,12 @@ continue vv_edit_var(v, initial(vars[v])) vars[v] = initial(vars[v]) - QDEL_NULL(chambered.BB) + QDEL_NULL(chambered.BB) chambered.newshot() /obj/item/gun/energy/laser/chameleon/proc/set_chameleon_ammo(obj/item/ammo_casing/AC, passthrough = TRUE, reset = FALSE) if(!istype(AC)) CRASH("[AC] is not /obj/item/ammo_casing!") - return FALSE for(var/V in ammo_copy_vars) if(AC.vars.Find(V)) chameleon_ammo_vars[V] = AC.vars[V] @@ -78,7 +77,6 @@ /obj/item/gun/energy/laser/chameleon/proc/set_chameleon_projectile(obj/item/projectile/P) if(!istype(P)) CRASH("[P] is not /obj/item/projectile!") - return FALSE chameleon_projectile_vars = list("name" = "practice laser", "icon" = 'icons/obj/projectiles.dmi', "icon_state" = "laser", "nodamage" = TRUE) for(var/V in projectile_copy_vars) if(P.vars.Find(V)) @@ -99,7 +97,6 @@ /obj/item/gun/energy/laser/chameleon/proc/set_chameleon_gun(obj/item/gun/G , passthrough = TRUE) if(!istype(G)) CRASH("[G] is not /obj/item/gun!") - return FALSE for(var/V in gun_copy_vars) if(vars.Find(V) && G.vars.Find(V)) chameleon_gun_vars[V] = G.vars[V] diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 9b60f96d16..6094a7aa46 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -20,7 +20,7 @@ var/atom/movable/firer = null//Who shot it var/atom/fired_from = null // the atom that the projectile was fired from (gun, turret) var/suppressed = FALSE //Attack message var/suppressed = FALSE //Attack message - var/candink = FALSE //Can this projectile play the dink sound when hitting the head? var/yo = null + var/candink = FALSE //Can this projectile play the dink sound when hitting the head? var/yo = null var/xo = null var/atom/original = null // the original target clicked @@ -695,3 +695,9 @@ /obj/item/projectile/experience_pressure_difference() return + +/////// MISC HELPERS //////// +/// Is this atom reflectable with ""standardized"" reflection methods like you know eshields and deswords and similar +/proc/is_energy_reflectable_projectile(atom/A) + var/obj/item/projectile/P = A + return istype(P) && P.is_reflectable diff --git a/code/modules/projectiles/projectile/bullets/pistol.dm b/code/modules/projectiles/projectile/bullets/pistol.dm index b68c3847e2..319640a4d5 100644 --- a/code/modules/projectiles/projectile/bullets/pistol.dm +++ b/code/modules/projectiles/projectile/bullets/pistol.dm @@ -34,3 +34,17 @@ name = "10mm incendiary bullet" damage = 15 fire_stacks = 2 + +/obj/item/projectile/bullet/c10mm/soporific + name ="10mm soporific bullet" + nodamage = TRUE + +/obj/item/projectile/bullet/c10mm/soporific/on_hit(atom/target, blocked = FALSE) + . = ..() + if((blocked != 100) && isliving(target)) + var/mob/living/L = target + L.blur_eyes(6) + if(L.getStaminaLoss() >= 60) + L.Sleeping(300) + else + L.adjustStaminaLoss(25) \ No newline at end of file diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index eff1531e23..89dd229407 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -972,7 +972,6 @@ if(isnull(amount)) amount = 0 CRASH("null amount passed to reagent code") - return FALSE if(!isnum(amount)) return FALSE diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index 22ff88d793..9899d219bf 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -189,96 +189,139 @@ if(beaker) for(var/datum/reagent/R in beaker.reagents.reagent_list) beakerContents.Add(list(list("name" = R.name, "id" = ckey(R.name), "volume" = R.volume))) // list in a list because Byond merges the first list... - data["beakerContents"] = beakerContents + data["beakerContents"] = beakerContents var/bufferContents[0] if(reagents.total_volume) for(var/datum/reagent/N in reagents.reagent_list) bufferContents.Add(list(list("name" = N.name, "id" = ckey(N.name), "volume" = N.volume))) // ^ - data["bufferContents"] = bufferContents + data["bufferContents"] = bufferContents //Calculated at init time as it never changes data["pillStyles"] = pillStyles - return data /obj/machinery/chem_master/ui_act(action, params) if(..()) return + switch(action) if("eject") replace_beaker(usr) . = TRUE - if("ejectp") + if("ejectPillBottle") replace_pillbottle(usr) . = TRUE - if("transferToBuffer") - if(beaker) - var/reagent = GLOB.name2reagent[params["id"]] - var/amount = text2num(params["amount"]) - if (amount > 0) - end_fermi_reaction() - beaker.reagents.trans_id_to(src, reagent, amount) - . = TRUE - else if (amount == -1) // -1 means custom amount - useramount = input("Enter the Amount you want to transfer:", name, useramount) as num|null - if (useramount > 0) - end_fermi_reaction() - beaker.reagents.trans_id_to(src, reagent, useramount) - . = TRUE - - if("transferFromBuffer") + if("transfer") + if(!beaker) + return FALSE var/reagent = GLOB.name2reagent[params["id"]] var/amount = text2num(params["amount"]) - if (amount > 0) - if(mode) - reagents.trans_id_to(beaker, reagent, amount) - . = TRUE - else - reagents.remove_reagent(reagent, amount) - . = TRUE - else if (amount == -1) // -1 means custom amount - useramount = input("Enter the Amount you want to transfer:", name, useramount) as num|null - if (useramount > 0) - end_fermi_reaction() - reagents.trans_id_to(beaker, reagent, useramount) - . = TRUE + var/to_container = params["to"] + // Custom amount + if (amount == -1) + amount = text2num(input( + "Enter the amount you want to transfer:", + name, "")) + if (amount == null || amount <= 0) + return FALSE + if (to_container == "buffer") + end_fermi_reaction() + beaker.reagents.trans_id_to(src, reagent, amount) + return TRUE + if (to_container == "beaker" && mode) + end_fermi_reaction() + reagents.trans_id_to(beaker, reagent, amount) + return TRUE + if (to_container == "beaker" && !mode) + end_fermi_reaction() + reagents.remove_reagent(reagent, amount) + return TRUE + return FALSE if("toggleMode") mode = !mode . = TRUE - if("createPill") - var/many = params["many"] + if("pillStyle") + var/id = text2num(params["id"]) + chosenPillStyle = id + return TRUE + + if("create") if(reagents.total_volume == 0) - return - if(!condi) - var/amount = 1 - var/vol_each = min(reagents.total_volume, 50) - if(text2num(many)) - amount = CLAMP(round(input(usr, "Max 10. Buffer content will be split evenly.", "How many pills?", amount) as num|null), 0, 10) - if(!amount) - return - vol_each = min(reagents.total_volume / amount, 50) - var/name = html_decode(stripped_input(usr,"Name:","Name your pill!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN)) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) - return + return FALSE + var/item_type = params["type"] + // Get amount of items + var/amount = text2num(params["amount"]) + if(amount == null) + amount = text2num(input(usr, + "Max 10. Buffer content will be split evenly.", + "How many to make?", 1)) + amount = clamp(round(amount), 0, 10) + if (amount <= 0) + return FALSE + // Get units per item + var/vol_each = text2num(params["volume"]) + var/vol_each_text = params["volume"] + var/vol_each_max = reagents.total_volume / amount + if (item_type == "pill") + vol_each_max = min(50, vol_each_max) + else if (item_type == "patch") + vol_each_max = min(40, vol_each_max) + else if (item_type == "bottle") + vol_each_max = min(30, vol_each_max) + else if (item_type == "condimentPack") + vol_each_max = min(10, vol_each_max) + else if (item_type == "condimentBottle") + vol_each_max = min(50, vol_each_max) + else if (item_type == "hypoVial") + vol_each_max = min(60, vol_each_max) + else if (item_type == "smartDart") + vol_each_max = min(20, vol_each_max) + else + return FALSE + if(vol_each_text == "auto") + vol_each = vol_each_max + if(vol_each == null) + vol_each = text2num(input(usr, + "Maximum [vol_each_max] units per item.", + "How many units to fill?", + vol_each_max)) + vol_each = clamp(vol_each, 0, vol_each_max) + if(vol_each <= 0) + return FALSE + // Get item name + var/name = params["name"] + var/name_has_units = item_type == "pill" || item_type == "patch" + if(!name) + var/name_default = reagents.get_master_reagent_name() + if (name_has_units) + name_default += " ([vol_each]u)" + name = stripped_input(usr, + "Name:", + "Give it a name!", + name_default, + MAX_NAME_LEN) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !issilicon(usr))) + return FALSE + // Start filling + if(item_type == "pill") var/obj/item/reagent_containers/pill/P var/target_loc = drop_location() var/drop_threshold = INFINITY if(bottle) - var/datum/component/storage/STRB = bottle.GetComponent(/datum/component/storage) + var/datum/component/storage/STRB = bottle.GetComponent( + /datum/component/storage) if(STRB) drop_threshold = STRB.max_items - bottle.contents.len - target_loc = bottle - - for(var/i in 1 to amount) - if(i <= drop_threshold) - P = new(target_loc) + for(var/i = 0; i < amount; i++) + if(i < drop_threshold) + P = new/obj/item/reagent_containers/pill(target_loc) else - P = new(drop_location()) + P = new/obj/item/reagent_containers/pill(drop_location()) P.name = trim("[name] pill") if(chosenPillStyle == RANDOM_PILL_STYLE) P.icon_state ="pill[rand(1,21)]" @@ -287,171 +330,62 @@ if(P.icon_state == "pill4") P.desc = "A tablet or capsule, but not just any, a red one, one taken by the ones not scared of knowledge, freedom, uncertainty and the brutal truths of reality." adjust_item_drop_location(P) - reagents.trans_to(P,vol_each) - else - var/name = html_decode(stripped_input(usr, "Name:", "Name your pack!", reagents.get_master_reagent_name(), MAX_NAME_LEN)) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) - return - var/obj/item/reagent_containers/food/condiment/pack/P = new/obj/item/reagent_containers/food/condiment/pack(drop_location()) - - P.originalname = name - P.name = trim("[name] pack") - P.desc = "A small condiment pack. The label says it contains [name]." - reagents.trans_to(P,10) - . = TRUE - - if("pillStyle") - var/id = text2num(params["id"]) - chosenPillStyle = id - - if("createPatch") - var/many = params["many"] - if(reagents.total_volume == 0) - return - var/amount = 1 - var/vol_each = min(reagents.total_volume, 40) - if(text2num(many)) - amount = CLAMP(round(input(usr, "Max 10. Buffer content will be split evenly.", "How many patches?", amount) as num|null), 0, 10) - if(!amount) - return - vol_each = min(reagents.total_volume / amount, 40) - var/name = html_decode(stripped_input(usr,"Name:","Name your patch!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN)) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) - return - var/obj/item/reagent_containers/pill/P - - for(var/i = 0; i < amount; i++) - P = new/obj/item/reagent_containers/pill/patch(drop_location()) - P.name = trim("[name] patch") - adjust_item_drop_location(P) - reagents.trans_to(P,vol_each) - . = TRUE - - if("createBottle") - var/many = params["many"] - if(reagents.total_volume == 0) - return - - if(condi) - var/name = html_decode(stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN)) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) - return - var/obj/item/reagent_containers/food/condiment/P = new(drop_location()) - P.originalname = name - P.name = trim("[name] bottle") - reagents.trans_to(P, P.volume) - else - var/amount_full = 0 - var/vol_part = min(reagents.total_volume, 30) - if(text2num(many)) - amount_full = round(reagents.total_volume / 30) - vol_part = ((reagents.total_volume*1000) % 30000) / 1000 //% operator doesn't support decimals. - var/name = html_decode(stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN)) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) - return - + reagents.trans_to(P, vol_each) + return TRUE + if(item_type == "patch") + var/obj/item/reagent_containers/pill/patch/P + for(var/i = 0; i < amount; i++) + P = new/obj/item/reagent_containers/pill/patch(drop_location()) + P.name = trim("[name] patch") + adjust_item_drop_location(P) + reagents.trans_to(P, vol_each) + return TRUE + if(item_type == "bottle") var/obj/item/reagent_containers/glass/bottle/P - for(var/i = 0; i < amount_full; i++) + for(var/i = 0; i < amount; i++) P = new/obj/item/reagent_containers/glass/bottle(drop_location()) P.name = trim("[name] bottle") adjust_item_drop_location(P) - reagents.trans_to(P, 30) - - if(vol_part) - P = new/obj/item/reagent_containers/glass/bottle(drop_location()) + reagents.trans_to(P, vol_each) + return TRUE + if(item_type == "condimentPack") + var/obj/item/reagent_containers/food/condiment/pack/P + for(var/i = 0; i < amount; i++) + P = new/obj/item/reagent_containers/food/condiment/pack(drop_location()) + P.originalname = name + P.name = trim("[name] pack") + P.desc = "A small condiment pack. The label says it contains [name]." + reagents.trans_to(P, vol_each) + return TRUE + if(item_type == "condimentBottle") + var/obj/item/reagent_containers/food/condiment/P + for(var/i = 0; i < amount; i++) + P = new/obj/item/reagent_containers/food/condiment(drop_location()) + P.originalname = name P.name = trim("[name] bottle") + reagents.trans_to(P, vol_each) + return TRUE + if(item_type == "hypoVial") + var/obj/item/reagent_containers/glass/bottle/vial/small/P + for(var/i = 0; i < amount; i++) + P = new/obj/item/reagent_containers/glass/bottle/vial/small(drop_location()) + P.name = trim("[name] hypovial") adjust_item_drop_location(P) - reagents.trans_to(P, vol_part) - . = TRUE - //CITADEL ADD Hypospray Vials - if("createVial") - var/many = params["many"] - if(reagents.total_volume == 0) - return + reagents.trans_to(P, vol_each) + return TRUE + if(item_type == "smartDart") + var/obj/item/reagent_containers/syringe/dart/P + for(var/i = 0; i < amount; i++) + P = new /obj/item/reagent_containers/syringe/dart(drop_location()) + P.name = trim("[name] SmartDart") + adjust_item_drop_location(P) + reagents.trans_to(P, vol_each) + P.mode=!mode + P.update_icon() + return TRUE + return FALSE - var/amount_full = 0 - var/vol_part = min(reagents.total_volume, 60) - if(text2num(many)) - amount_full = round(reagents.total_volume / 60) - vol_part = reagents.total_volume % 60 - var/name = html_decode(stripped_input(usr, "Name:","Name your hypovial!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN)) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) - return - - var/obj/item/reagent_containers/glass/bottle/vial/small/P - for(var/i = 0; i < amount_full; i++) - P = new/obj/item/reagent_containers/glass/bottle/vial/small(drop_location()) - P.name = trim("[name] hypovial") - adjust_item_drop_location(P) - reagents.trans_to(P, 60) - - if(vol_part) - P = new/obj/item/reagent_containers/glass/bottle/vial/small(drop_location()) - P.name = trim("[name] hypovial") - adjust_item_drop_location(P) - reagents.trans_to(P, vol_part) - . = TRUE - - if("createDart") - for(var/datum/reagent/R in reagents.reagent_list) - if(!(istype(R, /datum/reagent/medicine))) - visible_message("The [src] beeps, \"SmartDarts are insoluble with non-medicinal compounds.\"") - return - - var/many = params["many"] - if(reagents.total_volume == 0) - return - var/amount = 1 - var/vol_each = min(reagents.total_volume, 20) - if(text2num(many)) - amount = CLAMP(round(input(usr, "Max 10. Buffer content will be split evenly.", "How many darts?", amount) as num|null), 0, 10) - if(!amount) - return - vol_each = min(reagents.total_volume / amount, 20) - - var/name = html_decode(stripped_input(usr,"Name:","Name your SmartDart!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN)) - if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, !hasSiliconAccessInArea(usr))) - return - - var/obj/item/reagent_containers/syringe/dart/D - for(var/i = 0; i < amount; i++) - D = new /obj/item/reagent_containers/syringe/dart(drop_location()) - D.name = trim("[name] SmartDart") - adjust_item_drop_location(D) - reagents.trans_to(D, vol_each) - D.mode=!mode - D.update_icon() - . = TRUE - - //END CITADEL ADDITIONS - if("analyzeBeak") - var/datum/reagent/R = GLOB.name2reagent[params["id"]] - if(R) - var/state = "Unknown" - if(initial(R.reagent_state) == 1) - state = "Solid" - else if(initial(R.reagent_state) == 2) - state = "Liquid" - else if(initial(R.reagent_state) == 3) - state = "Gas" - var/const/P = 3 //The number of seconds between life ticks - var/T = initial(R.metabolization_rate) * (60 / P) - var/datum/chemical_reaction/Rcr = get_chemical_reaction(R) - if(Rcr && Rcr.FermiChem) - fermianalyze = TRUE - var/pHpeakCache = (Rcr.OptimalpHMin + Rcr.OptimalpHMax)/2 - var/datum/reagent/targetReagent = beaker.reagents.has_reagent(R) - - if(!targetReagent) - CRASH("Tried to find a reagent that doesn't exist in the chem_master!") - analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold), "purityF" = targetReagent.purity, "inverseRatioF" = initial(R.inverse_chem_val), "purityE" = initial(Rcr.PurityMin), "minTemp" = initial(Rcr.OptimalTempMin), "maxTemp" = initial(Rcr.OptimalTempMax), "eTemp" = initial(Rcr.ExplodeTemp), "pHpeak" = pHpeakCache) - else - fermianalyze = FALSE - analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold)) - screen = "analyze" - return - - if("analyzeBuff") + if("analyze") var/datum/reagent/R = GLOB.name2reagent[params["id"]] if(R) var/state = "Unknown" @@ -476,7 +410,7 @@ fermianalyze = FALSE analyzeVars = list("name" = initial(R.name), "state" = state, "color" = initial(R.color), "description" = initial(R.description), "metaRate" = T, "overD" = initial(R.overdose_threshold), "addicD" = initial(R.addiction_threshold)) screen = "analyze" - return + return TRUE if("goScreen") screen = params["screen"] @@ -527,4 +461,4 @@ condi = TRUE #undef PILL_STYLE_COUNT -#undef RANDOM_PILL_STYLE \ No newline at end of file +#undef RANDOM_PILL_STYLE diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index a7c0d55bb6..7ee233b449 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -43,8 +43,8 @@ All effects don't start immediately, but rather get worse over time; the rate is booze_power *= 0.7 C.drunkenness = max((C.drunkenness + (sqrt(volume) * booze_power * ALCOHOL_RATE)), 0) //Volume, power, and server alcohol rate effect how quickly one gets drunk var/obj/item/organ/liver/L = C.getorganslot(ORGAN_SLOT_LIVER) - if (istype(L)) - C.applyLiverDamage((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * L.alcohol_tolerance, 0))/150) + if(L) + L.applyOrganDamage((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * L.alcohol_tolerance, 0))/150) return ..() /datum/reagent/consumable/ethanol/reaction_obj(obj/O, reac_volume) @@ -1646,7 +1646,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "pina_colada" glass_name = "Pina Colada" glass_desc = "If you like pina coladas, and getting caught in the rain... well, you'll like this drink." - + /datum/reagent/consumable/ethanol/grasshopper name = "Grasshopper" description = "A fresh and sweet dessert shooter. Difficult to look manly while drinking this." @@ -2354,7 +2354,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/hotlime_miami/on_mob_life(mob/living/carbon/M) M.set_drugginess(50) M.adjustStaminaLoss(-2) - return ..() + return ..() /datum/reagent/consumable/ethanol/fruit_wine name = "Fruit Wine" diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index 482dfde1d6..52c06bca9b 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -864,12 +864,13 @@ glass_icon_state = "red_queen" glass_name = "Red Queen" glass_desc = "DRINK ME." - var/current_size = 1 + var/current_size = RESIZE_DEFAULT_SIZE /datum/reagent/consumable/red_queen/on_mob_life(mob/living/carbon/H) if(prob(75)) return ..() var/newsize = pick(0.5, 0.75, 1, 1.50, 2) + newsize *= RESIZE_DEFAULT_SIZE H.resize = newsize/current_size current_size = newsize H.update_transform() @@ -878,7 +879,8 @@ ..() /datum/reagent/consumable/red_queen/on_mob_end_metabolize(mob/living/M) - M.resize = 1/current_size + M.resize = RESIZE_DEFAULT_SIZE/current_size + current_size = RESIZE_DEFAULT_SIZE M.update_transform() ..() diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index bf090302c8..e7229b5abf 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -467,9 +467,9 @@ if(H.physiology) H.physiology.stamina_mod *= 0.5 if(H.dna && H.dna.species) - H.dna.species.punchdamagehigh *= 4 - H.dna.species.punchdamagelow *= 4 - H.dna.species.punchstunthreshold *= 2 + H.dna.species.punchdamagehigh += 4 + H.dna.species.punchdamagelow += 4 + H.dna.species.punchstunthreshold -= 2 /datum/reagent/drug/skooma/on_mob_end_metabolize(mob/living/L) . = ..() @@ -480,9 +480,9 @@ if(H.physiology) H.physiology.stamina_mod *= 2 if(H.dna && H.dna.species) - H.dna.species.punchdamagehigh *= 0.25 - H.dna.species.punchdamagelow *= 0.25 - H.dna.species.punchstunthreshold *= 0.5 + H.dna.species.punchdamagehigh -= 4 + H.dna.species.punchdamagelow -= 4 + H.dna.species.punchstunthreshold += 2 /datum/reagent/drug/skooma/on_mob_life(mob/living/carbon/M) M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1*REM) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 46002287dd..ecceb6e8bf 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -263,9 +263,9 @@ /datum/reagent/medicine/silver_sulfadiazine/overdose_start(mob/living/M) metabolization_rate = 15 * REAGENTS_METABOLISM M.adjustBruteLoss(2*REM, 0) - if(iscarbon(M)) - var/mob/living/carbon/C = M - C.applyLiverDamage(1) + var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) + if(L) + L.applyOrganDamage(1) ..() . = 1 @@ -326,9 +326,9 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) metabolization_rate = 15 * REAGENTS_METABOLISM M.adjustBruteLoss(2*REM, 0) - if(iscarbon(M)) - var/mob/living/carbon/C = M - C.applyLiverDamage(1) + var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) + if(L) + L.applyOrganDamage(1) ..() . = 1 diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 1fbb3cc346..c2f14e69ec 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -332,7 +332,7 @@ data = list("misc" = 1) data["misc"]++ M.jitteriness = min(M.jitteriness+4,10) - if(iscultist(M)) + if(iscultist(M, FALSE, TRUE)) for(var/datum/action/innate/cult/blood_magic/BM in M.actions) if(!BM.holy_dispel) BM.holy_dispel = TRUE @@ -361,7 +361,7 @@ if("emote") M.visible_message("[M] [pick("whimpers quietly", "shivers as though cold", "glances around in paranoia")].") if(data["misc"] >= 60) // 30 units, 135 seconds - if(iscultist(M) || is_servant_of_ratvar(M)) + if(iscultist(M, FALSE, TRUE) || is_servant_of_ratvar(M, FALSE, TRUE)) if(iscultist(M)) SSticker.mode.remove_cultist(M.mind, FALSE, TRUE) else if(is_servant_of_ratvar(M)) @@ -1070,11 +1070,11 @@ to_chat(M, "You start feeling your guts twisting painfully!") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/overdose, name) -/datum/reagent/iron/overdose_process(mob/living/carbon/C) +/datum/reagent/iron/overdose_process(mob/living/M) if(prob(20)) - var/obj/item/organ/liver/L = C.getorganslot(ORGAN_SLOT_LIVER) - if (istype(L)) - C.applyLiverDamage(2) //mild until the fabled med rework comes out. the organ damage galore + var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) + if(L) + L.applyOrganDamage(2) ..() /datum/reagent/gold @@ -1917,22 +1917,22 @@ name = "Growth Serum" description = "A commercial chemical designed to help older men in the bedroom."//not really it just makes you a giant color = "#ff0000"//strong red. rgb 255, 0, 0 - var/current_size = 1 + var/current_size = RESIZE_DEFAULT_SIZE taste_description = "bitterness" // apparently what viagra tastes like /datum/reagent/growthserum/on_mob_life(mob/living/carbon/H) var/newsize = current_size switch(volume) if(0 to 19) - newsize = 1.25 + newsize = 1.25*RESIZE_DEFAULT_SIZE if(20 to 49) - newsize = 1.5 + newsize = 1.5*RESIZE_DEFAULT_SIZE if(50 to 99) - newsize = 2 + newsize = 2*RESIZE_DEFAULT_SIZE if(100 to 199) - newsize = 2.5 + newsize = 2.5*RESIZE_DEFAULT_SIZE if(200 to INFINITY) - newsize = 3.5 + newsize = 3.5*RESIZE_DEFAULT_SIZE H.resize = newsize/current_size current_size = newsize @@ -1940,7 +1940,8 @@ ..() /datum/reagent/growthserum/on_mob_end_metabolize(mob/living/M) - M.resize = 1/current_size + M.resize = RESIZE_DEFAULT_SIZE/current_size + current_size = RESIZE_DEFAULT_SIZE M.update_transform() ..() diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 3c4be7969d..9555f5b64b 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -331,7 +331,6 @@ else to_chat(user, "This doesn't fit in [src].") return FALSE - return FALSE /obj/item/hypospray/mkii/AltClick(mob/user) . = ..() diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 1c87c1901c..1e687816ff 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -235,7 +235,7 @@ /obj/structure/reagent_dispensers/keg/milk name = "keg of milk" - desc = "It's not quite what you were hoping for." + desc = "A keg of pasteurised, homogenised, filtered and semi-skimmed space milk." icon_state = "whitekeg" reagent_id = /datum/reagent/consumable/milk @@ -250,4 +250,4 @@ desc = "A keg of... wow that's a long name." icon_state = "bluekeg" reagent_id = /datum/reagent/consumable/ethanol/gargle_blaster - tank_volume = 100 \ No newline at end of file + tank_volume = 100 diff --git a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm index c5f6b01e57..6d63df7d4b 100644 --- a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm +++ b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm @@ -45,7 +45,7 @@ /datum/design/board/vendor name = "Machine Design (Vendor Board)" - desc = "The circuit board for a Vendor." + desc = "The circuit board for a Vendor. Use a screwdriver to turn the \"brand selection\" dial." id = "vendor" build_path = /obj/item/circuitboard/machine/vendor category = list ("Misc. Machinery") diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 6b3ba6fe28..5405b82848 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -122,16 +122,6 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL -/datum/design/bluespacebodybag - name = "Bluespace Body Bag" - desc = "A bluespace body bag, powered by experimental bluespace technology. It can hold loads of bodies and the largest of creatures." - id = "bluespacebodybag" - build_type = PROTOLATHE - materials = list(/datum/material/iron = 3000, /datum/material/plasma = 2000, /datum/material/diamond = 500, /datum/material/bluespace = 500) - build_path = /obj/item/bodybag/bluespace - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - /datum/design/plasmarefiller name = "Plasma-Man Jumpsuit Refill" desc = "A refill pack for the auto-extinguisher on Plasma-man suits." @@ -242,6 +232,40 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE +//////////////////////////////////////// +//////////Body Bags///////////////////// +//////////////////////////////////////// + +/datum/design/bodybag + name = "Body Bag" + desc = "A normal body bag used for storge of dead crew." + id = "bodybag" + build_type = PROTOLATHE + materials = list(/datum/material/plastic = 4000) + build_path = /obj/item/bodybag + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/bluespacebodybag + name = "Bluespace Body Bag" + desc = "A bluespace body bag, powered by experimental bluespace technology. It can hold loads of bodies and the largest of creatures." + id = "bluespacebodybag" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 3000, /datum/material/plasma = 2000, /datum/material/diamond = 500, /datum/material/bluespace = 500) + build_path = /obj/item/bodybag/bluespace + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/containmentbodybag + name = "Containment Body Bag" + desc = "A containment body bag, heavy and radiation proof." + id = "containmentbodybag" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 6000, /datum/material/plastic = 4000, /datum/material/titanium = 2000) + build_path = /obj/item/bodybag/containment + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + //////////////////////////////////////// //////////Defibrillator Tech//////////// //////////////////////////////////////// diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index fe5f275da5..dafa119873 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -79,7 +79,7 @@ display_name = "Advanced Biotechnology" description = "Advanced Biotechnology" prereq_ids = list("biotech") - design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "harvester", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter") + design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "harvester", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter", "containmentbodybag") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/bio_process @@ -221,23 +221,21 @@ description = "Unlock the potential of the mysterious of why CC decided to not build these around the station themselves." prereq_ids = list("adv_engi", "high_efficiency") design_ids = list("meteor_defence", "meteor_console") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) -*/ -//datum/techweb_node/adv_meteor_defense - //id = "adv_meteor_defense" - //display_name = "Meteor Defense Research" - //description = "New and improved coding and lock on tech for meteor defence!" - //prereq_ids = list("basic_meteor_defense", "adv_datatheory", "emp_adv") - //design_ids = list("meteor_disk") - //research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) +/datum/techweb_node/adv_meteor_defense + id = "adv_meteor_defense" + display_name = "Meteor Defense Research" + description = "New and improved coding and lock on tech for meteor defence!" + prereq_ids = list("basic_meteor_defense", "adv_datatheory", "emp_adv") + design_ids = list("meteor_disk") +*/ /datum/techweb_node/computer_board_gaming id = "computer_board_gaming" display_name = "Games and Toys" description = "For the slackers on the station." prereq_ids = list("comptech") - design_ids = list("arcade_battle", "arcade_orion", "slotmachine", "autoylathe") + design_ids = list("arcade_battle", "arcade_orion", "arcade_minesweeper", "slotmachine", "autoylathe") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) /////////////////////////Bluespace tech///////////////////////// diff --git a/code/modules/research/xenobiology/crossbreeding/_clothing.dm b/code/modules/research/xenobiology/crossbreeding/_clothing.dm index b8bdffbabf..795a57b82c 100644 --- a/code/modules/research/xenobiology/crossbreeding/_clothing.dm +++ b/code/modules/research/xenobiology/crossbreeding/_clothing.dm @@ -137,8 +137,7 @@ Slimecrossing Armor var/hit_reflect_chance = 10 // Citadel Change: because 40% chance of bouncing lasers back into peoples faces isn't good. armor = list("melee" = 70, "bullet" = 70, "laser" = 40, "energy" = 40, "bomb" = 80, "bio" = 80, "rad" = 80, "fire" = 70, "acid" = 90) //Citadel Change to avoid immortal Xenobiologists. -/obj/item/clothing/suit/armor/heavy/adamantine/IsReflect(def_zone) - if(def_zone in list(BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) && prob(hit_reflect_chance)) - return TRUE - else - return FALSE +/obj/item/clothing/suit/armor/heavy/adamantine/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(is_energy_reflectable_projectile(object) && prob(hit_reflect_chance)) + return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT | BLOCK_PHYSICAL_INTERNAL + return ..() diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm index b9897db303..95d6c49529 100644 --- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm +++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm @@ -505,13 +505,13 @@ datum/status_effect/rebreathing/tick() /datum/status_effect/stabilized/purple/tick() var/is_healing = FALSE if(owner.getBruteLoss() > 0) - owner.adjustBruteLoss(-0.2) + owner.adjustBruteLoss(-0.4) is_healing = TRUE if(owner.getFireLoss() > 0) - owner.adjustFireLoss(-0.2) + owner.adjustFireLoss(-0.4) is_healing = TRUE if(owner.getToxLoss() > 0) - owner.adjustToxLoss(-0.2, forced = TRUE) //Slimepeople should also get healed. + owner.adjustToxLoss(-0.4, forced = TRUE) //Slimepeople should also get healed. is_healing = TRUE if(is_healing) examine_text = "SUBJECTPRONOUN is regenerating slowly, purplish goo filling in small injuries!" @@ -933,7 +933,6 @@ datum/status_effect/stabilized/blue/on_remove() return ..() /datum/status_effect/stabilized/lightpink/tick() - owner.adjustStaminaLoss(-4.5) for(var/mob/living/carbon/human/H in range(1, get_turf(owner))) if(H != owner && H.stat != DEAD && H.health <= 0 && !H.reagents.has_reagent(/datum/reagent/medicine/epinephrine)) to_chat(owner, "[linked_extract] pulses in sync with [H]'s heartbeat, trying to keep [H.p_them()] alive.") diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index 22dee60eb4..143fe508b6 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -45,6 +45,12 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th /obj/effect/proc_holder/singularity_pull() return +/obj/effect/proc_holder/Click() + return Trigger(usr, FALSE) + +/obj/effect/proc_holder/proc/Trigger(mob/user) + return TRUE + /obj/effect/proc_holder/proc/InterceptClickOn(mob/living/caller, params, atom/A) if(caller.ranged_ability != src || ranged_ability_user != caller) //I'm not actually sure how these would trigger, but, uh, safety, I guess? to_chat(caller, "[caller.ranged_ability.name] has been disabled.") @@ -109,10 +115,9 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th var/holder_var_type = "bruteloss" //only used if charge_type equals to "holder_var" var/holder_var_amount = 20 //same. The amount adjusted with the mob's var when the spell is used - var/clothes_req = 1 //see if it requires clothes - var/cult_req = 0 //SPECIAL SNOWFLAKE clothes required for cult only spells - var/human_req = 0 //spell can only be cast by humans - var/nonabstract_req = 0 //spell can only be cast by mobs that are physical entities + var/clothes_req = SPELL_WIZARD_GARB //see if it requires clothes + var/list/mobs_whitelist //spell can only be casted by mobs in this typecache. + var/list/mobs_blacklist //The opposite of the above. var/stat_allowed = 0 //see if it requires being conscious/alive, need to set to 1 for ghostpells var/phase_allowed = 0 // If true, the spell can be cast while phased, eg. blood crawling, ethereal jaunting var/antimagic_allowed = TRUE // If false, the spell cannot be cast while under the effect of antimagic @@ -144,79 +149,17 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th action_background_icon_state = "bg_spell" base_action = /datum/action/spell_action/spell -/obj/effect/proc_holder/spell/proc/cast_check(skipcharge = 0,mob/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell - if(player_lock) - if(!user.mind || !(src in user.mind.spell_list) && !(src in user.mob_spell_list)) - to_chat(user, "You shouldn't have this spell! Something's wrong.") - return FALSE - else - if(!(src in user.mob_spell_list)) - return FALSE +/obj/effect/proc_holder/spell/Initialize() + . = ..() + if(mobs_whitelist) + mobs_whitelist = typecacheof(mobs_whitelist) + if(mobs_blacklist) + mobs_blacklist = typecacheof(mobs_blacklist) - var/turf/T = get_turf(user) - if(is_centcom_level(T.z) && !centcom_cancast) //Certain spells are not allowed on the centcom zlevel - to_chat(user, "You can't cast this spell here.") +/obj/effect/proc_holder/spell/proc/cast_check(skipcharge = FALSE, mob/user = usr, skip_can_cast = FALSE) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell + if(!skip_can_cast && !can_cast(user, skipcharge)) return FALSE - if(!skipcharge) - if(!charge_check(user)) - return FALSE - - if(user.stat && !stat_allowed) - to_chat(user, "Not when you're incapacitated.") - return FALSE - - if(!antimagic_allowed) - var/antimagic = user.anti_magic_check(TRUE, FALSE, chargecost = 0, self = TRUE) - if(antimagic) - if(isitem(antimagic)) - to_chat(user, "[antimagic] is interfering with your magic.") - else - to_chat(user, "Magic seems to flee from you, you can't gather enough power to cast this spell.") - return FALSE - - if(!phase_allowed && istype(user.loc, /obj/effect/dummy)) - to_chat(user, "[name] cannot be cast unless you are completely manifested in the material plane.") - return FALSE - - if(ishuman(user)) - - var/mob/living/carbon/human/H = user - - if((invocation_type == "whisper" || invocation_type == "shout") && !H.can_speak_vocal()) - to_chat(user, "You can't get the words out!") - return FALSE - - var/list/casting_clothes = typecacheof(list(/obj/item/clothing/suit/wizrobe, - /obj/item/clothing/suit/space/hardsuit/wizard, - /obj/item/clothing/head/wizard, - /obj/item/clothing/head/helmet/space/hardsuit/wizard, - /obj/item/clothing/suit/space/hardsuit/shielded/wizard, - /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard)) - - if(clothes_req) //clothes check - if(!is_type_in_typecache(H.wear_suit, casting_clothes)) - to_chat(H, "I don't feel strong enough without my robe.") - return FALSE - if(!is_type_in_typecache(H.head, casting_clothes)) - to_chat(H, "I don't feel strong enough without my hat.") - return FALSE - if(cult_req) //CULT_REQ CLOTHES CHECK - if(!istype(H.wear_suit, /obj/item/clothing/suit/magusred) && !istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/cult)) - to_chat(H, "I don't feel strong enough without my armor.") - return FALSE - if(!istype(H.head, /obj/item/clothing/head/magus) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/cult)) - to_chat(H, "I don't feel strong enough without my helmet.") - return FALSE - else - if(clothes_req || human_req) - to_chat(user, "This spell can only be cast by humans!") - return FALSE - if(nonabstract_req && (isbrain(user) || ispAI(user))) - to_chat(user, "This spell can only be cast by physical beings!") - return FALSE - - if(!skipcharge) switch(charge_type) if("recharge") @@ -227,7 +170,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th adjust_var(user, holder_var_type, holder_var_amount) if(action) action.UpdateButtonIcon() - return 1 + return TRUE /obj/effect/proc_holder/spell/proc/charge_check(mob/user, silent = FALSE) switch(charge_type) @@ -244,17 +187,22 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th return TRUE /obj/effect/proc_holder/spell/proc/invocation(mob/user = usr) //spelling the spell out and setting it on recharge/reducing charges amount + var/mob/living/L + if(isliving(user)) + L = user switch(invocation_type) if("shout") - if(prob(50))//Auto-mute? Fuck that noise - user.say(invocation, forced = "spell") - else - user.say(replacetext(invocation," ","`"), forced = "spell") + if(!L || L.can_speak_vocal(invocation)) + if(prob(50))//Auto-mute? Fuck that noise + user.say(invocation, forced = "spell") + else + user.say(replacetext(invocation," ","`"), forced = "spell") if("whisper") - if(prob(50)) - user.whisper(invocation) - else - user.whisper(replacetext(invocation," ","`")) + if(!L || L.can_speak_vocal(invocation)) + if(prob(50)) + user.whisper(invocation) + else + user.whisper(replacetext(invocation," ","`")) if("emote") user.visible_message(invocation, invocation_emote_self) //same style as in mob/living/emote.dm @@ -273,8 +221,8 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th qdel(action) return ..() -/obj/effect/proc_holder/spell/Click() - if(cast_check()) +/obj/effect/proc_holder/spell/Trigger(mob/user, skip_can_cast = TRUE) + if(cast_check(FALSE, user, skip_can_cast)) choose_targets() return 1 @@ -482,11 +430,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th /obj/effect/proc_holder/spell/proc/updateButtonIcon(status_only, force) action.UpdateButtonIcon(status_only, force) -/obj/effect/proc_holder/spell/proc/can_be_cast_by(mob/caster) - if((human_req || clothes_req) && !ishuman(caster)) - return 0 - return 1 - /obj/effect/proc_holder/spell/targeted/proc/los_check(mob/A,mob/B) //Checks for obstacles from A to B var/obj/dummy = new(A.loc) @@ -499,24 +442,61 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th qdel(dummy) return 1 -/obj/effect/proc_holder/spell/proc/can_cast(mob/user = usr) - if(((!user.mind) || !(src in user.mind.spell_list)) && !(src in user.mob_spell_list)) +/obj/effect/proc_holder/spell/proc/can_cast(mob/user = usr, skipcharge = FALSE, silent = FALSE) + var/magic_flags = SEND_SIGNAL(user, COMSIG_MOB_SPELL_CAN_CAST, src) + if(magic_flags & SPELL_SKIP_ALL_REQS) + return TRUE + + if(player_lock ? (!user.mind || !(src in user.mind.spell_list) && !(src in user.mob_spell_list)) : !(src in user.mob_spell_list)) + if(!silent) + to_chat(user, "You shouldn't have this spell! Something's wrong.") return FALSE - if(!charge_check(user,TRUE)) - return FALSE - - if(user.stat && !stat_allowed) - return FALSE - - if(!antimagic_allowed && user.anti_magic_check(TRUE, FALSE, chargecost = 0, self = TRUE)) - return FALSE - - if(!ishuman(user)) - if(clothes_req || human_req) + if(!centcom_cancast && !(magic_flags & SPELL_SKIP_CENTCOM)) //Certain spells are not allowed on the centcom zlevel + var/turf/T = get_turf(user) + if(is_centcom_level(T.z)) + if(!silent) + to_chat(user, "You can't cast this spell here.") return FALSE - if(nonabstract_req && (isbrain(user) || ispAI(user))) + + if(!skipcharge && !charge_check(user, silent)) + return FALSE + + if(user.stat && !stat_allowed && !(magic_flags & SPELL_SKIP_STAT)) + if(!silent) + to_chat(user, "Not when you're incapacitated.") + return FALSE + + if(!phase_allowed && istype(user.loc, /obj/effect/dummy)) + if(!silent) + to_chat(user, "[name] cannot be cast unless you are completely manifested in the material plane.") + return FALSE + + if(clothes_req && !(magic_flags & SPELL_SKIP_CLOTHES)) + var/met_requirements = magic_flags & (clothes_req) + if(met_requirements != clothes_req) + if(!silent) + var/the_many_hats = met_requirements & (clothes_req & (SPELL_WIZARD_HAT|SPELL_CULT_HELMET)) + var/the_many_suits = met_requirements & (clothes_req & (SPELL_WIZARD_ROBE|SPELL_CULT_ARMOR)) + var/without_hat_robe = the_many_suits ? "a proper headwear" : the_many_hats ? "a proper suit" : "proper garments" + to_chat(user, "I don't feel strong enough to cast this spell without [without_hat_robe].") return FALSE + + if(!antimagic_allowed && !(magic_flags & SPELL_SKIP_ANTIMAGIC) && user.anti_magic_check(TRUE, FALSE, chargecost = 0, self = TRUE)) + return FALSE + + + if(!(magic_flags & SPELL_SKIP_VOCAL) && (invocation_type in list("whisper", "shout")) && isliving(user)) + var/mob/living/L = user + if(!L.can_speak_vocal()) + if(!silent) + to_chat(L, "You can't get the words out!") + return FALSE + + if(!(magic_flags & SPELL_SKIP_MOBTYPE) && ((mobs_whitelist && !mobs_whitelist[user.type]) || (mobs_blacklist && mobs_blacklist[user.type]))) + if(!silent) + to_chat(user, "This spell can't be casted in this current form!") + return FALSE return TRUE /obj/effect/proc_holder/spell/self //Targets only the caster. Good for buffs and heals, but probably not wise for fireballs (although they usually fireball themselves anyway, honke) @@ -531,8 +511,8 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th /obj/effect/proc_holder/spell/self/basic_heal //This spell exists mainly for debugging purposes, and also to show how casting works name = "Lesser Heal" desc = "Heals a small amount of brute and burn damage." - human_req = 1 - clothes_req = 0 + mobs_whitelist = list(/mob/living/carbon/human) + clothes_req = NONE charge_max = 100 cooldown_min = 50 invocation = "Victus sano!" diff --git a/code/modules/spells/spell_types/aimed.dm b/code/modules/spells/spell_types/aimed.dm index 5ba85bef6b..1a904b1076 100644 --- a/code/modules/spells/spell_types/aimed.dm +++ b/code/modules/spells/spell_types/aimed.dm @@ -11,12 +11,11 @@ var/current_amount = 0 //How many projectiles left. var/projectiles_per_fire = 1 //Projectiles per fire. Probably not a good thing to use unless you override ready_projectile(). -/obj/effect/proc_holder/spell/aimed/Click() - var/mob/living/user = usr +/obj/effect/proc_holder/spell/aimed/Trigger(mob/user, skip_can_cast = TRUE) if(!istype(user)) return var/msg - if(!can_cast(user)) + if(!skip_can_cast && !can_cast(user, FALSE, TRUE)) msg = "You can no longer cast [name]!" remove_ranged_ability(msg) return @@ -95,7 +94,6 @@ desc = "Fire a high powered lightning bolt at your foes!" school = "evocation" charge_max = 150 - clothes_req = 1 invocation = "ZAP MUTHA'FUCKA" invocation_type = "shout" cooldown_min = 30 @@ -113,7 +111,7 @@ desc = "This spell fires a fireball at a target and does not require wizard garb." school = "evocation" charge_max = 100 - clothes_req = 0 + clothes_req = NONE invocation = "ONI SOMA" invocation_type = "shout" range = 20 @@ -131,7 +129,7 @@ desc = "Blazing hot rapid-fire homing cards. Banish your foes with its mystical power!" school = "evocation" charge_max = 50 - clothes_req = 0 + clothes_req = NONE invocation = "Sigi'lu M'Fan 'Tasia" invocation_type = "shout" range = 40 diff --git a/code/modules/spells/spell_types/area_teleport.dm b/code/modules/spells/spell_types/area_teleport.dm index 17a895490e..8a615750e0 100644 --- a/code/modules/spells/spell_types/area_teleport.dm +++ b/code/modules/spells/spell_types/area_teleport.dm @@ -1,7 +1,7 @@ /obj/effect/proc_holder/spell/targeted/area_teleport name = "Area teleport" desc = "This spell teleports you to a type of area of your selection." - nonabstract_req = 1 + mobs_blacklist = list(/mob/living/brain, /mob/living/silicon/pai) var/randomise_selection = 0 //if it lets the usr choose the teleport loc or picks it from the list var/invocation_area = 1 //if the invocation appends the selected area diff --git a/code/modules/spells/spell_types/barnyard.dm b/code/modules/spells/spell_types/barnyard.dm index ccb0280779..4b972e8030 100644 --- a/code/modules/spells/spell_types/barnyard.dm +++ b/code/modules/spells/spell_types/barnyard.dm @@ -5,7 +5,7 @@ charge_type = "recharge" charge_max = 150 charge_counter = 0 - clothes_req = 0 + clothes_req = NONE stat_allowed = 0 invocation = "KN'A FTAGHU, PUCK 'BTHNK!" invocation_type = "shout" diff --git a/code/modules/spells/spell_types/bloodcrawl.dm b/code/modules/spells/spell_types/bloodcrawl.dm index 49d73b445b..e59fc2049d 100644 --- a/code/modules/spells/spell_types/bloodcrawl.dm +++ b/code/modules/spells/spell_types/bloodcrawl.dm @@ -2,7 +2,7 @@ name = "Blood Crawl" desc = "Use pools of blood to phase out of existence." charge_max = 0 - clothes_req = 0 + clothes_req = NONE //If you couldn't cast this while phased, you'd have a problem phase_allowed = 1 selection_type = "range" diff --git a/code/modules/spells/spell_types/charge.dm b/code/modules/spells/spell_types/charge.dm index d2513097ea..7728a879c5 100644 --- a/code/modules/spells/spell_types/charge.dm +++ b/code/modules/spells/spell_types/charge.dm @@ -4,7 +4,7 @@ school = "transmutation" charge_max = 600 - clothes_req = 0 + clothes_req = NONE invocation = "DIRI CEL" invocation_type = "whisper" range = -1 diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm index 7ff4f30e33..b609655526 100644 --- a/code/modules/spells/spell_types/conjure.dm +++ b/code/modules/spells/spell_types/conjure.dm @@ -60,7 +60,7 @@ name = "Link Worlds" desc = "A whole new dimension for you to play with! They won't be happy about it, though." invocation = "WTF" - clothes_req = FALSE + clothes_req = NONE charge_max = 600 cooldown_min = 200 summon_type = list(/obj/structure/spawner/nether) @@ -74,7 +74,7 @@ invocation_type = "none" include_user = 1 range = -1 - clothes_req = 0 + clothes_req = NONE var/obj/item/item var/item_type = /obj/item/banhammer school = "conjuration" diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm index 0c0b20f0fc..e8f3ab7d06 100644 --- a/code/modules/spells/spell_types/construct_spells.dm +++ b/code/modules/spells/spell_types/construct_spells.dm @@ -7,7 +7,7 @@ action_background_icon_state = "bg_demon" /obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser/cult - cult_req = 1 + clothes_req = SPELL_CULT_GARB charge_max = 2500 @@ -17,7 +17,7 @@ school = "transmutation" charge_max = 50 - clothes_req = 0 + clothes_req = NONE invocation = "none" invocation_type = "none" range = 2 @@ -37,7 +37,7 @@ school = "conjuration" charge_max = 20 - clothes_req = 0 + clothes_req = NONE invocation = "none" invocation_type = "none" range = 0 @@ -53,7 +53,7 @@ school = "conjuration" charge_max = 100 - clothes_req = 0 + clothes_req = NONE invocation = "none" invocation_type = "none" range = 0 @@ -70,7 +70,7 @@ school = "conjuration" charge_max = 300 - clothes_req = 0 + clothes_req = NONE invocation = "none" invocation_type = "none" range = 0 @@ -83,7 +83,7 @@ school = "conjuration" charge_max = 2400 - clothes_req = 0 + clothes_req = NONE invocation = "none" invocation_type = "none" range = 0 @@ -94,7 +94,7 @@ summon_type = list(/obj/item/soulstone) /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/cult - cult_req = 1 + clothes_req = SPELL_CULT_GARB charge_max = 3600 /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult @@ -105,7 +105,7 @@ desc = "This spell creates a temporary forcefield to shield yourself and allies from incoming fire." school = "transmutation" charge_max = 400 - clothes_req = FALSE + clothes_req = NONE invocation = "none" invocation_type = "none" wall_type = /obj/effect/forcefield/cult @@ -121,7 +121,7 @@ school = "transmutation" charge_max = 250 - clothes_req = 0 + clothes_req = NONE invocation = "none" invocation_type = "none" range = -1 @@ -143,7 +143,7 @@ school = "evocation" charge_max = 400 - clothes_req = 0 + clothes_req = NONE invocation = "none" invocation_type = "none" proj_type = "/obj/effect/proc_holder/spell/targeted/inflict_handler/magic_missile/lesser" @@ -161,7 +161,7 @@ school = "conjuration" charge_max = 200 - clothes_req = 0 + clothes_req = NONE invocation = "none" invocation_type = "none" range = -1 @@ -185,7 +185,7 @@ stat_allowed = FALSE school = "evocation" - clothes_req = FALSE + clothes_req = NONE invocation = "none" invocation_type = "none" action_icon = 'icons/mob/actions/actions_cult.dmi' @@ -232,7 +232,7 @@ stat_allowed = FALSE school = "evocation" - clothes_req = FALSE + clothes_req = NONE invocation = "none" invocation_type = "none" action_icon = 'icons/mob/actions/actions_cult.dmi' @@ -294,7 +294,7 @@ proj_lifespan = 15 proj_step_delay = 7 charge_max = 350 - clothes_req = FALSE + clothes_req = NONE action_icon = 'icons/mob/actions/actions_cult.dmi' action_icon_state = "cultfist" action_background_icon_state = "bg_demon" diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm index 3952a347e0..34b033fd17 100644 --- a/code/modules/spells/spell_types/devil.dm +++ b/code/modules/spells/spell_types/devil.dm @@ -4,7 +4,7 @@ invocation_type = "none" include_user = 1 range = -1 - clothes_req = 0 + clothes_req = NONE item_type = /obj/item/twohanded/pitchfork/demonic school = "conjuration" @@ -37,7 +37,7 @@ invocation = "Just sign on the dotted line." include_user = 0 range = 5 - clothes_req = 0 + clothes_req = NONE school = "conjuration" charge_max = 150 @@ -79,7 +79,7 @@ school = "evocation" charge_max = 80 - clothes_req = 0 + clothes_req = NONE invocation = "Your very soul will catch fire!" invocation_type = "shout" range = 2 @@ -92,7 +92,7 @@ name = "Infernal Jaunt" desc = "Use hellfire to phase out of existence." charge_max = 200 - clothes_req = 0 + clothes_req = NONE selection_type = "range" range = -1 cooldown_min = 0 @@ -167,7 +167,7 @@ name = "Sin Touch" desc = "Subtly encourage someone to sin." charge_max = 1800 - clothes_req = 0 + clothes_req = NONE selection_type = "range" range = 2 cooldown_min = 0 @@ -206,7 +206,7 @@ desc = "When what a Devil really needs is funk." include_user = 1 range = -1 - clothes_req = 0 + clothes_req = NONE school = "conjuration" charge_max = 10 diff --git a/code/modules/spells/spell_types/devil_boons.dm b/code/modules/spells/spell_types/devil_boons.dm index 5d335745d2..ab3e3cc27e 100644 --- a/code/modules/spells/spell_types/devil_boons.dm +++ b/code/modules/spells/spell_types/devil_boons.dm @@ -4,7 +4,7 @@ invocation_type = "none" include_user = 1 range = -1 - clothes_req = 0 + clothes_req = NONE school = "conjuration" charge_max = 100 cooldown_min = 10 @@ -32,7 +32,7 @@ invocation_type = "none" include_user = 1 range = -1 - clothes_req = 0 + clothes_req = NONE charge_max = 50 cooldown_min = 10 action_icon = 'icons/mob/actions/actions_silicon.dmi' @@ -51,7 +51,7 @@ invocation_type = "none" include_user = 1 range = -1 - clothes_req = 0 + clothes_req = NONE charge_max = 50 cooldown_min = 10 action_icon = 'icons/mob/actions/actions_spells.dmi' @@ -73,4 +73,4 @@ friendShell = new /obj/effect/mob_spawn/human/demonic_friend(L.loc, L.mind, src) /obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket/robeless - clothes_req = FALSE + clothes_req = NONE diff --git a/code/modules/spells/spell_types/ethereal_jaunt.dm b/code/modules/spells/spell_types/ethereal_jaunt.dm index 424a3b7671..f485ae578f 100644 --- a/code/modules/spells/spell_types/ethereal_jaunt.dm +++ b/code/modules/spells/spell_types/ethereal_jaunt.dm @@ -4,13 +4,12 @@ school = "transmutation" charge_max = 300 - clothes_req = 1 invocation = "none" invocation_type = "none" range = -1 cooldown_min = 100 //50 deciseconds reduction per rank include_user = 1 - nonabstract_req = 1 + mobs_blacklist = list(/mob/living/brain, /mob/living/silicon/pai) var/jaunt_duration = 50 //in deciseconds var/jaunt_in_time = 5 var/jaunt_in_type = /obj/effect/temp_visual/wizard diff --git a/code/modules/spells/spell_types/forcewall.dm b/code/modules/spells/spell_types/forcewall.dm index aa2fa5ab8b..e0c21066cf 100644 --- a/code/modules/spells/spell_types/forcewall.dm +++ b/code/modules/spells/spell_types/forcewall.dm @@ -3,7 +3,7 @@ desc = "Create a magical barrier that only you can pass through. Does not require wizard garb." school = "transmutation" charge_max = 80 - clothes_req = 0 + clothes_req = NONE invocation = "TARCOL MINTI ZHERI" invocation_type = "shout" sound = 'sound/magic/forcewall.ogg' diff --git a/code/modules/spells/spell_types/infinite_guns.dm b/code/modules/spells/spell_types/infinite_guns.dm index feb6eeddb6..cfdf0d4a8d 100644 --- a/code/modules/spells/spell_types/infinite_guns.dm +++ b/code/modules/spells/spell_types/infinite_guns.dm @@ -7,7 +7,6 @@ school = "conjuration" charge_max = 750 - clothes_req = 1 cooldown_min = 10 //Gun wizard action_icon_state = "bolt_action" var/summon_path = /obj/item/gun/ballistic/shotgun/boltaction/enchanted diff --git a/code/modules/spells/spell_types/knock.dm b/code/modules/spells/spell_types/knock.dm index be5f516680..9cbaa5baa3 100644 --- a/code/modules/spells/spell_types/knock.dm +++ b/code/modules/spells/spell_types/knock.dm @@ -4,7 +4,7 @@ school = "transmutation" charge_max = 100 - clothes_req = 0 + clothes_req = NONE invocation = "AULIE OXIN FIERA" invocation_type = "whisper" range = 3 diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 207ccd8374..f6f56c049a 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -8,7 +8,7 @@ becoming a lich destroys all internal organs except the brain." school = "necromancy" charge_max = 10 - clothes_req = 0 + clothes_req = NONE centcom_cancast = 0 invocation = "NECREM IMORTIUM!" invocation_type = "shout" diff --git a/code/modules/spells/spell_types/lightning.dm b/code/modules/spells/spell_types/lightning.dm index f4812e7462..d0c3c4166c 100644 --- a/code/modules/spells/spell_types/lightning.dm +++ b/code/modules/spells/spell_types/lightning.dm @@ -3,7 +3,6 @@ desc = "Blast lightning at your foes!" charge_type = "recharge" charge_max = 270 - clothes_req = 1 invocation = "UN'LTD P'WAH!" invocation_type = "shout" range = 7 @@ -16,9 +15,9 @@ action_icon_state = "lightning" -/obj/effect/proc_holder/spell/targeted/tesla/Click() - if(!ready && cast_check()) - StartChargeup() +/obj/effect/proc_holder/spell/targeted/tesla/Trigger(mob/user, skip_can_cast = TRUE) + if(!ready && cast_check(FALSE, user, skip_can_cast)) + StartChargeup(user) return 1 /obj/effect/proc_holder/spell/targeted/tesla/proc/StartChargeup(mob/user = usr) diff --git a/code/modules/spells/spell_types/mime.dm b/code/modules/spells/spell_types/mime.dm index 621efdc821..8f39da5031 100644 --- a/code/modules/spells/spell_types/mime.dm +++ b/code/modules/spells/spell_types/mime.dm @@ -8,20 +8,20 @@ invocation_emote_self = "You form a wall in front of yourself." summon_lifespan = 300 charge_max = 300 - clothes_req = 0 + clothes_req = NONE range = 0 cast_sound = null - human_req = 1 + mobs_whitelist = list(/mob/living/carbon/human) action_icon_state = "mime" action_background_icon_state = "bg_mime" -/obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall/Click() - if(usr && usr.mind) - if(!usr.mind.miming) +/obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall/Trigger(mob/user, skip_can_cast = TRUE) + if(user.mind) + if(!user.mind.miming) to_chat(usr, "You must dedicate yourself to silence first.") return - invocation = "[usr.real_name] looks as if a wall is in front of [usr.p_them()]." + invocation = "[user.real_name] looks as if a wall is in front of [user.p_them()]." else invocation_type ="none" ..() @@ -32,8 +32,8 @@ desc = "Make or break a vow of silence." school = "mime" panel = "Mime" - clothes_req = 0 - human_req = 1 + clothes_req = NONE + mobs_whitelist = list(/mob/living/carbon/human) charge_max = 3000 range = -1 include_user = 1 @@ -41,17 +41,12 @@ action_icon_state = "mime" action_background_icon_state = "bg_mime" -/obj/effect/proc_holder/spell/targeted/mime/speak/Click() - if(!usr) - return - if(!ishuman(usr)) - return - var/mob/living/carbon/human/H = usr - if(H.mind.miming) +/obj/effect/proc_holder/spell/targeted/mime/speak/Trigger(mob/user, skip_can_cast = TRUE) + if(user.mind?.miming) still_recharging_msg = "You can't break your vow of silence that fast!" else still_recharging_msg = "You'll have to wait before you can give your vow of silence again!" - ..() + return ..() /obj/effect/proc_holder/spell/targeted/mime/speak/cast(list/targets,mob/user = usr) for(var/mob/living/carbon/human/H in targets) @@ -75,22 +70,22 @@ invocation_emote_self = "You form a blockade in front of yourself." charge_max = 600 sound = null - clothes_req = 0 + clothes_req = NONE range = -1 include_user = 1 action_icon_state = "mime" action_background_icon_state = "bg_mime" -/obj/effect/proc_holder/spell/targeted/forcewall/mime/Click() - if(usr && usr.mind) - if(!usr.mind.miming) +/obj/effect/proc_holder/spell/targeted/forcewall/mime/Trigger(mob/user, skip_can_cast = TRUE) + if(user.mind) + if(!user.mind.miming) to_chat(usr, "You must dedicate yourself to silence first.") return - invocation = "[usr.real_name] looks as if a blockade is in front of [usr.p_them()]." + invocation = "[user.real_name] looks as if a blockade is in front of [user.p_them()]." else invocation_type ="none" - ..() + return ..() /obj/effect/proc_holder/spell/aimed/finger_guns name = "Finger Guns" @@ -98,7 +93,7 @@ school = "mime" panel = "Mime" charge_max = 300 - clothes_req = 0 + clothes_req = NONE invocation_type = "emote" invocation_emote_self = "You fire your finger gun!" range = 20 @@ -114,19 +109,18 @@ base_icon_state = "mime" -/obj/effect/proc_holder/spell/aimed/finger_guns/Click() - var/mob/living/carbon/human/owner = usr - if(owner.incapacitated()) - to_chat(owner, "You can't properly point your fingers while incapacitated.") +/obj/effect/proc_holder/spell/aimed/finger_guns/Trigger(mob/user, skip_can_cast = TRUE) + if(user.incapacitated()) + to_chat(user, "You can't properly point your fingers while incapacitated.") return - if(usr && usr.mind) - if(!usr.mind.miming) + if(user.mind) + if(!user.mind.miming) to_chat(usr, "You must dedicate yourself to silence first.") return - invocation = "[usr.real_name] fires [usr.p_their()] finger gun!" + invocation = "[user.real_name] fires [user.p_their()] finger gun!" else invocation_type ="none" - ..() + return ..() /obj/effect/proc_holder/spell/targeted/touch/mimerope name = "Invisible Rope" @@ -144,8 +138,8 @@ action_background_icon_state = "bg_mime" hand_path = /obj/item/melee/touch_attack/mimerope -/obj/effect/proc_holder/spell/targeted/touch/mimerope/Click() - if(usr && usr.mind) +/obj/effect/proc_holder/spell/targeted/touch/mimerope/Trigger(mob/user, skip_can_cast = TRUE) + if(user.mind) if(!usr.mind.miming) to_chat(usr, "You must dedicate yourself to silence first.") return diff --git a/code/modules/spells/spell_types/mind_transfer.dm b/code/modules/spells/spell_types/mind_transfer.dm index cbc25fb98e..d2ef015d1d 100644 --- a/code/modules/spells/spell_types/mind_transfer.dm +++ b/code/modules/spells/spell_types/mind_transfer.dm @@ -4,7 +4,7 @@ school = "transmutation" charge_max = 600 - clothes_req = 0 + clothes_req = NONE invocation = "GIN'YU CAPAN" invocation_type = "whisper" range = 1 diff --git a/code/modules/spells/spell_types/rod_form.dm b/code/modules/spells/spell_types/rod_form.dm index 5a532db7ac..7a96d0ac55 100644 --- a/code/modules/spells/spell_types/rod_form.dm +++ b/code/modules/spells/spell_types/rod_form.dm @@ -1,8 +1,6 @@ /obj/effect/proc_holder/spell/targeted/rod_form name = "Rod Form" desc = "Take on the form of an immovable rod, destroying all in your path." - clothes_req = 1 - human_req = 0 charge_max = 250 cooldown_min = 100 range = -1 diff --git a/code/modules/spells/spell_types/santa.dm b/code/modules/spells/spell_types/santa.dm index 3da6d90558..64ed925455 100644 --- a/code/modules/spells/spell_types/santa.dm +++ b/code/modules/spells/spell_types/santa.dm @@ -4,7 +4,7 @@ desc = "This spell lets you reach into S-space and retrieve presents! Yay!" school = "santa" charge_max = 600 - clothes_req = 0 + clothes_req = NONE invocation = "HO HO HO" invocation_type = "shout" range = 3 diff --git a/code/modules/spells/spell_types/shadow_walk.dm b/code/modules/spells/spell_types/shadow_walk.dm index 0b492cc6b0..83996b5bfb 100644 --- a/code/modules/spells/spell_types/shadow_walk.dm +++ b/code/modules/spells/spell_types/shadow_walk.dm @@ -2,7 +2,7 @@ name = "Shadow Walk" desc = "Grants unlimited movement in darkness." charge_max = 0 - clothes_req = 0 + clothes_req = NONE phase_allowed = 1 selection_type = "range" range = -1 diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm index 46eb14013f..c6966ccee9 100644 --- a/code/modules/spells/spell_types/shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift.dm @@ -1,8 +1,7 @@ /obj/effect/proc_holder/spell/targeted/shapeshift name = "Shapechange" desc = "Take on the shape of another for a time to use their natural abilities. Once you've made your choice it cannot be changed." - clothes_req = 0 - human_req = 0 + clothes_req = NONE charge_max = 200 cooldown_min = 50 range = -1 @@ -59,8 +58,9 @@ var/mob/living/shape = new shapeshift_type(caster.loc) H = new(shape,src,caster) - clothes_req = 0 - human_req = 0 + clothes_req = NONE + mobs_whitelist = null + mobs_blacklist = null /obj/effect/proc_holder/spell/targeted/shapeshift/proc/Restore(mob/living/shape) var/obj/shapeshift_holder/H = locate() in shape @@ -70,7 +70,8 @@ H.restore() clothes_req = initial(clothes_req) - human_req = initial(human_req) + mobs_whitelist = typecacheof(initial(mobs_whitelist)) + mobs_blacklist = typecacheof(initial(mobs_blacklist)) /obj/effect/proc_holder/spell/targeted/shapeshift/dragon name = "Dragon Form" diff --git a/code/modules/spells/spell_types/spacetime_distortion.dm b/code/modules/spells/spell_types/spacetime_distortion.dm index 7a19787675..3af4d3883f 100644 --- a/code/modules/spells/spell_types/spacetime_distortion.dm +++ b/code/modules/spells/spell_types/spacetime_distortion.dm @@ -11,7 +11,7 @@ cooldown_min = 300 level_max = 0 -/obj/effect/proc_holder/spell/spacetime_dist/can_cast(mob/user = usr) +/obj/effect/proc_holder/spell/spacetime_dist/can_cast(mob/user = usr, skipcharge = FALSE, silent = FALSE) if(ready) return ..() return FALSE diff --git a/code/modules/spells/spell_types/summonitem.dm b/code/modules/spells/spell_types/summonitem.dm index d0e415fb2a..94de75faac 100644 --- a/code/modules/spells/spell_types/summonitem.dm +++ b/code/modules/spells/spell_types/summonitem.dm @@ -3,7 +3,7 @@ desc = "This spell can be used to recall a previously marked item to your hand from anywhere in the universe." school = "transmutation" charge_max = 100 - clothes_req = 0 + clothes_req = NONE invocation = "GAR YOK" invocation_type = "whisper" range = -1 @@ -105,7 +105,7 @@ if(item_to_retrieve.loc) item_to_retrieve.loc.visible_message("The [item_to_retrieve.name] suddenly disappears!") - if(!L.put_in_hands(item_to_retrieve)) + if(!isitem(item_to_retrieve) || !L.put_in_hands(item_to_retrieve)) item_to_retrieve.forceMove(L.drop_location()) item_to_retrieve.loc.visible_message("The [item_to_retrieve.name] suddenly appears!") playsound(get_turf(L), 'sound/magic/summonitems_generic.ogg', 50, 1) diff --git a/code/modules/spells/spell_types/taeclowndo.dm b/code/modules/spells/spell_types/taeclowndo.dm index d2b0782b07..5b1e09565b 100644 --- a/code/modules/spells/spell_types/taeclowndo.dm +++ b/code/modules/spells/spell_types/taeclowndo.dm @@ -4,7 +4,6 @@ invocation_type = "none" include_user = 1 range = -1 - clothes_req = 0 item_type = /obj/item/reagent_containers/food/snacks/pie/cream charge_max = 30 @@ -20,7 +19,7 @@ charge_type = "recharge" charge_max = 100 cooldown_min = 100 - clothes_req = 0 + clothes_req = NONE invocation_type = "none" range = 7 selection_type = "view" @@ -61,7 +60,7 @@ hand_path = /obj/item/melee/touch_attack/megahonk charge_max = 100 - clothes_req = 0 + clothes_req = NONE cooldown_min = 100 action_icon = 'icons/mecha/mecha_equipment.dmi' @@ -75,7 +74,7 @@ hand_path = /obj/item/melee/touch_attack/bspie charge_max = 450 - clothes_req = 0 + clothes_req = NONE cooldown_min = 450 action_icon = 'icons/obj/food/piecake.dmi' diff --git a/code/modules/spells/spell_types/telepathy.dm b/code/modules/spells/spell_types/telepathy.dm index 34f100f753..4b4f91eb18 100644 --- a/code/modules/spells/spell_types/telepathy.dm +++ b/code/modules/spells/spell_types/telepathy.dm @@ -2,7 +2,7 @@ name = "Telepathy" desc = "Telepathically transmits a message to the target." charge_max = 0 - clothes_req = 0 + clothes_req = NONE range = 7 include_user = 0 action_icon = 'icons/mob/actions/actions_revenant.dmi' diff --git a/code/modules/spells/spell_types/the_traps.dm b/code/modules/spells/spell_types/the_traps.dm index 7402dbfbc8..87928e6a7e 100644 --- a/code/modules/spells/spell_types/the_traps.dm +++ b/code/modules/spells/spell_types/the_traps.dm @@ -5,7 +5,6 @@ charge_max = 250 cooldown_min = 50 - clothes_req = 1 invocation = "CAVERE INSIDIAS" invocation_type = "shout" range = 3 diff --git a/code/modules/spells/spell_types/touch_attacks.dm b/code/modules/spells/spell_types/touch_attacks.dm index e5b9144535..a23e16cf88 100644 --- a/code/modules/spells/spell_types/touch_attacks.dm +++ b/code/modules/spells/spell_types/touch_attacks.dm @@ -56,7 +56,6 @@ school = "evocation" charge_max = 600 - clothes_req = 1 cooldown_min = 200 //100 deciseconds reduction per rank action_icon_state = "gib" @@ -68,7 +67,6 @@ school = "transmutation" charge_max = 600 - clothes_req = 1 cooldown_min = 200 //100 deciseconds reduction per rank action_icon_state = "statue" @@ -81,7 +79,7 @@ school = "evocation" charge_max = 100 - clothes_req = 0 + clothes_req = NONE cooldown_min = 20 action_icon_state = "nuclearfist" diff --git a/code/modules/spells/spell_types/turf_teleport.dm b/code/modules/spells/spell_types/turf_teleport.dm index 8a45f2be22..59f04c7039 100644 --- a/code/modules/spells/spell_types/turf_teleport.dm +++ b/code/modules/spells/spell_types/turf_teleport.dm @@ -1,7 +1,7 @@ /obj/effect/proc_holder/spell/targeted/turf_teleport name = "Turf Teleport" desc = "This spell teleports the target to the turf in range." - nonabstract_req = 1 + mobs_blacklist = list(/mob/living/brain, /mob/living/silicon/pai) var/inner_tele_radius = 1 var/outer_tele_radius = 2 diff --git a/code/modules/spells/spell_types/voice_of_god.dm b/code/modules/spells/spell_types/voice_of_god.dm index eb8950086c..495681a818 100644 --- a/code/modules/spells/spell_types/voice_of_god.dm +++ b/code/modules/spells/spell_types/voice_of_god.dm @@ -4,7 +4,7 @@ charge_max = 1200 //variable cooldown_min = 0 level_max = 1 - clothes_req = 0 + clothes_req = NONE action_icon = 'icons/mob/actions/actions_items.dmi' action_icon_state = "voice_of_god" var/command @@ -13,9 +13,10 @@ var/list/spans = list("colossus","yell") var/speech_sound = 'sound/magic/clockwork/invoke_general.ogg' -/obj/effect/proc_holder/spell/voice_of_god/can_cast(mob/user = usr) +/obj/effect/proc_holder/spell/voice_of_god/can_cast(mob/user = usr, skipcharge = FALSE, silent = TRUE) if(!user.can_speak()) - to_chat(user, "You are unable to speak!") + if(!silent) + to_chat(user, "You are unable to speak!") return FALSE return TRUE diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index 405bde212a..ace542126c 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -4,7 +4,6 @@ school = "evocation" charge_max = 200 - clothes_req = 1 invocation = "FORTI GY AMA" invocation_type = "shout" range = 7 @@ -38,7 +37,6 @@ school = "transmutation" charge_max = 400 - clothes_req = 1 invocation = "BIRUZ BENNAR" invocation_type = "shout" range = -1 @@ -58,7 +56,7 @@ school = "conjuration" charge_max = 120 - clothes_req = 0 + clothes_req = NONE invocation = "none" invocation_type = "none" range = -1 @@ -77,7 +75,7 @@ school = "conjuration" charge_max = 360 - clothes_req = 0 + clothes_req = NONE invocation = "none" invocation_type = "none" range = -1 @@ -92,7 +90,6 @@ name = "Disable Tech" desc = "This spell disables all weapons, cameras and most other technology in range." charge_max = 400 - clothes_req = 1 invocation = "NEC CANTIO" invocation_type = "shout" range = -1 @@ -109,7 +106,6 @@ school = "abjuration" charge_max = 20 - clothes_req = 1 invocation = "none" invocation_type = "none" range = -1 @@ -131,8 +127,7 @@ name = "quickstep" charge_max = 100 - clothes_req = 0 - cult_req = 1 + clothes_req = SPELL_CULT_GARB /obj/effect/proc_holder/spell/targeted/area_teleport/teleport name = "Teleport" @@ -140,7 +135,6 @@ school = "abjuration" charge_max = 600 - clothes_req = 1 invocation = "SCYAR NILA" invocation_type = "shout" range = -1 @@ -156,7 +150,6 @@ name = "Stop Time" desc = "This spell stops time for everyone except for you, allowing you to move freely while your enemies and even projectiles are frozen." charge_max = 500 - clothes_req = 1 invocation = "TOKI YO TOMARE" invocation_type = "shout" range = 0 @@ -174,7 +167,6 @@ school = "conjuration" charge_max = 1200 - clothes_req = 1 invocation = "NOUK FHUNMM SACP RISSKA" invocation_type = "shout" range = 1 @@ -189,7 +181,7 @@ school = "conjuration" charge_max = 600 - clothes_req = 0 + clothes_req = NONE invocation = "none" invocation_type = "none" range = 0 @@ -206,7 +198,7 @@ school = "conjuration" charge_max = 1200 - clothes_req = 0 + clothes_req = NONE invocation = "IA IA" invocation_type = "shout" summon_amt = 10 @@ -221,7 +213,7 @@ school = "transmutation" charge_max = 300 - clothes_req = 0 + clothes_req = NONE invocation = "STI KALY" invocation_type = "whisper" message = "Your eyes cry out in pain!" @@ -233,7 +225,7 @@ /obj/effect/proc_holder/spell/aoe_turf/conjure/creature/cult name = "Summon Creatures (DANGEROUS)" - cult_req = 1 + clothes_req = SPELL_CULT_GARB charge_max = 5000 summon_amt = 2 @@ -253,7 +245,6 @@ name = "Repulse" desc = "This spell throws everything around the user away." charge_max = 400 - clothes_req = 1 invocation = "GITTAH WEIGH" invocation_type = "shout" range = 5 @@ -314,7 +305,7 @@ desc = "Throw back attackers with a sweep of your tail." sound = 'sound/magic/tail_swing.ogg' charge_max = 150 - clothes_req = 0 + clothes_req = NONE range = 2 cooldown_min = 150 invocation_type = "none" @@ -335,7 +326,7 @@ name = "Sacred Flame" desc = "Makes everyone around you more flammable, and lights yourself on fire." charge_max = 60 - clothes_req = 0 + clothes_req = NONE invocation = "FI'RAN DADISKO" invocation_type = "shout" max_targets = 0 @@ -358,7 +349,7 @@ /obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket name = "Thrown Lightning" desc = "Forged from eldrich energies, a packet of pure power, known as a spell packet will appear in your hand, that when thrown will stun the target." - clothes_req = 1 + clothes_req = SPELL_WIZARD_GARB item_type = /obj/item/spellpacket/lightningbolt charge_max = 10 diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 4b169173ed..54f2aef10d 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -436,7 +436,7 @@ if(!isnull(body_markings) && status == BODYPART_ORGANIC) if(!use_digitigrade) - if(BODY_ZONE_CHEST) + if(body_zone == BODY_ZONE_CHEST) . += image(body_markings_icon, "[body_markings]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir) else . += image(body_markings_icon, "[body_markings]_[body_zone]", -MARKING_LAYER, image_dir) diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index 73225fc41c..117a45cdbc 100755 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -1,7 +1,6 @@ #define LIVER_DEFAULT_HEALTH 100 //amount of damage required for liver failure #define LIVER_DEFAULT_TOX_TOLERANCE 3 //amount of toxins the liver can filter out #define LIVER_DEFAULT_TOX_LETHALITY 0.01 //lower values lower how harmful toxins are to the liver -#define LIVER_SWELLING_MOVE_MODIFY "pharma" /obj/item/organ/liver name = "liver" @@ -15,12 +14,14 @@ healing_factor = STANDARD_ORGAN_HEALING decay_factor = STANDARD_ORGAN_DECAY + high_threshold_passed = "You feel a stange ache in your abdomen, almost like a stitch. This pain is encumbering your movements." + high_threshold_cleared = "The stitching ache in your abdomen passes away, unencumbering your movements." + now_fixed = "The stabbing pain in your abdomen slowly calms down into a more tolerable ache." + var/alcohol_tolerance = ALCOHOL_RATE//affects how much damage the liver takes from alcohol - var/failing //is this liver failing? var/toxTolerance = LIVER_DEFAULT_TOX_TOLERANCE//maximum amount of toxins the liver can just shrug off var/toxLethality = LIVER_DEFAULT_TOX_LETHALITY//affects how much damage toxins do to the liver var/filterToxins = TRUE //whether to filter toxins - var/swelling = 0 var/cachedmoveCalc = 1 /obj/item/organ/liver/on_life() @@ -28,8 +29,6 @@ if(istype(C)) if(!(organ_flags & ORGAN_FAILING))//can't process reagents with a failing liver - //slowly heal liver damage - damage = max(0, damage - 0.1) if(filterToxins && !HAS_TRAIT(owner, TRAIT_TOXINLOVER)) //handle liver toxin filtration @@ -46,42 +45,41 @@ if(damage > 10 && prob(damage/3))//the higher the damage the higher the probability to_chat(C, "You feel a dull pain in your abdomen.") - if(damage > maxHealth)//cap liver damage - damage = maxHealth - - if(swelling >= 10) - pharmacokinesis() - /obj/item/organ/liver/prepare_eat() var/obj/S = ..() S.reagents.add_reagent(/datum/reagent/iron, 5) return S -//Just in case +/obj/item/organ/liver/applyOrganDamage(d, maximum = maxHealth) + . = ..() + if(!.) + return + if(damage >= high_threshold) + var/move_calc = 1+((round(damage) - high_threshold)/(high_threshold/3)) + owner.add_movespeed_modifier(MOVESPEED_ID_CIRRHOSIS, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = move_calc) + sizeMoveMod(move_calc, owner) + else + owner.remove_movespeed_modifier(MOVESPEED_ID_CIRRHOSIS) + sizeMoveMod(1, owner) + +/obj/item/organ/liver/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = TRUE) + . = ..() + if(. && damage >= high_threshold) + var/move_calc = 1+((round(damage) - high_threshold)/(high_threshold/3)) + M.add_movespeed_modifier(MOVESPEED_ID_CIRRHOSIS, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = move_calc) + sizeMoveMod(move_calc, owner) + /obj/item/organ/liver/Remove(special = FALSE) if(!QDELETED(owner)) - owner.remove_movespeed_modifier(LIVER_SWELLING_MOVE_MODIFY) - owner.ResetBloodVol() //At the moment, this shouldn't allow application twice. You either have this OR a thirsty ferret. + owner.remove_movespeed_modifier(MOVESPEED_ID_CIRRHOSIS) sizeMoveMod(1, owner) return ..() -//Applies some of the effects to the patient. -/obj/item/organ/liver/proc/pharmacokinesis() - var/moveCalc = 1+((round(swelling) - 9)/3) - if(moveCalc == cachedmoveCalc)//reduce calculations - return - if(prob(5)) - to_chat(owner, "You feel a stange ache in your side, almost like a stitch. This pain is affecting your movements and making you feel lightheaded.") - var/mob/living/carbon/human/H = owner - H.add_movespeed_modifier(LIVER_SWELLING_MOVE_MODIFY, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc) - H.AdjustBloodVol(moveCalc/3) - sizeMoveMod(moveCalc, H) - -/obj/item/organ/liver/proc/sizeMoveMod(var/value, mob/living/carbon/human/H) +/obj/item/organ/liver/proc/sizeMoveMod(value, mob/living/carbon/C) if(cachedmoveCalc == value) return - H.next_move_modifier /= cachedmoveCalc - H.next_move_modifier *= value + C.next_move_modifier /= cachedmoveCalc + C.next_move_modifier *= value cachedmoveCalc = value /obj/item/organ/liver/fly diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index b091af0f92..d95901bdbe 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -143,8 +143,9 @@ var/healing_amount = -(maxHealth * healing_factor) ///Damage decrements again by a percent of its maxhealth, up to a total of 4 extra times depending on the owner's health healing_amount -= owner.satiety > 0 ? 4 * healing_factor * owner.satiety / MAX_SATIETY : 0 - applyOrganDamage(healing_amount) //to FERMI_TWEAK - //Make it so each threshold is stuck. + if(healing_amount) + applyOrganDamage(healing_amount) //to FERMI_TWEAK + //Make it so each threshold is stuck. /obj/item/organ/examine(mob/user) . = ..() @@ -205,14 +206,15 @@ ///Adjusts an organ's damage by the amount "d", up to a maximum amount, which is by default max damage /obj/item/organ/proc/applyOrganDamage(var/d, var/maximum = maxHealth) //use for damaging effects if(!d) //Micro-optimization. - return + return FALSE if(maximum < damage) - return + return FALSE damage = CLAMP(damage + d, 0, maximum) - var/mess = check_damage_thresholds(owner) + var/mess = check_damage_thresholds() prev_damage = damage if(mess && owner) to_chat(owner, mess) + return TRUE ///SETS an organ's damage to the amount "d", and in doing so clears or sets the failing flag, good for when you have an effect that should fix an organ if broken /obj/item/organ/proc/setOrganDamage(var/d) //use mostly for admin heals @@ -224,7 +226,7 @@ * description: By checking our current damage against our previous damage, we can decide whether we've passed an organ threshold. * If we have, send the corresponding threshold message to the owner, if such a message exists. */ -/obj/item/organ/proc/check_damage_thresholds(var/M) +/obj/item/organ/proc/check_damage_thresholds() if(damage == prev_damage) return var/delta = damage - prev_damage diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 7c849dbd68..671d31530a 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -74,7 +74,7 @@ ..() cords = target -/datum/action/item_action/organ_action/colossus/IsAvailable() +/datum/action/item_action/organ_action/colossus/IsAvailable(silent = FALSE) if(world.time < cords.next_command) return FALSE if(!owner) @@ -632,7 +632,7 @@ ..() cords = target -/datum/action/item_action/organ_action/velvet/IsAvailable() +/datum/action/item_action/organ_action/velvet/IsAvailable(silent = FALSE) return TRUE /datum/action/item_action/organ_action/velvet/Trigger() diff --git a/code/modules/surgery/plastic_surgery.dm b/code/modules/surgery/plastic_surgery.dm index ce9de95b4c..c4e056583c 100644 --- a/code/modules/surgery/plastic_surgery.dm +++ b/code/modules/surgery/plastic_surgery.dm @@ -40,7 +40,6 @@ if(ishuman(target)) var/mob/living/carbon/human/H = target H.sec_hud_set_ID() - return 1 return TRUE /datum/surgery_step/reshape_face/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/uplink/uplink_items/uplink_ammo.dm b/code/modules/uplink/uplink_items/uplink_ammo.dm index 15bb47af91..4a7e1f146e 100644 --- a/code/modules/uplink/uplink_items/uplink_ammo.dm +++ b/code/modules/uplink/uplink_items/uplink_ammo.dm @@ -15,6 +15,12 @@ cost = 1 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/ammo/pistol/box + name = "Ammo Box - 10mm" + desc = "An additional box of 10mm ammo. The box has 20 cases inside, does not come with a magazine." + item = /obj/item/ammo_box/c10mm + illegal_tech = FALSE + /datum/uplink_item/ammo/pistolap name = "10mm Armour Piercing Magazine" desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ @@ -23,6 +29,12 @@ cost = 2 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/ammo/pistolap/box + name = "Ammo Box - 10mm Armour Piercing" + desc = "An additional box of 10mm Armour Piercing ammo. The box has 20 cases inside, does not come with a magazine." + item = /obj/item/ammo_box/c10mm/ap + illegal_tech = FALSE + /datum/uplink_item/ammo/pistolhp name = "10mm Hollow Point Magazine" desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ @@ -31,6 +43,12 @@ cost = 3 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/ammo/pistolhp/box + name = "Ammo Box - 10mm Hollow Point" + desc = "An additional box of 10mm Hollow Point ammo. The box has 20 cases inside, does not come with a magazine." + item = /obj/item/ammo_box/c10mm/hp + illegal_tech = FALSE + /datum/uplink_item/ammo/pistolfire name = "10mm Incendiary Magazine" desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ @@ -39,6 +57,12 @@ cost = 2 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) +/datum/uplink_item/ammo/pistolfire/box + name = "Ammo Box - 10mm Incendiary" + desc = "An additional box of 10mm Incendiary ammo. The box has 20 cases inside, does not come with a magazine." + item = /obj/item/ammo_box/magazine/m10mm/fire + illegal_tech = FALSE + /datum/uplink_item/ammo/pistolzzz name = "10mm Soporific Magazine" desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. Loaded with soporific rounds that put the target to sleep. \ @@ -46,6 +70,12 @@ item = /obj/item/ammo_box/magazine/m10mm/soporific cost = 2 +/datum/uplink_item/ammo/pistolzzz/box + name = "Ammo Box - 10mm Soporific" + desc = "An additional box of 10mm Soporific ammo. The box has 20 cases inside, does not come with a magazine." + item = /obj/item/ammo_box/c10mm/soporific + illegal_tech = FALSE + /datum/uplink_item/ammo/shotgun cost = 2 include_modes = list(/datum/game_mode/nuclear) @@ -212,6 +242,12 @@ cost = 2 include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/ammo/pistolaps + name = "Ammo Box - 9mm" + desc = "An additional box of 9mm ammo. The box has 30 cases inside, does not come with a magazine." + item = /obj/item/ammo_box/c9mm + illegal_tech = FALSE + /datum/uplink_item/ammo/flechetteap name = "Armor Piercing Flechette Magazine" desc = "An additional 40-round flechette magazine; compatible with the Flechette Launcer. \ diff --git a/code/modules/uplink/uplink_items/uplink_clothing.dm b/code/modules/uplink/uplink_items/uplink_clothing.dm index aad9834612..d6336bd982 100644 --- a/code/modules/uplink/uplink_items/uplink_clothing.dm +++ b/code/modules/uplink/uplink_items/uplink_clothing.dm @@ -83,4 +83,10 @@ name = "Thieving Gloves" desc = "A pair of gloves that are insulated and frictionless, allowing you to steal easily from anyone you see." item = /obj/item/clothing/gloves/thief - cost = 4 \ No newline at end of file + cost = 4 + +/datum/uplink_item/suits/wallwalkers + name = "Wall Walking Boots" + desc = "Through bluespace magic stolen from an organisation that hoards technology, these boots simply allow you to slip through the atoms that make up anything, but only while walking, for safety reasons. As well as this, they unfortunately cause minor breath loss as the majority of atoms in your lungs are sucked out into any solid object you walk through." + item = /obj/item/clothing/shoes/wallwalkers + cost = 6 \ No newline at end of file diff --git a/code/modules/uplink/uplink_items/uplink_dangerous.dm b/code/modules/uplink/uplink_items/uplink_dangerous.dm index 819ba51623..c798aa5cd9 100644 --- a/code/modules/uplink/uplink_items/uplink_dangerous.dm +++ b/code/modules/uplink/uplink_items/uplink_dangerous.dm @@ -9,9 +9,9 @@ /datum/uplink_item/dangerous/pistol name = "Stechkin Pistol" - desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ + desc = "A sleek box containing a small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines. The handgun is compatible \ with suppressors." - item = /obj/item/gun/ballistic/automatic/pistol + item = /obj/item/storage/box/syndie_kit/pistol cost = 7 exclude_modes = list(/datum/game_mode/nuclear/clown_ops) @@ -174,10 +174,13 @@ include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/dangerous/rapid - name = "Gloves of the North Star" - desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." - item = /obj/item/clothing/gloves/rapid - cost = 8 + name = "Bands of the North Star" + desc = "These armbands let the user punch people very fast and with the lethality of a legendary martial artist. \ + Does not improve weapon attack speed or the meaty fists of a hulk, but you will be unmatched in martial power. \ + Combines with all martial arts, but the user will be unable to bring themselves to use guns, nor remove the armbands." + item = /obj/item/clothing/gloves/fingerless/pugilist/rapid + cost = 30 + include_modes = list(/datum/game_mode/nuclear) /datum/uplink_item/dangerous/guardian name = "Holoparasites" diff --git a/code/modules/uplink/uplink_items/uplink_devices.dm b/code/modules/uplink/uplink_items/uplink_devices.dm index 06fd9aab43..194281ded6 100644 --- a/code/modules/uplink/uplink_items/uplink_devices.dm +++ b/code/modules/uplink/uplink_items/uplink_devices.dm @@ -20,6 +20,12 @@ item = /obj/item/emagrecharge cost = 2 +/datum/uplink_item/device_tools/bluespacerecharge + name = "Bluespace Crystal Recharging Device" + desc = "A small device intended for recharging Wall Walking boots. Using it will add six charges to them. Use ten bluespace crystals on this recharger to add three more charges to it. " + item = /obj/item/bluespacerecharge + cost = 2 + /datum/uplink_item/device_tools/phantomthief name = "Syndicate Mask" desc = "A cheap plastic mask fitted with an adrenaline autoinjector, which can be used by simply tensing your muscles" @@ -185,8 +191,9 @@ /datum/uplink_item/device_tools/stimpack name = "Stimpack" desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ - 5 minutes after injection." - item = /obj/item/reagent_containers/syringe/stimulants + 5 minutes after fully injecting yourself. Can inject yourself, or others, 5 times and through hardsuits. \ + Each injection will gives around a minute of stimulants." + item = /obj/item/reagent_containers/hypospray/medipen/stimulants cost = 5 surplus = 90 diff --git a/code/modules/uplink/uplink_items/uplink_roles.dm b/code/modules/uplink/uplink_items/uplink_roles.dm index 3d28010133..778edf8cc8 100644 --- a/code/modules/uplink/uplink_items/uplink_roles.dm +++ b/code/modules/uplink/uplink_items/uplink_roles.dm @@ -92,6 +92,22 @@ restricted_roles = list("Chaplain") surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain +/datum/uplink_item/role_restricted/clockwork_slab + name = "Clockwork Slab" + desc = "A reverse engineered clockwork slab. Is this really a good idea?." + item = /obj/item/clockwork/slab/traitor + cost = 20 + refundable = TRUE + restricted_roles = list("Chaplain") + +/datum/uplink_item/role_restricted/arcane_tome + name = "Arcane Tome" + desc = "A replica of a Nar'sian tome. This is probably a bad idea.." + item = /obj/item/tome/traitor + cost = 20 + refundable = TRUE + restricted_roles = list("Chaplain") + /datum/uplink_item/role_restricted/explosive_hot_potato name = "Exploding Hot Potato" desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. \ diff --git a/code/modules/uplink/uplink_items/uplink_stealth.dm b/code/modules/uplink/uplink_items/uplink_stealth.dm index 80aba02e2e..b4933b30ba 100644 --- a/code/modules/uplink/uplink_items/uplink_stealth.dm +++ b/code/modules/uplink/uplink_items/uplink_stealth.dm @@ -51,6 +51,7 @@ gain skin as hard as steel and swat bullets from the air, but you also refuse to use dishonorable ranged weaponry." item = /obj/item/book/granter/martial/carp cost = 17 + player_minimum = 30 surplus = 0 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) @@ -60,6 +61,7 @@ and dodging all ranged weapon fire, but you will refuse to use dishonorable ranged weaponry." item = /obj/item/book/granter/martial/bass cost = 18 + player_minimum = 30 surplus = 0 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index cb53574653..1fb037d1c5 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -40,11 +40,22 @@ . = ..() /obj/vehicle/ridden/scooter/skateboard - name = "skateboard" - desc = "An unfinished scooter which can only barely be called a skateboard. It's still rideable, but probably unsafe. Looks like you'll need to add a few rods to make handlebars. Alt-click to adjust speed." + name = "improvised skateboard" + desc = "An unfinished scooter which can only barely be called a skateboard. It's still rideable, but probably unsafe. Looks like you'll need to add a few rods to make handlebars." icon_state = "skateboard" density = FALSE - var/adjusted_speed = FALSE + arms_required = 0 + var/datum/effect_system/spark_spread/sparks + ///Whether the board is currently grinding + var/grinding = FALSE + ///Stores the time of the last crash plus a short cooldown, affects availability and outcome of certain actions + var/next_crash + ///Stores the default icon state + var/board_icon = "skateboard" + ///The handheld item counterpart for the board + var/board_item_type = /obj/item/melee/skateboard + ///Stamina drain multiplier + var/instability = 10 /obj/vehicle/ridden/scooter/skateboard/Initialize() . = ..() @@ -54,6 +65,23 @@ D.set_vehicle_dir_layer(NORTH, OBJ_LAYER) D.set_vehicle_dir_layer(EAST, OBJ_LAYER) D.set_vehicle_dir_layer(WEST, OBJ_LAYER) + sparks = new + sparks.set_up(1, 0, src) + sparks.attach(src) + +/obj/vehicle/ridden/scooter/skateboard/Destroy() + if(sparks) + QDEL_NULL(sparks) + . = ..() + +/obj/vehicle/ridden/scooter/skateboard/relaymove() + if (grinding || world.time < next_crash) + return FALSE + return ..() + +/obj/vehicle/ridden/scooter/skateboard/generate_actions() + . = ..() + initialize_controller_action_type(/datum/action/vehicle/ridden/scooter/skateboard/ollie, VEHICLE_CONTROL_DRIVE) /obj/vehicle/ridden/scooter/skateboard/post_buckle_mob(mob/living/M)//allows skateboards to be non-dense but still allows 2 skateboarders to collide with each other density = TRUE @@ -68,17 +96,49 @@ . = ..() if(A.density && has_buckled_mobs()) var/mob/living/H = buckled_mobs[1] - var/atom/throw_target = get_edge_target_turf(H, pick(GLOB.cardinals)) - unbuckle_mob(H) - H.throw_at(throw_target, 4, 3) - H.DefaultCombatKnockdown(100) - H.adjustStaminaLoss(40) - var/head_slot = H.get_item_by_slot(SLOT_HEAD) - if(!head_slot || !(istype(head_slot,/obj/item/clothing/head/helmet) || istype(head_slot,/obj/item/clothing/head/hardhat))) - H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3) - H.updatehealth() - visible_message("[src] crashes into [A], sending [H] flying!") - playsound(src, 'sound/effects/bang.ogg', 50, 1) + H.adjustStaminaLoss(instability*6) + playsound(src, 'sound/effects/bang.ogg', 40, TRUE) + if(!iscarbon(H) || H.getStaminaLoss() >= 100 || grinding || world.time < next_crash) + var/atom/throw_target = get_edge_target_turf(H, pick(GLOB.cardinals)) + unbuckle_mob(H) + H.throw_at(throw_target, 3, 2) + var/head_slot = H.get_item_by_slot(SLOT_HEAD) + if(!head_slot || !(istype(head_slot,/obj/item/clothing/head/helmet) || istype(head_slot,/obj/item/clothing/head/hardhat))) + H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5) + H.updatehealth() + visible_message("[src] crashes into [A], sending [H] flying!") + H.Knockdown(80) + else + var/backdir = turn(dir, 180) + vehicle_move(backdir) + H.spin(4, 1) + next_crash = world.time + 10 + +///Moves the vehicle forward and if it lands on a table, repeats +/obj/vehicle/ridden/scooter/skateboard/proc/grind() + vehicle_move(dir) + if(has_buckled_mobs() && locate(/obj/structure/table) in loc.contents) + var/mob/living/L = buckled_mobs[1] + L.adjustStaminaLoss(instability*0.5) + if (L.getStaminaLoss() >= 100) + playsound(src, 'sound/effects/bang.ogg', 20, TRUE) + unbuckle_mob(L) + var/atom/throw_target = get_edge_target_turf(src, pick(GLOB.cardinals)) + L.throw_at(throw_target, 2, 2) + visible_message("[L] loses [L.p_their()] footing and slams on the ground!") + L.Knockdown(40) + grinding = FALSE + icon_state = board_icon + return + else + playsound(src, 'sound/vehicles/skateboard_roll.ogg', 50, TRUE) + if(prob (25)) + sparks.start() //the most radical way to start plasma fires + addtimer(CALLBACK(src, .proc/grind), 2) + return + else + grinding = FALSE + icon_state = board_icon /obj/vehicle/ridden/scooter/skateboard/MouseDrop(atom/over_object) . = ..() @@ -89,22 +149,42 @@ to_chat(M, "You can't lift this up when somebody's on it.") return if(over_object == M) - var/obj/item/melee/skateboard/board = new /obj/item/melee/skateboard() + var/board = new board_item_type(get_turf(M)) M.put_in_hands(board) qdel(src) -/obj/vehicle/ridden/scooter/skateboard/AltClick(mob/user) - . = ..() - var/datum/component/riding/R = src.GetComponent(/datum/component/riding) - if (!adjusted_speed) - R.vehicle_move_delay = 0 - to_chat(user, "You adjust the wheels on [src] to make it go faster.") - adjusted_speed = TRUE +/obj/vehicle/ridden/scooter/skateboard/pro + name = "skateboard" + desc = "A RaDSTORMz brand professional skateboard. Looks a lot more stable than the average board." + icon_state = "skateboard2" + board_icon = "skateboard2" + board_item_type = /obj/item/melee/skateboard/pro + instability = 6 + +/obj/vehicle/ridden/scooter/skateboard/hoverboard/ + name = "hoverboard" + desc = "A blast from the past, so retro!" + board_item_type = /obj/item/melee/skateboard/hoverboard + instability = 3 + icon_state = "hoverboard_red" + board_icon = "hoverboard_red" + +/obj/vehicle/ridden/scooter/skateboard/hoverboard/screwdriver_act(mob/living/user, obj/item/I) + return FALSE + +/obj/vehicle/ridden/scooter/skateboard/hoverboard/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/stack/rods)) + return else - R.vehicle_move_delay = 1 - to_chat(user, "You adjust the wheels on [src] to make it go slower.") - adjusted_speed = FALSE - return TRUE + return ..() + +/obj/vehicle/ridden/scooter/skateboard/hoverboard/admin + name = "\improper Board Of Directors" + desc = "The engineering complexity of a spaceship concentrated inside of a board. Just as expensive, too." + board_item_type = /obj/item/melee/skateboard/hoverboard/admin + instability = 0 + icon_state = "hoverboard_nt" + board_icon = "hoverboard_nt" //CONSTRUCTION /obj/item/scooter_frame diff --git a/code/modules/vehicles/vehicle_actions.dm b/code/modules/vehicles/vehicle_actions.dm index c780ce6fd3..5de2c8961f 100644 --- a/code/modules/vehicles/vehicle_actions.dm +++ b/code/modules/vehicles/vehicle_actions.dm @@ -164,3 +164,41 @@ if(istype(vehicle_entered_target, /obj/vehicle/sealed/car/clowncar)) var/obj/vehicle/sealed/car/clowncar/C = vehicle_entered_target C.RollTheDice(owner) + + +/datum/action/vehicle/ridden/scooter/skateboard/ollie + name = "Ollie" + desc = "Get some air! Land on a table to do a gnarly grind." + button_icon_state = "skateboard_ollie" + ///Cooldown to next jump + var/next_ollie + +/datum/action/vehicle/ridden/scooter/skateboard/ollie/Trigger() + if(world.time > next_ollie) + var/obj/vehicle/ridden/scooter/skateboard/V = vehicle_target + if (V.grinding) + return + var/mob/living/L = owner + var/turf/landing_turf = get_step(V.loc, V.dir) + L.adjustStaminaLoss(V.instability*2) + if (L.getStaminaLoss() >= 100) + playsound(src, 'sound/effects/bang.ogg', 20, TRUE) + V.unbuckle_mob(L) + L.throw_at(landing_turf, 2, 2) + L.Knockdown(40) + V.visible_message("[L] misses the landing and falls on [L.p_their()] face!") + else + L.spin(4, 1) + animate(L, pixel_y = -6, time = 4) + animate(V, pixel_y = -6, time = 3) + playsound(V, 'sound/vehicles/skateboard_ollie.ogg', 50, TRUE) + passtable_on(L, VEHICLE_TRAIT) + V.pass_flags |= PASSTABLE + L.Move(landing_turf, vehicle_target.dir) + passtable_off(L, VEHICLE_TRAIT) + V.pass_flags &= ~PASSTABLE + if(locate(/obj/structure/table) in V.loc.contents) + V.grinding = TRUE + V.icon_state = "[V.board_icon]-grind" + addtimer(CALLBACK(V, /obj/vehicle/ridden/scooter/skateboard/.proc/grind), 2) + next_ollie = world.time + 5 diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 8a62c19e16..4f7502bb02 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -16,12 +16,26 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY CANISTER CHARGES in vending_items.dm */ +#define MAX_VENDING_INPUT_AMOUNT 30 +/** + * # vending record datum + * + * A datum that represents a product that is vendable + */ /datum/data/vending_product name = "generic" + ///Typepath of the product that is created when this record "sells" var/product_path = null + ///How many of this product we currently have var/amount = 0 + ///How many we can store at maximum var/max_amount = 0 +/** + * # vending machines + * + * Captalism in the year 2525, everything in a vending machine, even love + */ /obj/machinery/vending name = "\improper Vendomat" desc = "A generic vending machine." @@ -36,43 +50,117 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C integrity_failure = 0.33 armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 70) circuit = /obj/item/circuitboard/machine/vendor - var/active = 1 //No sales pitches if off! - var/vend_ready = 1 //Are we ready to vend?? Is it time?? + light_power = 0.5 + light_range = MINIMUM_USEFUL_LIGHT_RANGE + /// Is the machine active (No sales pitches if off)! + var/active = TRUE + ///Are we ready to vend?? Is it time?? + var/vend_ready = TRUE + ///Next world time to send a purchase message + var/purchase_message_cooldown + ///Last mob to shop with us - // To be filled out at compile time - var/list/products = list() //For each, use the following pattern: - var/list/contraband = list() //list(/type/path = amount, /type/path2 = amount2) - var/list/premium = list() //No specified amount = only one in stock + /** + * List of products this machine sells + * + * form should be list(/type/path = amount, /type/path2 = amount2) + */ + var/list/products = list() + + /** + * List of products this machine sells when you hack it + * + * form should be list(/type/path = amount, /type/path2 = amount2) + */ + var/list/contraband = list() + + /** + * List of premium products this machine sells + * + * form should be list(/type/path, /type/path2) as there is only ever one in stock + */ + var/list/premium = list() + + ///String of slogans separated by semicolons, optional + var/product_slogans = "" + ///String of small ad messages in the vending screen - random chance + var/product_ads = "" - var/product_slogans = "" //String of slogans separated by semicolons, optional - var/product_ads = "" //String of small ad messages in the vending screen - random chance var/list/product_records = list() var/list/hidden_records = list() var/list/coin_records = list() var/list/slogan_list = list() - var/list/small_ads = list() //Small ad messages in the vending screen - random chance of popping up whenever you open it - var/vend_reply //Thank you for shopping! - var/last_reply = 0 - var/last_slogan = 0 //When did we last pitch? - var/slogan_delay = 6000 //How long until we can pitch again? - var/icon_vend //Icon_state when vending! - var/icon_deny //Icon_state when vending! - var/seconds_electrified = 0 //Shock customers like an airlock. - var/shoot_inventory = 0 //Fire items at customers! We're broken! - var/shoot_inventory_chance = 2 - var/shut_up = 0 //Stop spouting those godawful pitches! - var/extended_inventory = 0 //can we access the hidden inventory? - var/scan_id = 1 - var/obj/item/coin/coin - var/obj/item/stack/spacecash/bill - - var/static/vending_cache = list() //used for storing the icons of items being vended - + ///Small ad messages in the vending screen - random chance of popping up whenever you open it + var/list/small_ads = list() var/dish_quants = list() //used by the snack machine's custom compartment to count dishes. + ///Message sent post vend (Thank you for shopping!) + var/vend_reply + ///Last world tick we sent a vent reply + var/last_reply + ///Last world tick we sent a slogan message out + var/last_slogan + var/last_shopper + ///How many ticks until we can send another + var/slogan_delay = 6000 + ///Icon when vending an item to the user + var/icon_vend + ///Icon to flash when user is denied a vend + var/icon_deny + ///World ticks the machine is electified for + var/seconds_electrified = MACHINE_NOT_ELECTRIFIED + ///When this is TRUE, we fire items at customers! We're broken! + var/shoot_inventory + ///How likely this is to happen (prob 100) + var/shoot_inventory_chance = 2 + //Stop spouting those godawful pitches! + var/shut_up + ///can we access the hidden inventory? + var/extended_inventory + ///Are we checking the users ID + var/scan_id = TRUE + ///Coins that we accept? + var/obj/item/coin/coin + ///Default price of items if not overridden + /** + * Is this item on station or not + * + * if it doesn't originate from off-station during mapload, everything is free + */ + var/onstation = TRUE //if it doesn't originate from off-station during mapload, everything is free + ///A variable to change on a per instance basis on the map that allows the instance to force cost and ID requirements + var/onstation_override = FALSE //change this on the object on the map to override the onstation check. DO NOT APPLY THIS GLOBALLY. - var/obj/item/vending_refill/refill_canister = null //The type of refill canisters used by this machine. + ///ID's that can load this vending machine wtih refills + var/list/canload_access_list -/obj/machinery/vending/Initialize() + + var/list/vending_machine_input = list() + ///Display header on the input view + var/input_display_header = "Custom Vendor" + + //The type of refill canisters used by this machine. + var/obj/item/vending_refill/refill_canister = null + + /// how many items have been inserted in a vendor + var/loaded_items + + ///Name of lighting mask for the vending machine + var/light_mask + +/obj/item/circuitboard + ///determines if the circuit board originated from a vendor off station or not. + var/onstation = TRUE + +/** + * Initialize the vending machine + * + * Builds the vending machine inventory, sets up slogans and other such misc work + * + * This also sets the onstation var to: + * * FALSE - if the machine was maploaded on a zlevel that doesn't pass the is_station_level check + * * TRUE - all other cases + */ +/obj/machinery/vending/Initialize(mapload) var/build_inv = FALSE if(!refill_canister) circuit = null @@ -94,9 +182,11 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C /obj/machinery/vending/Destroy() QDEL_NULL(wires) QDEL_NULL(coin) - QDEL_NULL(bill) return ..() +/obj/machinery/vending/can_speak() + return !shut_up + /obj/machinery/vending/RefreshParts() //Better would be to make constructable child if(!component_parts) return @@ -118,34 +208,65 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C else ..() -/obj/machinery/vending/obj_break(damage_flag) - if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1)) - stat |= BROKEN +/obj/machinery/vending/update_icon_state() + if(stat & BROKEN) icon_state = "[initial(icon_state)]-broken" + set_light(0) + else if(powered()) + icon_state = initial(icon_state) + set_light(1.4) + else + icon_state = "[initial(icon_state)]-off" + set_light(0) - var/dump_amount = 0 - var/found_anything = TRUE - while (found_anything) - found_anything = FALSE - for(var/record in shuffle(product_records)) - var/datum/data/vending_product/R = record - if(R.amount <= 0) //Try to use a record that actually has something to dump. - continue - var/dump_path = R.product_path - if(!dump_path) - continue - R.amount-- - // busting open a vendor will destroy some of the contents - if(found_anything && prob(80)) - continue - var/obj/O = new dump_path(loc) - step(O, pick(GLOB.alldirs)) - found_anything = TRUE - dump_amount++ - if (dump_amount >= 16) - return +/obj/machinery/vending/update_overlays() + . = ..() + if(!light_mask) + return + SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) + if(!(stat & BROKEN) && powered()) + SSvis_overlays.add_vis_overlay(src, icon, light_mask, EMISSIVE_LAYER, EMISSIVE_PLANE) + +/obj/machinery/vending/obj_break(damage_flag) + . = ..() + if(!.) + return + + var/dump_amount = 0 + var/found_anything = TRUE + while (found_anything) + found_anything = FALSE + for(var/record in shuffle(product_records)) + var/datum/data/vending_product/R = record + if(R.amount <= 0) //Try to use a record that actually has something to dump. + continue + var/dump_path = R.product_path + if(!dump_path) + continue + R.amount-- + // busting open a vendor will destroy some of the contents + if(found_anything && prob(80)) + continue + + var/obj/O = new dump_path(loc) + step(O, pick(GLOB.alldirs)) + found_anything = TRUE + dump_amount++ + if (dump_amount >= 16) + return + +GLOBAL_LIST_EMPTY(vending_products) +/** + * Build the inventory of the vending machine from it's product and record lists + * + * This builds up a full set of /datum/data/vending_products from the product list of the vending machine type + * Arguments: + * * productlist - the list of products that need to be converted + * * recordlist - the list containing /datum/data/vending_product datums + * * startempty - should we set vending_product record amount from the product list (so it's prefilled at roundstart) + */ /obj/machinery/vending/proc/build_inventory(list/productlist, list/recordlist, start_empty = FALSE) for(var/typepath in productlist) var/amount = productlist[typepath] @@ -154,13 +275,21 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C var/atom/temp = typepath var/datum/data/vending_product/R = new /datum/data/vending_product() + GLOB.vending_products[typepath] = 1 R.name = initial(temp.name) R.product_path = typepath if(!start_empty) R.amount = amount R.max_amount = amount recordlist += R - +/** + * Refill a vending machine from a refill canister + * + * This takes the products from the refill canister and then fills the products,contraband and premium product categories + * + * Arguments: + * * canister - the vending canister we are refilling from + */ /obj/machinery/vending/proc/restock(obj/item/vending_refill/canister) if (!canister.products) canister.products = products.Copy() @@ -172,7 +301,13 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C . += refill_inventory(canister.products, product_records) . += refill_inventory(canister.contraband, hidden_records) . += refill_inventory(canister.premium, coin_records) - +/** + * Refill our inventory from the passed in product list into the record list + * + * Arguments: + * * productlist - list of types -> amount + * * recordlist - existing record datums + */ /obj/machinery/vending/proc/refill_inventory(list/productlist, list/recordlist) . = 0 for(var/R in recordlist) @@ -182,7 +317,11 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C productlist[record.product_path] -= diff record.amount += diff . += diff - +/** + * Set up a refill canister that matches this machines products + * + * This is used when the machine is deconstructed, so the items aren't "lost" + */ /obj/machinery/vending/proc/update_canister() if (!component_parts) return @@ -190,12 +329,14 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C var/obj/item/vending_refill/R = locate() in component_parts if (!R) CRASH("Constructible vending machine did not have a refill canister") - return R.products = unbuild_inventory(product_records) R.contraband = unbuild_inventory(hidden_records) R.premium = unbuild_inventory(coin_records) +/** + * Given a record list, go through and and return a list of type -> amount + */ /obj/machinery/vending/proc/unbuild_inventory(list/recordlist) . = list() for(var/R in recordlist) @@ -209,11 +350,14 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C return TRUE /obj/machinery/vending/wrench_act(mob/living/user, obj/item/I) + ..() if(panel_open) default_unfasten_wrench(user, I, time = 60) return TRUE /obj/machinery/vending/screwdriver_act(mob/living/user, obj/item/I) + if(..()) + return TRUE if(anchored) default_deconstruction_screwdriver(user, icon_state, icon_state, I) cut_overlays() @@ -232,9 +376,6 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C if(coin) to_chat(user, "[src] already has [coin] inserted") return - if(bill) - to_chat(user, "[src] already has [bill] inserted") - return if(!premium.len) to_chat(user, "[src] doesn't have a coin slot.") return @@ -243,41 +384,87 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C coin = I to_chat(user, "You insert [I] into [src].") return - else if(istype(I, /obj/item/stack/spacecash)) - if(coin) - to_chat(user, "[src] already has [coin] inserted") - return - if(bill) - to_chat(user, "[src] already has [bill] inserted") - return - var/obj/item/stack/S = I - if(!premium.len) - to_chat(user, "[src] doesn't have a bill slot.") - return - S.use(1) - bill = new S.type(src, 1) - to_chat(user, "You insert [I] into [src].") - return else if(refill_canister && istype(I, refill_canister)) if (!panel_open) - to_chat(user, "You should probably unscrew the service panel first.") + to_chat(user, "You should probably unscrew the service panel first!") else if (stat & (BROKEN|NOPOWER)) to_chat(user, "[src] does not respond.") else //if the panel is open we attempt to refill the machine var/obj/item/vending_refill/canister = I if(canister.get_part_rating() == 0) - to_chat(user, "[canister] is empty!") + to_chat(user, "[canister] is empty!") else // instantiate canister if needed var/transferred = restock(canister) if(transferred) to_chat(user, "You loaded [transferred] items in [src].") else - to_chat(user, "There's nothing to restock!") + to_chat(user, "There's nothing to restock!") return + + if(compartmentLoadAccessCheck(user) && user.a_intent != INTENT_HARM) + if(canLoadItem(I)) + loadingAttempt(I,user) + updateUsrDialog() //can't put this on the proc above because we spam it below + + if(istype(I, /obj/item/storage/bag)) //trays USUALLY + var/obj/item/storage/T = I + var/loaded = 0 + var/denied_items = 0 + for(var/obj/item/the_item in T.contents) + if(contents.len >= MAX_VENDING_INPUT_AMOUNT) // no more than 30 item can fit inside, legacy from snack vending although not sure why it exists + to_chat(user, "[src]'s compartment is full.") + break + if(canLoadItem(the_item) && loadingAttempt(the_item,user)) + SEND_SIGNAL(T, COMSIG_TRY_STORAGE_TAKE, the_item, src, TRUE) + loaded++ + else + denied_items++ + if(denied_items) + to_chat(user, "[src] refuses some items!") + if(loaded) + to_chat(user, "You insert [loaded] dishes into [src]'s compartment.") + updateUsrDialog() else - return ..() + . = ..() + +/obj/machinery/vending/proc/loadingAttempt(obj/item/I, mob/user) + . = TRUE + if(!user.transferItemToLoc(I, src)) + return FALSE + if(vending_machine_input[format_text(I.name)]) + vending_machine_input[format_text(I.name)]++ + else + vending_machine_input[format_text(I.name)] = 1 + to_chat(user, "You insert [I] into [src]'s input compartment.") + loaded_items++ + +/** + * Is the passed in user allowed to load this vending machines compartments + * + * Arguments: + * * user - mob that is doing the loading of the vending machine + */ +/obj/machinery/vending/proc/compartmentLoadAccessCheck(mob/user) + if(!canload_access_list) + return TRUE + else + var/do_you_have_access = FALSE + var/req_access_txt_holder = req_access_txt + for(var/i in canload_access_list) + req_access_txt = i + if(!allowed(user) && !(obj_flags & EMAGGED) && scan_id) + continue + else + do_you_have_access = TRUE + break //you passed don't bother looping anymore + req_access_txt = req_access_txt_holder // revert to normal (before the proc ran) + if(do_you_have_access) + return TRUE + else + to_chat(user, "[src]'s input compartment blinks red: Access denied.") + return FALSE /obj/machinery/vending/exchange_parts(mob/user, obj/item/storage/part_replacer/W) if(!istype(W)) @@ -297,7 +484,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C else display_parts(user) if(moved) - to_chat(user, "[moved] items restocked.") + to_chat(user, "[moved] items restocked.") W.play_rped_sound() return TRUE @@ -319,188 +506,145 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C return return ..() -/obj/machinery/vending/ui_interact(mob/user) - var/dat = "" +/obj/machinery/vending/ui_base_html(html) + var/datum/asset/spritesheet/assets = get_asset_datum(/datum/asset/spritesheet/vending) + . = replacetext(html, "", assets.css_tag()) - dat += "

    Select an item

    " - dat += "
    " - if(!product_records.len) - dat += "No product loaded!" - else - var/list/display_records = product_records - if(extended_inventory) - display_records = product_records + hidden_records - if(coin || bill) - display_records = product_records + coin_records - if((coin || bill) && extended_inventory) - display_records = product_records + hidden_records + coin_records - dat += "" - for (var/datum/data/vending_product/R in display_records) - dat += "" - dat += "" - if(R.amount > 0) - dat += "" - else - dat += "" - dat += "" - dat += "
    [sanitize(R.name)][R.amount] VendVend
    " - dat += "
    " - if(premium.len > 0) - dat += "Change Return: " - if (coin || bill) - dat += "[(coin ? coin : "")][(bill ? bill : "")]  Remove" - else - dat += "No money  Remove" - if(istype(src, /obj/machinery/vending/snack)) - dat += "

    Chef's Food Selection

    " - dat += "
    " - for (var/O in dish_quants) - if(dish_quants[O] > 0) - var/N = dish_quants[O] - dat += "Dispense " - dat += "[capitalize(O)]: [N]
    " - dat += "
    " +/obj/machinery/vending/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + var/datum/asset/assets = get_asset_datum(/datum/asset/spritesheet/vending) + assets.send(user) + ui = new(user, src, ui_key, "vending", name, 450, 600, master_ui, state) + ui.open() - var/datum/browser/popup = new(user, "vending", (name)) - popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) - popup.open() +/obj/machinery/vending/ui_static_data(mob/user) + . = list() + .["product_records"] = list() + for (var/datum/data/vending_product/R in product_records) + var/list/data = list( + path = replacetext(replacetext("[R.product_path]", "/obj/item/", ""), "/", "-"), + name = R.name, + max_amount = R.max_amount, + ref = REF(R) + ) + .["product_records"] += list(data) + .["coin_records"] = list() + for (var/datum/data/vending_product/R in coin_records) + var/list/data = list( + path = replacetext(replacetext("[R.product_path]", "/obj/item/", ""), "/", "-"), + name = R.name, + max_amount = R.max_amount, + ref = REF(R), + premium = TRUE + ) + .["coin_records"] += list(data) + .["hidden_records"] = list() + for (var/datum/data/vending_product/R in hidden_records) + var/list/data = list( + path = replacetext(replacetext("[R.product_path]", "/obj/item/", ""), "/", "-"), + name = R.name, + max_amount = R.max_amount, + ref = REF(R), + premium = TRUE + ) + .["hidden_records"] += list(data) -/obj/machinery/vending/proc/GetIconForProduct(datum/data/vending_product/P) - if(vending_cache[P.product_path]) - return vending_cache[P.product_path] - var/product = new P.product_path() - vending_cache[P.product_path] = icon2base64(getFlatIcon(product, no_anim = TRUE)) - qdel(product) - return vending_cache[P.product_path] +/obj/machinery/vending/ui_data(mob/user) + . = list() + .["stock"] = list() + for(var/datum/data/vending_product/R in product_records + coin_records + hidden_records) + .["stock"][R.name] = R.amount + .["extended_inventory"] = extended_inventory + .["coin"] = coin -/obj/machinery/vending/Topic(href, href_list) - if(..()) +/obj/machinery/vending/ui_act(action, params) + . = ..() + if(.) return - - if(href_list["remove_coin"]) - if(!(coin || bill)) - to_chat(usr, "There is no money in this machine.") - return - if(coin) - usr.put_in_hands(coin) - to_chat(usr, "You remove [coin] from [src].") - coin = null - if(bill) - usr.put_in_hands(bill) - to_chat(usr, "You remove [bill] from [src].") - bill = null - - - usr.set_machine(src) - - if((href_list["dispense"]) && (vend_ready)) - var/N = href_list["dispense"] - if(dish_quants[N] <= 0) // Sanity check, there are probably ways to press the button when it shouldn't be possible. - return - vend_ready = 0 - use_power(5) - - dish_quants[N] = max(dish_quants[N] - 1, 0) - for(var/obj/O in contents) - if(O.name == N) - O.forceMove(drop_location()) - break - vend_ready = 1 - updateUsrDialog() - return - - if((href_list["vend"]) && (vend_ready)) - if(panel_open) - to_chat(usr, "The vending machine cannot dispense products while its service panel is open!") - return - - if((!allowed(usr)) && !(obj_flags & EMAGGED) && scan_id) //For SECURE VENDING MACHINES YEAH - to_chat(usr, "Access denied." ) - flick(icon_deny,src) - return - - vend_ready = 0 //One thing at a time!! - - var/datum/data/vending_product/R = locate(href_list["vend"]) - if(!R || !istype(R) || !R.product_path) - vend_ready = 1 - return - - if(R in hidden_records) - if(!extended_inventory) - vend_ready = 1 + switch(action) + if("vend") + . = TRUE + if(!vend_ready) return - else if(R in coin_records) - if(!(coin || bill)) - to_chat(usr, "You need to insert money to get this item!") - vend_ready = 1 + if(panel_open) + to_chat(usr, "The vending machine cannot dispense products while its service panel is open!") return - if(coin && coin.string_attached) - if(prob(50)) - if(usr.CanReach(src)) - if(usr.put_in_hands(coin)) - to_chat(usr, "You successfully pull [coin] out before [src] could swallow it.") - coin = null - else - to_chat(usr, "You couldn't pull [coin] out because your hands are full!") - QDEL_NULL(coin) - else + if((!allowed(usr)) && !(obj_flags & EMAGGED) && scan_id) //For SECURE VENDING MACHINES YEAH + to_chat(usr, "Access denied." ) + flick(icon_deny,src) + return + vend_ready = FALSE //One thing at a time!! + var/datum/data/vending_product/R = locate(params["ref"]) + if(!R || !istype(R) || !R.product_path) + vend_ready = TRUE + return + if(R in hidden_records) + if(!extended_inventory) + vend_ready = TRUE + return + else if(R in coin_records) + if(!(coin)) + to_chat(usr, "You need to a coin to get this item!") + vend_ready = TRUE + return + if(coin && coin.string_attached) + if(!prob(50)) + to_chat(usr, "You weren't able to pull [coin] out fast enough, the machine ate it, string and all!") + QDEL_NULL(coin) + return + if(!usr.CanReach(src)) to_chat(usr, "You successfully pull [coin] out of [src] to the floor.") coin = null - else - to_chat(usr, "You weren't able to pull [coin] out fast enough, the machine ate it, string and all!") - QDEL_NULL(coin) - else + if(!usr.put_in_hands(coin)) + to_chat(usr, "You couldn't pull [coin] out because your hands are full!") + QDEL_NULL(coin) + to_chat(usr, "You successfully pull [coin] out before [src] could swallow it.") + coin = null QDEL_NULL(coin) - QDEL_NULL(bill) - - else if (!(R in product_records)) - vend_ready = 1 - message_admins("Vending machine exploit attempted by [ADMIN_LOOKUPFLW(usr)]!") - return - - if (R.amount <= 0) - to_chat(usr, "Sold out.") - vend_ready = 1 - return - else - R.amount-- - - if(((last_reply + 200) <= world.time) && vend_reply) - speak(vend_reply) - last_reply = world.time - - use_power(5) - if(icon_vend) //Show the vending animation if needed - flick(icon_vend,src) - var/vended = new R.product_path(get_turf(src)) - if(usr.CanReach(src)) - if(usr.put_in_hands(vended)) + else if(!(R in product_records)) + vend_ready = TRUE + message_admins("Vending machine exploit attempted by [ADMIN_LOOKUPFLW(usr)]!") + return + if(R.amount <= 0) + to_chat(usr, "Sold out.") + vend_ready = TRUE + return + else + R.amount-- + if(((last_reply + 200) <= world.time) && vend_reply) + speak(vend_reply) + last_reply = world.time + use_power(5) + if(icon_vend) //Show the vending animation if needed + flick(icon_vend,src) + var/vended = new R.product_path(get_turf(src)) + if(usr.CanReach(src) && usr.put_in_hands(vended)) to_chat(usr, "You take [R.name] out of the slot.") else to_chat(usr, "[capitalize(R.name)] falls onto the floor!") - else - to_chat(usr, "[capitalize(R.name)] falls onto the floor!") - SSblackbox.record_feedback("nested tally", "vending_machine_usage", 1, list("[type]", "[R.product_path]")) - vend_ready = 1 - - updateUsrDialog() - return - - else if(href_list["togglevoice"] && panel_open) - shut_up = !shut_up - - updateUsrDialog() - + + SSblackbox.record_feedback("nested tally", "vending_machine_usage", 1, list("[type]", "[R.product_path]")) + vend_ready = TRUE + return + if("takeoutcoin") + usr.put_in_hands(coin) + to_chat(usr, "You remove [coin] from [src].") + coin = null + return + + if("togglevoice") + if(panel_open) + shut_up = !shut_up + /obj/machinery/vending/process() if(stat & (BROKEN|NOPOWER)) - return + return PROCESS_KILL if(!active) return - if(seconds_electrified > 0) + if(seconds_electrified > MACHINE_NOT_ELECTRIFIED) seconds_electrified-- //Pitch to the people! Really sell it! @@ -511,7 +655,14 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C if(shoot_inventory && prob(shoot_inventory_chance)) throw_item() - +/** + * Speak the given message verbally + * + * Checks if the machine is powered and the message exists + * + * Arguments: + * * message - the message to speak + */ /obj/machinery/vending/proc/speak(message) if(stat & (BROKEN|NOPOWER)) return @@ -521,47 +672,61 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C say(message) /obj/machinery/vending/power_change() - if(stat & BROKEN) - icon_state = "[initial(icon_state)]-broken" - else - if(powered()) - icon_state = initial(icon_state) - stat &= ~NOPOWER - else - icon_state = "[initial(icon_state)]-off" - stat |= NOPOWER + . = ..() + if(powered()) + START_PROCESSING(SSmachines, src) //Somebody cut an important wire and now we're following a new definition of "pitch." +/** + * Throw an item from our internal inventory out in front of us + * + * This is called when we are hacked, it selects a random product from the records that has an amount > 0 + * This item is then created and tossed out in front of us with a visible message + */ /obj/machinery/vending/proc/throw_item() var/obj/throw_item = null - var/mob/living/target = locate() in view(7,src) + var/mob/living/target = locate() in view(7, src) if(!target) - return 0 - + return FALSE for(var/datum/data/vending_product/R in shuffle(product_records)) if(R.amount <= 0) //Try to use a record that actually has something to dump. continue var/dump_path = R.product_path if(!dump_path) continue - R.amount-- throw_item = new dump_path(loc) break if(!throw_item) - return 0 + return FALSE pre_throw(throw_item) throw_item.throw_at(target, 16, 3) visible_message("[src] launches [throw_item] at [target]!") - return 1 - + return TRUE +/** + * A callback called before an item is tossed out + * + * Override this if you need to do any special case handling + * + * Arguments: + * * I - obj/item being thrown + */ /obj/machinery/vending/proc/pre_throw(obj/item/I) return - -/obj/machinery/vending/proc/shock(mob/user, prb) - if(stat & (BROKEN|NOPOWER)) // unpowered, no shock +/** + * Shock the passed in user + * + * This checks we have power and that the passed in prob is passed, then generates some sparks + * and calls electrocute_mob on the user + * + * Arguments: + * * user - the user to shock + * * prb - probability the shock happens + */ +/obj/machinery/vending/proc/shock(mob/living/user, prb) + if(!istype(user) || stat & (BROKEN|NOPOWER)) // unpowered, no shock return FALSE if(!prob(prb)) return FALSE @@ -571,6 +736,15 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C return TRUE else return FALSE +/** + * Are we able to load the item passed in + * + * Arguments: + * * I - the item being loaded + * * user - the user doing the loading + */ +/obj/machinery/vending/proc/canLoadItem(obj/item/I, mob/user) + return FALSE /obj/machinery/vending/onTransitZ() return diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm index 14ce7a83b7..e663dca7ce 100644 --- a/code/modules/vending/games.dm +++ b/code/modules/vending/games.dm @@ -8,6 +8,8 @@ /obj/item/toy/cards/deck/cas = 3, /obj/item/toy/cards/deck/cas/black = 3) contraband = list(/obj/item/dice/fudge = 9) + premium = list(/obj/item/melee/skateboard/pro = 3, + /obj/item/melee/skateboard/hoverboard = 1) refill_canister = /obj/item/vending_refill/games /obj/item/vending_refill/games diff --git a/code/modules/vore/eating/belly_obj.dm b/code/modules/vore/eating/belly_obj.dm index 4917bd3dba..ca774ed1f6 100644 --- a/code/modules/vore/eating/belly_obj.dm +++ b/code/modules/vore/eating/belly_obj.dm @@ -558,7 +558,6 @@ to_chat(R,"Your attempt to escape [lowertext(name)] has failed!") to_chat(owner,"The attempt to escape from your [lowertext(name)] has failed!") return - return var/struggle_outer_message = pick(struggle_messages_outside) var/struggle_user_message = pick(struggle_messages_inside) diff --git a/code/modules/vore/eating/bellymodes.dm b/code/modules/vore/eating/bellymodes.dm index ea15892a30..965648eb5a 100644 --- a/code/modules/vore/eating/bellymodes.dm +++ b/code/modules/vore/eating/bellymodes.dm @@ -60,187 +60,181 @@ var/sound/pred_digest = sound(get_sfx("digest_pred")) var/sound/pred_death = sound(get_sfx("death_pred")) -///////////////////////////// DM_HOLD ///////////////////////////// - if(digest_mode == DM_HOLD) - return SSBELLIES_PROCESSED + switch(digest_mode) + if(DM_HOLD) + return SSBELLIES_PROCESSED -//////////////////////////// DM_DIGEST //////////////////////////// - else if(digest_mode == DM_DIGEST) - if(HAS_TRAIT(owner, TRAIT_PACIFISM)) //obvious. - digest_mode = DM_NOISY - return + if(DM_DIGEST) + if(HAS_TRAIT(owner, TRAIT_PACIFISM)) //obvious. + digest_mode = DM_NOISY + return - for (var/mob/living/M in contents) - if(prob(25)) - if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) - SEND_SOUND(M,prey_digest) - play_sound = pick(pred_digest) + for (var/mob/living/M in contents) + if(prob(25)) + if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) + SEND_SOUND(M,prey_digest) + play_sound = pick(pred_digest) - //Pref protection! - if (!M.digestable || M.absorbed) - continue + //Pref protection! + if (!M.digestable || M.absorbed) + continue + + //Person just died in guts! + if(M.stat == DEAD) + var/digest_alert_owner = pick(digest_messages_owner) + var/digest_alert_prey = pick(digest_messages_prey) + + //Replace placeholder vars + digest_alert_owner = replacetext(digest_alert_owner,"%pred",owner) + digest_alert_owner = replacetext(digest_alert_owner,"%prey",M) + digest_alert_owner = replacetext(digest_alert_owner,"%belly",lowertext(name)) + + digest_alert_prey = replacetext(digest_alert_prey,"%pred",owner) + digest_alert_prey = replacetext(digest_alert_prey,"%prey",M) + digest_alert_prey = replacetext(digest_alert_prey,"%belly",lowertext(name)) + + //Send messages + to_chat(owner, "[digest_alert_owner]") + to_chat(M, "[digest_alert_prey]") + M.visible_message("You watch as [owner]'s form loses its additions.") + + owner.nutrition += 400 // so eating dead mobs gives you *something*. + play_sound = pick(pred_death) + if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) + SEND_SOUND(M,prey_death) + M.stop_sound_channel(CHANNEL_PREYLOOP) + digestion_death(M) + owner.update_icons() + to_update = TRUE + continue + + + // Deal digestion damage (and feed the pred) + if(!(M.status_flags & GODMODE)) + M.adjustFireLoss(digest_burn) + owner.nutrition += 1 + + //Contaminate or gurgle items + var/obj/item/T = pick(touchable_items) + if(istype(T)) + if(istype(T,/obj/item/reagent_containers/food) || istype(T,/obj/item/organ)) + digest_item(T) + + if(DM_HEAL) + for (var/mob/living/M in contents) + if(prob(25)) + if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) + SEND_SOUND(M,prey_digest) + play_sound = pick(pred_digest) + if(M.stat != DEAD) + if(owner.nutrition >= NUTRITION_LEVEL_STARVING && (M.health < M.maxHealth)) + M.adjustBruteLoss(-3) + M.adjustFireLoss(-3) + owner.nutrition -= 5 + + //for when you just want people to squelch around + if(DM_NOISY) + if(prob(35)) + for(var/mob/M in contents) + if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) + SEND_SOUND(M,prey_digest) + play_sound = pick(pred_digest) + + + if(DM_ABSORB) + + for (var/mob/living/M in contents) + + if(prob(10))//Less often than gurgles. People might leave this on forever. + if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) + SEND_SOUND(M,prey_digest) + play_sound = pick(pred_digest) + + if(M.absorbed) + continue + + if(M.nutrition >= 100) //Drain them until there's no nutrients left. Slowly "absorb" them. + var/oldnutrition = (M.nutrition * 0.05) + M.nutrition = (M.nutrition * 0.95) + owner.nutrition += oldnutrition + else if(M.nutrition < 100) //When they're finally drained. + absorb_living(M) + to_update = TRUE + + if(DM_UNABSORB) + + for (var/mob/living/M in contents) + if(M.absorbed && owner.nutrition >= 100) + M.absorbed = FALSE + to_chat(M,"You suddenly feel solid again ") + to_chat(owner,"You feel like a part of you is missing.") + owner.nutrition -= 100 + to_update = TRUE + + //because dragons need snowflake guts + if(DM_DRAGON) + if(HAS_TRAIT(owner, TRAIT_PACIFISM)) //imagine var editing this when you're a pacifist. smh + digest_mode = DM_NOISY + return + + for (var/mob/living/M in contents) + if(prob(55)) //if you're hearing this, you're a vore ho anyway. + if((world.time + NORMIE_HEARCHECK) > last_hearcheck) + LAZYCLEARLIST(hearing_mobs) + for(var/mob/living/H in get_hearers_in_view(3, owner)) + if(!H.client || !(H.client.prefs.cit_toggles & DIGESTION_NOISES)) + continue + LAZYADD(hearing_mobs, H) + last_hearcheck = world.time + for(var/mob/living/H in hearing_mobs) + if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) + SEND_SOUND(H,pred_digest) + else if(H?.client && (H in contents)) + SEND_SOUND(H,prey_digest) + + //No digestion protection for megafauna. //Person just died in guts! - if(M.stat == DEAD) - var/digest_alert_owner = pick(digest_messages_owner) - var/digest_alert_prey = pick(digest_messages_prey) + if(M.stat == DEAD) + var/digest_alert_owner = pick(digest_messages_owner) + var/digest_alert_prey = pick(digest_messages_prey) - //Replace placeholder vars - digest_alert_owner = replacetext(digest_alert_owner,"%pred",owner) - digest_alert_owner = replacetext(digest_alert_owner,"%prey",M) - digest_alert_owner = replacetext(digest_alert_owner,"%belly",lowertext(name)) + //Replace placeholder vars + digest_alert_owner = replacetext(digest_alert_owner,"%pred",owner) + digest_alert_owner = replacetext(digest_alert_owner,"%prey",M) + digest_alert_owner = replacetext(digest_alert_owner,"%belly",lowertext(name)) - digest_alert_prey = replacetext(digest_alert_prey,"%pred",owner) - digest_alert_prey = replacetext(digest_alert_prey,"%prey",M) - digest_alert_prey = replacetext(digest_alert_prey,"%belly",lowertext(name)) + digest_alert_prey = replacetext(digest_alert_prey,"%pred",owner) + digest_alert_prey = replacetext(digest_alert_prey,"%prey",M) + digest_alert_prey = replacetext(digest_alert_prey,"%belly",lowertext(name)) - //Send messages - to_chat(owner, "[digest_alert_owner]") - to_chat(M, "[digest_alert_prey]") - M.visible_message("You watch as [owner]'s form loses its additions.") - - owner.nutrition += 400 // so eating dead mobs gives you *something*. - play_sound = pick(pred_death) - if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) - SEND_SOUND(M,prey_death) - M.stop_sound_channel(CHANNEL_PREYLOOP) - digestion_death(M) - owner.update_icons() - to_update = TRUE - continue + //Send messages + to_chat(owner, "[digest_alert_owner]") + to_chat(M, "[digest_alert_prey]") + M.visible_message("You watch as [owner]'s guts loudly rumble as it finishes off a meal.") + play_sound = pick(pred_death) + if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) + SEND_SOUND(M,prey_death) + M.spill_organs(FALSE,TRUE,TRUE) + M.stop_sound_channel(CHANNEL_PREYLOOP) + digestion_death(M) + owner.update_icons() + to_update = TRUE + continue - // Deal digestion damage (and feed the pred) - if(!(M.status_flags & GODMODE)) - M.adjustFireLoss(digest_burn) - owner.nutrition += 1 + // Deal digestion damage (and feed the pred) + if(!(M.status_flags & GODMODE)) + M.adjustFireLoss(digest_burn) + M.adjustToxLoss(2) // something something plasma based acids + M.adjustCloneLoss(1) // eventually this'll kill you if you're healing everything else, you nerds. + //Contaminate or gurgle items + var/obj/item/T = pick(touchable_items) + if(istype(T)) + if(istype(T,/obj/item/reagent_containers/food) || istype(T,/obj/item/organ)) + digest_item(T) - //Contaminate or gurgle items - var/obj/item/T = pick(touchable_items) - if(istype(T)) - if(istype(T,/obj/item/reagent_containers/food) || istype(T,/obj/item/organ)) - digest_item(T) - -///////////////////////////// DM_HEAL ///////////////////////////// - if(digest_mode == DM_HEAL) - for (var/mob/living/M in contents) - if(prob(25)) - if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) - SEND_SOUND(M,prey_digest) - play_sound = pick(pred_digest) - if(M.stat != DEAD) - if(owner.nutrition >= NUTRITION_LEVEL_STARVING && (M.health < M.maxHealth)) - M.adjustBruteLoss(-3) - M.adjustFireLoss(-3) - owner.nutrition -= 5 - -////////////////////////// DM_NOISY ///////////////////////////////// -//for when you just want people to squelch around - if(digest_mode == DM_NOISY) - if(prob(35)) - for(var/mob/M in contents) - if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) - SEND_SOUND(M,prey_digest) - play_sound = pick(pred_digest) - - -//////////////////////////// DM_ABSORB //////////////////////////// - else if(digest_mode == DM_ABSORB) - - for (var/mob/living/M in contents) - - if(prob(10))//Less often than gurgles. People might leave this on forever. - if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) - SEND_SOUND(M,prey_digest) - play_sound = pick(pred_digest) - - if(M.absorbed) - continue - - if(M.nutrition >= 100) //Drain them until there's no nutrients left. Slowly "absorb" them. - var/oldnutrition = (M.nutrition * 0.05) - M.nutrition = (M.nutrition * 0.95) - owner.nutrition += oldnutrition - else if(M.nutrition < 100) //When they're finally drained. - absorb_living(M) - to_update = TRUE - -//////////////////////////// DM_UNABSORB //////////////////////////// - else if(digest_mode == DM_UNABSORB) - - for (var/mob/living/M in contents) - if(M.absorbed && owner.nutrition >= 100) - M.absorbed = FALSE - to_chat(M,"You suddenly feel solid again ") - to_chat(owner,"You feel like a part of you is missing.") - owner.nutrition -= 100 - to_update = TRUE - -//////////////////////////DM_DRAGON ///////////////////////////////////// -//because dragons need snowflake guts - if(digest_mode == DM_DRAGON) - if(HAS_TRAIT(owner, TRAIT_PACIFISM)) //imagine var editing this when you're a pacifist. smh - digest_mode = DM_NOISY - return - - for (var/mob/living/M in contents) - if(prob(55)) //if you're hearing this, you're a vore ho anyway. - if((world.time + NORMIE_HEARCHECK) > last_hearcheck) - LAZYCLEARLIST(hearing_mobs) - for(var/mob/living/H in get_hearers_in_view(3, owner)) - if(!H.client || !(H.client.prefs.cit_toggles & DIGESTION_NOISES)) - continue - LAZYADD(hearing_mobs, H) - last_hearcheck = world.time - for(var/mob/living/H in hearing_mobs) - if(H && H.client && (isturf(H.loc) || (H.loc != src.contents))) - SEND_SOUND(H,pred_digest) - else if(H?.client && (H in contents)) - SEND_SOUND(H,prey_digest) - - //No digestion protection for megafauna. - - //Person just died in guts! - if(M.stat == DEAD) - var/digest_alert_owner = pick(digest_messages_owner) - var/digest_alert_prey = pick(digest_messages_prey) - - //Replace placeholder vars - digest_alert_owner = replacetext(digest_alert_owner,"%pred",owner) - digest_alert_owner = replacetext(digest_alert_owner,"%prey",M) - digest_alert_owner = replacetext(digest_alert_owner,"%belly",lowertext(name)) - - digest_alert_prey = replacetext(digest_alert_prey,"%pred",owner) - digest_alert_prey = replacetext(digest_alert_prey,"%prey",M) - digest_alert_prey = replacetext(digest_alert_prey,"%belly",lowertext(name)) - - //Send messages - to_chat(owner, "[digest_alert_owner]") - to_chat(M, "[digest_alert_prey]") - M.visible_message("You watch as [owner]'s guts loudly rumble as it finishes off a meal.") - play_sound = pick(pred_death) - if(M && M.client && M.client.prefs.cit_toggles & DIGESTION_NOISES) - SEND_SOUND(M,prey_death) - M.spill_organs(FALSE,TRUE,TRUE) - M.stop_sound_channel(CHANNEL_PREYLOOP) - digestion_death(M) - owner.update_icons() - to_update = TRUE - continue - - - // Deal digestion damage (and feed the pred) - if(!(M.status_flags & GODMODE)) - M.adjustFireLoss(digest_burn) - M.adjustToxLoss(2) // something something plasma based acids - M.adjustCloneLoss(1) // eventually this'll kill you if you're healing everything else, you nerds. - //Contaminate or gurgle items - var/obj/item/T = pick(touchable_items) - if(istype(T)) - if(istype(T,/obj/item/reagent_containers/food) || istype(T,/obj/item/organ)) - digest_item(T) - -/////////////////////////// Make any noise /////////////////////////// + /////////////////////////// Make any noise /////////////////////////// if(play_sound) if((world.time + NORMIE_HEARCHECK) > last_hearcheck) LAZYCLEARLIST(hearing_mobs) @@ -252,7 +246,7 @@ for(var/mob/M in hearing_mobs) //so we don't fill the whole room with the sound effect if(M && M.client && (isturf(M.loc) || (M.loc != src.contents))) //to avoid people on the inside getting the outside sounds and their direct sounds + built in sound pref check M.playsound_local(owner.loc, play_sound, vol = 75, vary = 1, falloff = VORE_SOUND_FALLOFF) - //these are all external sound triggers now, so it's ok. + //these are all external sound triggers now, so it's ok. if(to_update) for(var/mob/living/M in contents) if(M.client) @@ -260,4 +254,4 @@ if(owner.client) owner.updateVRPanel() - return SSBELLIES_PROCESSED \ No newline at end of file + return SSBELLIES_PROCESSED diff --git a/code/modules/vore/trycatch.dm b/code/modules/vore/trycatch.dm index 2adf6e0cf6..d4b1ac2c05 100644 --- a/code/modules/vore/trycatch.dm +++ b/code/modules/vore/trycatch.dm @@ -16,15 +16,14 @@ The proc you're attemping should return nonzero values on success. try if(!callon || !procname) CRASH("attempt_vr: Invalid obj/proc: [callon]/[procname]") - return 0 var/result = call(callon,procname)(arglist(args)) return result catch(var/exception/e) - CRASH("attempt_vr runtimed when calling [procname] on [callon].") - CRASH("attempt_vr catch: [e] on [e.file]:[e.line]") + stack_trace("attempt_vr runtimed when calling [procname] on [callon].") + stack_trace("attempt_vr catch: [e] on [e.file]:[e.line]") return 0 /* @@ -46,17 +45,16 @@ The hooks you're calling should return nonzero values on success. var/hook_path = text2path("/hook/[hook]") if(!hook_path) CRASH("hook_vr: Invalid hook '/hook/[hook]' called.") - return 0 var/caller = new hook_path var/status = 1 for(var/P in typesof("[hook_path]/proc")) if(!call(caller, P)(arglist(args))) - CRASH("hook_vr: Hook '[P]' failed or runtimed.") + stack_trace("hook_vr: Hook '[P]' failed or runtimed.") status = 0 return status catch(var/exception/e) - CRASH("hook_vr itself failed or runtimed. Exception below.") - CRASH("hook_vr catch: [e] on [e.file]:[e.line]") \ No newline at end of file + stack_trace("hook_vr itself failed or runtimed. Exception below.") + stack_trace("hook_vr catch: [e] on [e.file]:[e.line]") diff --git a/config/config.txt b/config/config.txt index fd5dc968fb..35af0e848b 100644 --- a/config/config.txt +++ b/config/config.txt @@ -510,13 +510,16 @@ DEFAULT_VIEW 21x15 ### FAIL2TOPIC: ### Automated IP bans for world/Topic() spammers +### NOTE FOR WINDOWS HOSTS: This requires you to be running dreamdaemon as an administrator for it to work at all. TGS3 handles this automatically, and honestly there's no reason not to be using TGS3 if you're hosting on Windows. +### NOTE FOR LINUX HOSTS: This requires manual setup of iptables. Beware that improper configuration of this can and will irreversibly fuck up a server, so please don't tinker with it if you don't know what you're doing. ## Enabled -FAIL2TOPIC_ENABLED +#FAIL2TOPIC_ENABLED ## Minimum wait time in deciseconds between valid requests FAIL2TOPIC_RATE_LIMIT 10 ## Number of requests after breaching rate limit that triggers a ban FAIL2TOPIC_MAX_FAILS 5 ## Firewall rule name used on physical server +## FOR LINUX HOSTS: This is used as the chain name. The iptables chain doesn't get created or hooked up to INPUT automatically, so you'll have to get that set up yourself. Recommended name: BYOND FAIL2TOPIC_RULE_NAME _dd_fail2topic ## Enable automatic profiling - Byond 513.1506 and newer only. diff --git a/dependencies.sh b/dependencies.sh index 4a950af314..83254509b9 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -11,7 +11,7 @@ export BYOND_MINOR=${LIST[1]} unset LIST #rust_g git tag -export RUST_G_VERSION=0.4.2 +export RUST_G_VERSION=0.4.3 #bsql git tag export BSQL_VERSION=v1.4.0.0 @@ -23,4 +23,4 @@ export NODE_VERSION=12 export PHP_VERSION=5.6 # SpacemanDMM git tag -export SPACEMAN_DMM_VERSION=suite-1.3 +export SPACEMAN_DMM_VERSION=suite-1.4 diff --git a/html/changelogs/AutoChangeLog-pr-10732.yml b/html/changelogs/AutoChangeLog-pr-10732.yml new file mode 100644 index 0000000000..8d6746bbd4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10732.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - rscadd: "Traitor chaplains can now become neutered versions of cults." diff --git a/html/changelogs/AutoChangeLog-pr-10891.yml b/html/changelogs/AutoChangeLog-pr-10891.yml new file mode 100644 index 0000000000..cac5c5312d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10891.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "Most crate types can now be made, some costing more do to function over fashion" diff --git a/html/changelogs/AutoChangeLog-pr-10986.yml b/html/changelogs/AutoChangeLog-pr-10986.yml new file mode 100644 index 0000000000..bac7b9692a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10986.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - rscadd: "wall walking boots" diff --git a/html/changelogs/AutoChangeLog-pr-11275.yml b/html/changelogs/AutoChangeLog-pr-11275.yml new file mode 100644 index 0000000000..5a3ce31631 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11275.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - rscadd: "Reenabled the swarmers event. Also blacklisted another dozen other machineries and structures that may be critical to the shift or station integrity from swarmers' HUNGER for materials." + - bugfix: "Fixed find_safe_turfs() searching for turfs with concentration of oxygen lower than 16 rather higher." diff --git a/html/changelogs/AutoChangeLog-pr-11379.yml b/html/changelogs/AutoChangeLog-pr-11379.yml new file mode 100644 index 0000000000..319d4b2140 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11379.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - refactor: "refactored polychromic clothing into an element." diff --git a/html/changelogs/AutoChangeLog-pr-11604.yml b/html/changelogs/AutoChangeLog-pr-11604.yml new file mode 100644 index 0000000000..571876cbba --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11604.yml @@ -0,0 +1,6 @@ +author: "dapnee" +delete-after: True +changes: + - rscadd: "plant disk sorter in botany, bounty console for the rest of cargo, a missing air alarm in the incinerator" + - tweak: "fixed a decal in front of security, moved an AIR alarm so it doesn't look awful to ghosts/AI, asteroids don't delete air anymore, fixed more active turfs, the buttons in the bridge \"should\" work now, HoP and cargo desks should be secure now" + - rscdel: "quarters that found their way out of the quartermaster's back room" diff --git a/html/changelogs/AutoChangeLog-pr-11669.yml b/html/changelogs/AutoChangeLog-pr-11669.yml new file mode 100644 index 0000000000..8d33b22a71 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11669.yml @@ -0,0 +1,5 @@ +author: "BuffEngineering" +delete-after: True +changes: + - bugfix: "You may no longer summon plasteel from the door dimension." + - tweak: "High security airlocks are now 33% more materially efficient!" diff --git a/html/changelogs/AutoChangeLog-pr-11676.yml b/html/changelogs/AutoChangeLog-pr-11676.yml new file mode 100644 index 0000000000..c4f44ab965 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11676.yml @@ -0,0 +1,7 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscadd: "A new, much more barebones holding facility for contractors." + - rscdel: "Energy nets are gone." + - tweak: "Various ghost roles are now easier to ghost as." + - tweak: "The candles in the dojo no longer make the place hotter and hotter over time." diff --git a/html/changelogs/AutoChangeLog-pr-11681.yml b/html/changelogs/AutoChangeLog-pr-11681.yml new file mode 100644 index 0000000000..4ef6b60aeb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11681.yml @@ -0,0 +1,5 @@ +author: "PersianXerxes" +delete-after: True +changes: + - rscadd: "TGUI Next UIs for: chem heaters, chem masters, chem dispensers, and sleepers" + - code_imp: "Reworked Chem Master code" diff --git a/html/changelogs/AutoChangeLog-pr-11682.yml b/html/changelogs/AutoChangeLog-pr-11682.yml new file mode 100644 index 0000000000..1d8d3c618c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11682.yml @@ -0,0 +1,5 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscdel: "No more station integrity goal" + - tweak: "Upload-hacked-law goal only picksif there's an AI to upload to" diff --git a/html/changelogs/AutoChangeLog-pr-11683.yml b/html/changelogs/AutoChangeLog-pr-11683.yml new file mode 100644 index 0000000000..eefd810536 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11683.yml @@ -0,0 +1,5 @@ +author: "timothyteakettle" +delete-after: True +changes: + - rscadd: "add new holodeck wrestling belt which lets you use moves only on those also wearing it" + - rscadd: "add new holodeck map featuring the holodeck wrestling belt" diff --git a/html/changelogs/AutoChangeLog-pr-11692.yml b/html/changelogs/AutoChangeLog-pr-11692.yml new file mode 100644 index 0000000000..9b88e96350 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11692.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - bugfix: "made color picking for character appearance show the colors when you pick them" diff --git a/html/changelogs/AutoChangeLog-pr-11693.yml b/html/changelogs/AutoChangeLog-pr-11693.yml new file mode 100644 index 0000000000..8ece04fb49 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11693.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - spellcheck: "Spec Ops crate no longer talks about a \"Null Crate\" what ever that is" diff --git a/html/changelogs/AutoChangeLog-pr-11697.yml b/html/changelogs/AutoChangeLog-pr-11697.yml new file mode 100644 index 0000000000..d8026366cb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11697.yml @@ -0,0 +1,6 @@ +author: "actioninja" +delete-after: True +changes: + - rscadd: "Washing machines now support arbitrary dye color" + - rscadd: "Washing machines now dye nearly every item." + - refactor: "lots of backend changes to clothing overlays, report any issues" diff --git a/html/changelogs/AutoChangeLog-pr-11698.yml b/html/changelogs/AutoChangeLog-pr-11698.yml new file mode 100644 index 0000000000..1538c3a532 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11698.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "After years of visual agony, the Curse of The Floating Disembodied Phallus has come to an end." diff --git a/html/changelogs/AutoChangeLog-pr-11700.yml b/html/changelogs/AutoChangeLog-pr-11700.yml new file mode 100644 index 0000000000..132e722229 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11700.yml @@ -0,0 +1,4 @@ +author: "kiwedespars" +delete-after: True +changes: + - rscadd: "Added paper masks." diff --git a/html/changelogs/AutoChangeLog-pr-11701.yml b/html/changelogs/AutoChangeLog-pr-11701.yml new file mode 100644 index 0000000000..f993c912d3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11701.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - tweak: "The megafauna's hitbox doesn't include 0 alpha sections anymore." diff --git a/html/changelogs/AutoChangeLog-pr-11708.yml b/html/changelogs/AutoChangeLog-pr-11708.yml new file mode 100644 index 0000000000..7ead7721bf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11708.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - tweak: "the sergal markings" diff --git a/html/changelogs/AutoChangeLog-pr-11719.yml b/html/changelogs/AutoChangeLog-pr-11719.yml new file mode 100644 index 0000000000..60a30ba092 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11719.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Intellectual property infringment is not cool." diff --git a/html/changelogs/AutoChangeLog-pr-11807.yml b/html/changelogs/AutoChangeLog-pr-11807.yml new file mode 100644 index 0000000000..be368dc57a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11807.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - code_imp: "datum/pipeline return_air stack trace now gives a reference so it's actually marginally useful if caught in round." diff --git a/html/changelogs/AutoChangeLog-pr-11811.yml b/html/changelogs/AutoChangeLog-pr-11811.yml new file mode 100644 index 0000000000..010a0caa86 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11811.yml @@ -0,0 +1,6 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Liver failure is back!" + - tweak: "standarized a few (prefs off) side effects from enlargment chems on livers to do organ damage instead without the blood volume whackiness." + - tweak: "High liver damage now slows mobs down." diff --git a/html/changelogs/AutoChangeLog-pr-11812.yml b/html/changelogs/AutoChangeLog-pr-11812.yml new file mode 100644 index 0000000000..ca452b1d23 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11812.yml @@ -0,0 +1,4 @@ +author: "Auris456852" +delete-after: True +changes: + - rscadd: "Added printer sound for admins that plays when someone messages Centcomm or the Syndicate. Just like RP!" diff --git a/html/changelogs/AutoChangeLog-pr-11814.yml b/html/changelogs/AutoChangeLog-pr-11814.yml new file mode 100644 index 0000000000..3cb85d8668 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11814.yml @@ -0,0 +1,5 @@ +author: "kappa-sama" +delete-after: True +changes: + - balance: "doubles the Stam damage of nonlethal krav stompers" + - bugfix: "no longer Krav Maga stomp people that are standing" diff --git a/html/changelogs/AutoChangeLog-pr-11816.yml b/html/changelogs/AutoChangeLog-pr-11816.yml new file mode 100644 index 0000000000..8ca4da37de --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11816.yml @@ -0,0 +1,4 @@ +author: "necromanceranne" +delete-after: True +changes: + - bugfix: "Sleeping Carp and Rising Bass now dodge. Again." diff --git a/html/changelogs/AutoChangeLog-pr-11817.yml b/html/changelogs/AutoChangeLog-pr-11817.yml new file mode 100644 index 0000000000..9d9e0a779b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11817.yml @@ -0,0 +1,5 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscadd: "Latejoin changelings for dynamic" + - bugfix: "Average threat calculation works now" diff --git a/html/changelogs/AutoChangeLog-pr-11819.yml b/html/changelogs/AutoChangeLog-pr-11819.yml new file mode 100644 index 0000000000..6619f26aba --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11819.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Wizard robes & co work again now." + - bugfix: "Fixed some spell casting message spam." diff --git a/html/changelogs/AutoChangeLog-pr-11823.yml b/html/changelogs/AutoChangeLog-pr-11823.yml new file mode 100644 index 0000000000..b4ba01d44b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11823.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Contamination is back." diff --git a/html/changelogs/AutoChangeLog-pr-11824.yml b/html/changelogs/AutoChangeLog-pr-11824.yml new file mode 100644 index 0000000000..2b91fc5564 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11824.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "fixed yet another few airless issues with the space hermit ruin." diff --git a/html/changelogs/AutoChangeLog-pr-11834.yml b/html/changelogs/AutoChangeLog-pr-11834.yml new file mode 100644 index 0000000000..05d1b245b1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11834.yml @@ -0,0 +1,5 @@ +author: "Bhijn" +delete-after: True +changes: + - server: "Fail2Topic now supports Linux. Do beware that this requires some sysop experience to properly set up!" + - config: "Fail2Topic is now disabled by default, and the out-of-the-box config files have been updated to be a little more detailed." diff --git a/icons/mob/accessories.dmi b/icons/mob/accessories.dmi deleted file mode 100644 index cda7cca404..0000000000 Binary files a/icons/mob/accessories.dmi and /dev/null differ diff --git a/icons/mob/actions/actions_vehicle.dmi b/icons/mob/actions/actions_vehicle.dmi index cee683c60d..0d8d322653 100644 Binary files a/icons/mob/actions/actions_vehicle.dmi and b/icons/mob/actions/actions_vehicle.dmi differ diff --git a/icons/mob/actions/backgrounds.dmi b/icons/mob/actions/backgrounds.dmi index 3697fe4ff5..07839588ce 100644 Binary files a/icons/mob/actions/backgrounds.dmi and b/icons/mob/actions/backgrounds.dmi differ diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi deleted file mode 100644 index 947ccb7924..0000000000 Binary files a/icons/mob/back.dmi and /dev/null differ diff --git a/icons/mob/clothing/accessories.dmi b/icons/mob/clothing/accessories.dmi new file mode 100644 index 0000000000..c13b6a50bc Binary files /dev/null and b/icons/mob/clothing/accessories.dmi differ diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi new file mode 100644 index 0000000000..66a47d21f2 Binary files /dev/null and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/belt.dmi b/icons/mob/clothing/belt.dmi similarity index 100% rename from icons/mob/belt.dmi rename to icons/mob/clothing/belt.dmi diff --git a/icons/mob/belt_mirror.dmi b/icons/mob/clothing/belt_mirror.dmi similarity index 100% rename from icons/mob/belt_mirror.dmi rename to icons/mob/clothing/belt_mirror.dmi diff --git a/icons/mob/custom_w.dmi b/icons/mob/clothing/custom_w.dmi similarity index 100% rename from icons/mob/custom_w.dmi rename to icons/mob/clothing/custom_w.dmi diff --git a/icons/mob/eyes.dmi b/icons/mob/clothing/eyes.dmi similarity index 100% rename from icons/mob/eyes.dmi rename to icons/mob/clothing/eyes.dmi diff --git a/icons/mob/feet.dmi b/icons/mob/clothing/feet.dmi similarity index 79% rename from icons/mob/feet.dmi rename to icons/mob/clothing/feet.dmi index 578970a21c..1e09dce605 100644 Binary files a/icons/mob/feet.dmi and b/icons/mob/clothing/feet.dmi differ diff --git a/icons/mob/feet_digi.dmi b/icons/mob/clothing/feet_digi.dmi similarity index 57% rename from icons/mob/feet_digi.dmi rename to icons/mob/clothing/feet_digi.dmi index fbc105b634..626c67a71c 100644 Binary files a/icons/mob/feet_digi.dmi and b/icons/mob/clothing/feet_digi.dmi differ diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi new file mode 100644 index 0000000000..74aabf6021 Binary files /dev/null and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/clothing/head.dmi similarity index 95% rename from icons/mob/head.dmi rename to icons/mob/clothing/head.dmi index c499c236e3..f2ea9fa55d 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/head_muzzled.dmi b/icons/mob/clothing/head_muzzled.dmi similarity index 100% rename from icons/mob/head_muzzled.dmi rename to icons/mob/clothing/head_muzzled.dmi diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi new file mode 100644 index 0000000000..ee36c59209 Binary files /dev/null and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/mask_muzzled.dmi b/icons/mob/clothing/mask_muzzled.dmi similarity index 100% rename from icons/mob/mask_muzzled.dmi rename to icons/mob/clothing/mask_muzzled.dmi diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi new file mode 100644 index 0000000000..68fde7bff9 Binary files /dev/null and b/icons/mob/clothing/neck.dmi differ diff --git a/icons/mob/restraints.dmi b/icons/mob/clothing/restraints.dmi similarity index 100% rename from icons/mob/restraints.dmi rename to icons/mob/clothing/restraints.dmi diff --git a/icons/mob/suit.dmi b/icons/mob/clothing/suit.dmi similarity index 99% rename from icons/mob/suit.dmi rename to icons/mob/clothing/suit.dmi index 195e4ecd67..a2ea222a68 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/suit_digi.dmi b/icons/mob/clothing/suit_digi.dmi similarity index 99% rename from icons/mob/suit_digi.dmi rename to icons/mob/clothing/suit_digi.dmi index 67ad9f7e1a..5287bac43c 100644 Binary files a/icons/mob/suit_digi.dmi and b/icons/mob/clothing/suit_digi.dmi differ diff --git a/icons/mob/taur_canine.dmi b/icons/mob/clothing/taur_canine.dmi similarity index 100% rename from icons/mob/taur_canine.dmi rename to icons/mob/clothing/taur_canine.dmi diff --git a/icons/mob/taur_hooved.dmi b/icons/mob/clothing/taur_hooved.dmi similarity index 100% rename from icons/mob/taur_hooved.dmi rename to icons/mob/clothing/taur_hooved.dmi diff --git a/icons/mob/taur_naga.dmi b/icons/mob/clothing/taur_naga.dmi similarity index 100% rename from icons/mob/taur_naga.dmi rename to icons/mob/clothing/taur_naga.dmi diff --git a/icons/mob/underwear.dmi b/icons/mob/clothing/underwear.dmi similarity index 100% rename from icons/mob/underwear.dmi rename to icons/mob/clothing/underwear.dmi diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi new file mode 100644 index 0000000000..4485a9a5f8 Binary files /dev/null and b/icons/mob/clothing/uniform.dmi differ diff --git a/icons/mob/uniform_digi.dmi b/icons/mob/clothing/uniform_digi.dmi similarity index 99% rename from icons/mob/uniform_digi.dmi rename to icons/mob/clothing/uniform_digi.dmi index 80e8f80b94..6827581b85 100644 Binary files a/icons/mob/uniform_digi.dmi and b/icons/mob/clothing/uniform_digi.dmi differ diff --git a/icons/mob/hands.dmi b/icons/mob/hands.dmi deleted file mode 100644 index e7068a1854..0000000000 Binary files a/icons/mob/hands.dmi and /dev/null differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 4ca4a351c6..1cd090a3e9 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 8546a78a73..24c9a2d777 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index 2fdb9b88d2..528fd42d23 100644 Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index dc8d8a4c3f..5bf347fabf 100644 Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi deleted file mode 100644 index da61ca93be..0000000000 Binary files a/icons/mob/mask.dmi and /dev/null differ diff --git a/icons/mob/neck.dmi b/icons/mob/neck.dmi deleted file mode 100644 index d899950b79..0000000000 Binary files a/icons/mob/neck.dmi and /dev/null differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi deleted file mode 100644 index 1845e75d26..0000000000 Binary files a/icons/mob/uniform.dmi and /dev/null differ diff --git a/icons/obj/bodybag.dmi b/icons/obj/bodybag.dmi index 7fcc193ad6..c3267d3fc9 100644 Binary files a/icons/obj/bodybag.dmi and b/icons/obj/bodybag.dmi differ diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 76094938e8..aea15e2e39 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ diff --git a/icons/obj/clothing/cloaks.dmi b/icons/obj/clothing/cloaks.dmi index dd1ae7d727..6f4de62cc0 100644 Binary files a/icons/obj/clothing/cloaks.dmi and b/icons/obj/clothing/cloaks.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index e937842275..d53f53c029 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 07d9c8cee6..2e0906ea20 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 64e165213d..13f678f53a 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi index ea44ae0a7c..622f43ea56 100644 Binary files a/icons/obj/clothing/neck.dmi and b/icons/obj/clothing/neck.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index bd8d52a1e6..c4e000b700 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 530cd61e6f..607c26bb62 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index edcd2ff9b6..dfebe38155 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi index 3d382d25b3..7ed9244ea4 100644 Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ diff --git a/icons/obj/glass_ware.dmi b/icons/obj/glass_ware.dmi new file mode 100644 index 0000000000..7b720836cc Binary files /dev/null and b/icons/obj/glass_ware.dmi differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index ba8111bb00..e54f55ed46 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index acf6bb4021..6ee7873469 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ diff --git a/icons/obj/module.dmi b/icons/obj/module.dmi index ace24db5ff..a647bebd57 100644 Binary files a/icons/obj/module.dmi and b/icons/obj/module.dmi differ diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 2de24e2499..09568ebea1 100644 Binary files a/icons/obj/tiles.dmi and b/icons/obj/tiles.dmi differ diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index 67079de3e2..8d5d9208ab 100644 Binary files a/icons/obj/vehicles.dmi and b/icons/obj/vehicles.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 87d5e88cc9..c8675209c4 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/icons/turf/mining.dmi b/icons/turf/mining.dmi index 6561438228..335cff453e 100644 Binary files a/icons/turf/mining.dmi and b/icons/turf/mining.dmi differ diff --git a/icons/turf/smoothrocks.dmi b/icons/turf/smoothrocks.dmi index 20314cff5b..ba2bbce955 100644 Binary files a/icons/turf/smoothrocks.dmi and b/icons/turf/smoothrocks.dmi differ diff --git a/icons/turf/vgstation_decals.dmi b/icons/turf/vgstation_decals.dmi new file mode 100644 index 0000000000..4f9d52c0cd Binary files /dev/null and b/icons/turf/vgstation_decals.dmi differ diff --git a/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm b/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm index 44b8067876..6c9f12a852 100644 --- a/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm +++ b/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm @@ -2,7 +2,7 @@ name = "shock collar" desc = "A reinforced metal collar. It seems to have some form of wiring near the front. Strange.." icon = 'modular_citadel/icons/obj/clothing/cit_neck.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/neck.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/citadel/neck.dmi' icon_state = "shockcollar" item_state = "shockcollar" body_parts_covered = NECK diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index 7705dcafd1..8fda73b199 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -302,10 +302,21 @@ if(!S || S.icon_state == "none") continue var/aroused_state = G.aroused_state && S.alt_aroused + var/accessory_icon = S.icon + var/do_center = S.center + var/dim_x = S.dimension_x + var/dim_y = S.dimension_y + if(G.genital_flags & GENITAL_CAN_TAUR && S.taur_icon && (!S.feat_taur || dna.features[S.feat_taur]) && dna.species.mutant_bodyparts["taur"]) + var/datum/sprite_accessory/taur/T = GLOB.taur_list[dna.features["taur"]] + if(T?.taur_mode & S.accepted_taurs) + accessory_icon = S.taur_icon + do_center = TRUE + dim_x = S.taur_dimension_x + dim_y = S.taur_dimension_y - var/mutable_appearance/genital_overlay = mutable_appearance(S.icon, layer = -layer) - if(S.center) - genital_overlay = center_image(genital_overlay, S.dimension_x, S.dimension_y) + var/mutable_appearance/genital_overlay = mutable_appearance(accessory_icon, layer = -layer) + if(do_center) + genital_overlay = center_image(genital_overlay, dim_x, dim_y) if(dna.species.use_skintones && dna.features["genitals_use_skintone"]) genital_overlay.color = "#[skintone2hex(skin_tone)]" @@ -353,11 +364,10 @@ if(ishuman(src) && dna.species.id == "human") dna.features["genitals_use_skintone"] = TRUE dna.species.use_skintones = TRUE - if(MUTCOLORS) - if(src.dna.species.fixed_mut_color) - dna.features["cock_color"] = "[dna.species.fixed_mut_color]" - dna.features["breasts_color"] = "[dna.species.fixed_mut_color]" - return + if(src.dna.species.fixed_mut_color) + dna.features["cock_color"] = "[dna.species.fixed_mut_color]" + dna.features["breasts_color"] = "[dna.species.fixed_mut_color]" + return //So people who haven't set stuff up don't get rainbow surprises. dna.features["cock_color"] = "[dna.features["mcolor"]]" dna.features["breasts_color"] = "[dna.features["mcolor"]]" diff --git a/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm b/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm index 92c643c4bd..6bbe947f54 100644 --- a/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm +++ b/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm @@ -1,5 +1,10 @@ /datum/sprite_accessory var/alt_aroused = FALSE //CIT CODE if this is TRUE, then the genitals will use an alternate icon_state when aroused. + var/taur_icon //leave null if the genital doesn't have a taur counterpart. + var/accepted_taurs = STYLE_HOOF_TAURIC|STYLE_PAW_TAURIC //Types that match with the accessory. + var/feat_taur //the text string of the dna feature to check for those who want to opt out. + var/taur_dimension_y = 32 + var/taur_dimension_x = 32 //DICKS,COCKS,PENISES,WHATEVER YOU WANT TO CALL THEM @@ -8,6 +13,7 @@ name = "penis" //the preview name of the accessory color_src = "cock_color" alt_aroused = TRUE + feat_taur = "cock_taur" /datum/sprite_accessory/penis/human icon_state = "human" @@ -16,10 +22,14 @@ /datum/sprite_accessory/penis/knotted icon_state = "knotted" name = "Knotted" + taur_icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi' + taur_dimension_y = 64 /datum/sprite_accessory/penis/flared icon_state = "flared" name = "Flared" + taur_icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi' + taur_dimension_y = 64 /datum/sprite_accessory/penis/barbknot icon_state = "barbknot" @@ -28,6 +38,8 @@ /datum/sprite_accessory/penis/tapered icon_state = "tapered" name = "Tapered" + taur_icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi' + taur_dimension_y = 64 /datum/sprite_accessory/penis/tentacle icon_state = "tentacle" @@ -41,33 +53,7 @@ icon_state = "hemiknot" name = "Knotted Hemi" - -//////////////////////// -// Taur cocks go here // -//////////////////////// -/datum/sprite_accessory/penis/taur_flared - icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi' //Needed larger width - icon_state = "flared" - name = "Taur, Flared" - center = TRUE //Center the image 'cause 2-tile wide. - dimension_x = 64 - -/datum/sprite_accessory/penis/taur_knotted - icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi' //Needed larger width - icon_state = "knotted" - name = "Taur, Knotted" - center = TRUE //Center the image 'cause 2-tile wide. - dimension_x = 64 - -/datum/sprite_accessory/penis/taur_tapered - icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi' //Needed larger width - icon_state = "tapered" - name = "Taur, Tapered" - center = TRUE //Center the image 'cause 2-tile wide. - dimension_x = 64 - //Testicles -//These ones aren't inert /datum/sprite_accessory/testicles icon = 'modular_citadel/icons/obj/genitals/testicles_onmob.dmi' icon_state = "testicle" diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index ded05134a9..b3ca0062f8 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -8,7 +8,7 @@ masturbation_verb = "stroke" arousal_verb = "You pop a boner" unarousal_verb = "Your boner goes down" - genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_CAN_AROUSE|UPDATE_OWNER_APPEARANCE|GENITAL_UNDIES_HIDDEN + genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_CAN_AROUSE|UPDATE_OWNER_APPEARANCE|GENITAL_UNDIES_HIDDEN|GENITAL_CAN_TAUR linked_organ_slot = ORGAN_SLOT_TESTICLES fluid_transfer_factor = 0.5 shape = DEF_COCK_SHAPE @@ -79,7 +79,6 @@ var/icon_shape = S ? S.icon_state : "human" icon_state = "penis_[icon_shape]_[size]" var/lowershape = lowertext(shape) - desc = "You see [aroused_state ? "an erect" : "a flaccid"] [lowershape] [name]. You estimate it's about [round(length, 0.25)] inch[round(length, 0.25) != 1 ? "es" : ""] long and [round(diameter, 0.25)] inch[round(diameter, 0.25) != 1 ? "es" : ""] in diameter." if(owner) if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) @@ -89,6 +88,12 @@ icon_state += "_s" else color = "#[owner.dna.features["cock_color"]]" + if(genital_flags & GENITAL_CAN_TAUR && S?.taur_icon && (!S.feat_taur || owner.dna.features[S.feat_taur]) && owner.dna.species.mutant_bodyparts["taur"]) + var/datum/sprite_accessory/taur/T = GLOB.taur_list[owner.dna.features["taur"]] + if(T.taur_mode & S.accepted_taurs) //looks out of place on those. + lowershape = "taur, [lowershape]" + + desc = "You see [aroused_state ? "an erect" : "a flaccid"] [lowershape] [name]. You estimate it's about [round(length, 0.25)] inch[round(length, 0.25) != 1 ? "es" : ""] long and [round(diameter, 0.25)] inch[round(diameter, 0.25) != 1 ? "es" : ""] in diameter." /obj/item/organ/genital/penis/get_features(mob/living/carbon/human/H) var/datum/dna/D = H.dna diff --git a/modular_citadel/code/modules/clothing/neck.dm b/modular_citadel/code/modules/clothing/neck.dm index 20324516f6..f57e2ae530 100644 --- a/modular_citadel/code/modules/clothing/neck.dm +++ b/modular_citadel/code/modules/clothing/neck.dm @@ -7,7 +7,7 @@ icon = 'modular_citadel/icons/obj/clothing/cit_neck.dmi' item_state = "undertale" icon_state = "undertale" - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/necks.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/necks.dmi' resistance_flags = FIRE_PROOF actions_types = list(/datum/action/item_action/zanderlocket) var/toggled = FALSE diff --git a/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm b/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm deleted file mode 100644 index ade6cee3ba..0000000000 --- a/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm +++ /dev/null @@ -1,40 +0,0 @@ -/obj/item/clothing/neck/cloak/polychromic //enables all three overlays to reduce copypasta and defines basic stuff - name = "polychromic cloak" - desc = "For when you want to show off your horrible colour coordination skills." - icon = 'modular_citadel/icons/polyclothes/item/neck.dmi' - alternate_worn_icon = 'modular_citadel/icons/polyclothes/mob/neck.dmi' - icon_state = "polyce" - item_color = "polyce" - item_state = "qmcloak" - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#FFFFFF" //RGB in hexcode - secondary_color = "#FFFFFF" - tertiary_color = "#808080" - -/obj/item/clothing/neck/cloak/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. Also mandates that ALL polychromic stuff MUST USE alternate_worn_icon - . = ..() - if(hasprimary | hassecondary | hastertiary) - if(!isinhands) //prevents the worn sprites from showing up if you're just holding them - if(hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-primary") //automagical sprite selection - primary_worn.color = primary_color //colors the overlay - . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. - if(hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-secondary") - secondary_worn.color = secondary_color - . += secondary_worn - if(hastertiary) - var/mutable_appearance/tertiary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-tertiary") - tertiary_worn.color = tertiary_color - . += tertiary_worn - -/obj/item/clothing/neck/cloak/polychromic/polyce //DONATOR ITEM - name = "polychromic embroidered cloak" - desc = "A fancy cloak embroidered with polychromatic thread in a pattern that reminds one of the wielders of unlimited power." - icon_state = "polyce" - item_color = "polyce" - primary_color = "#808080" //RGB in hexcode - secondary_color = "#8CC6FF" - tertiary_color = "#FF3535" \ No newline at end of file diff --git a/modular_citadel/code/modules/clothing/suits/suits.dm b/modular_citadel/code/modules/clothing/suits/suits.dm index 4b9dd131ca..25b0c120e5 100644 --- a/modular_citadel/code/modules/clothing/suits/suits.dm +++ b/modular_citadel/code/modules/clothing/suits/suits.dm @@ -8,7 +8,7 @@ /obj/item/clothing/suit/armor/hos/trenchcoat/cloak name = "armored trenchcloak" desc = "A trenchcoat enchanced with a special lightweight kevlar. This one appears to be designed to be draped over one's shoulders rather than worn normally.." - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' icon_state = "hostrench" item_state = "hostrench" mutantrace_variation = NONE diff --git a/modular_citadel/code/modules/clothing/trek.dm b/modular_citadel/code/modules/clothing/trek.dm index c6b0b80f22..b4ec9fbd61 100644 --- a/modular_citadel/code/modules/clothing/trek.dm +++ b/modular_citadel/code/modules/clothing/trek.dm @@ -15,7 +15,7 @@ desc = "The overcoat worn by all officers of the 2380s." icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' icon_state = "trek_ds9_coat" - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' item_state = "trek_ds9_coat" body_parts_covered = CHEST|GROIN|ARMS mutantrace_variation = NONE @@ -44,7 +44,7 @@ name = "Federation Uniform Jacket" desc = "A uniform jacket from the United Federation. Set phasers to awesome." icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' icon_state = "fedcoat" item_state = "fedcoat" mutantrace_variation = NONE @@ -110,7 +110,7 @@ name = "Modern Federation Uniform Jacket" desc = "A modern uniform jacket from the United Federation." icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' icon_state = "fedmodern" item_state = "fedmodern" body_parts_covered = CHEST|GROIN|ARMS @@ -142,7 +142,7 @@ desc = "An officer's cap that demands discipline from the one who wears it." icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' icon_state = "fedcapofficer" - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' item_state = "fedcapofficer" //Variants diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index 62145616ad..bd377d6081 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -26,7 +26,7 @@ desc = "The design on this seems a little too familiar." icon = 'icons/obj/custom.dmi' icon_state = "infcloak" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "infcloak" w_class = WEIGHT_CLASS_SMALL body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -36,9 +36,8 @@ desc = "A soft black collar that seems to stretch to fit whoever wears it." icon = 'icons/obj/custom.dmi' icon_state = "infcollar" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "infcollar" - item_color = null tagname = null /obj/item/clothing/accessory/medal/steele @@ -46,14 +45,13 @@ desc = "An intricate pendant given to those who help a key member of the Steele Corporation." icon = 'icons/obj/custom.dmi' icon_state = "steele" - item_color = "steele" medaltype = "medal-silver" /obj/item/toy/darksabre name = "Kiara's Sabre" desc = "This blade looks as dangerous as its owner." icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "darksabre" item_state = "darksabre" lefthand_file = 'modular_citadel/icons/mob/inhands/stunsword_left.dmi' @@ -70,7 +68,7 @@ name = "Ornate Sheathe" desc = "An ornate and rather sinister looking sabre sheathe." icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "darksheath" item_state = "darksheath" fitting_swords = list(/obj/item/toy/darksabre) @@ -80,7 +78,7 @@ name = "Dark Armor" desc = "A dark, non-functional piece of armor sporting a red and black finish." icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "darkcarapace" item_state = "darkcarapace" blood_overlay_type = "armor" @@ -107,8 +105,7 @@ icon = 'icons/obj/custom.dmi' icon_state = "zombscarf" desc = "A fashionable collar" - alternate_worn_icon = 'icons/mob/custom_w.dmi' - item_color = "zombscarf" + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' dog_fashion = /datum/dog_fashion/head /obj/item/clothing/suit/toggle/labcoat/mad/red @@ -116,7 +113,7 @@ desc = "An oddly special looking coat." icon = 'icons/obj/custom.dmi' icon_state = "labred" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "labred" mutantrace_variation = NONE @@ -125,7 +122,7 @@ desc = "An oddly special looking coat." icon = 'icons/obj/custom.dmi' icon_state = "labredblack" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "labredblack" mutantrace_variation = NONE @@ -144,7 +141,7 @@ name = "carrot cloak" desc = "A cloak in the shape and color of a carrot!" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "carrotcloak" item_state = "carrotcloak" w_class = WEIGHT_CLASS_SMALL @@ -156,7 +153,7 @@ icon = 'icons/obj/custom.dmi' icon_state = "satchel_carrot" item_state = "satchel_carrot" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' /obj/item/storage/backpack/satchel/carrot/Initialize() . = ..() @@ -179,7 +176,7 @@ icon = 'icons/obj/custom.dmi' icon_state = "festive" item_state = "festive" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' w_class = WEIGHT_CLASS_SMALL body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -187,7 +184,7 @@ name = "Alboroto Rosa mask" icon = 'icons/obj/custom.dmi' icon_state = "lucharzigfie" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "lucharzigfie" /obj/item/clothing/head/hardhat/reindeer/fluff @@ -195,7 +192,7 @@ desc = "Some fake antlers and a very fake red nose - Sponsored by PWR Game(tm)" icon_state = "hardhat0_reindeer" item_state = "hardhat0_reindeer" - item_color = "reindeer" + hat_type = "reindeer" flags_inv = 0 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) brightness_on = 0 //luminosity when on @@ -220,7 +217,7 @@ name = "The Hollow heart" desc = "Sometimes things are too much to hide." icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "hheart" item_state = "hheart" flags_inv = HIDEFACE|HIDEFACIALHAIR @@ -230,7 +227,7 @@ desc = "You would swear this was in your nightmares after eating too many veggies." icon = 'icons/obj/custom.dmi' icon_state = "hos-g" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "hos-g" body_parts_covered = CHEST|GROIN|ARMS|LEGS mutantrace_variation = NONE @@ -247,7 +244,7 @@ desc = "Smells like reactor four." icon = 'icons/obj/custom.dmi' item_state = "stalker" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "stalker" /obj/item/reagent_containers/food/drinks/flask/steel @@ -262,7 +259,7 @@ desc = "It's a collar..." icon = 'icons/obj/custom.dmi' icon_state = "petcollar-stripe" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "petcollar-stripe" tagname = null @@ -271,9 +268,8 @@ desc = "Just looking at this makes you want to sing." icon = 'icons/obj/custom.dmi' icon_state = "singer" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "singer" - item_color = "singer" fitted = NO_FEMALE_UNIFORM alternate_worn_layer = ABOVE_SHOES_LAYER can_adjust = 0 @@ -282,7 +278,7 @@ /obj/item/clothing/shoes/sneakers/pink icon = 'icons/obj/custom.dmi' icon_state = "pink" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "pink" mutantrace_variation = NONE @@ -291,13 +287,13 @@ desc = "A neosilk clip-on tie. This one has a black S on the tipping and looks rather unique." icon = 'icons/obj/custom.dmi' icon_state = "bloodredtie" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' /obj/item/clothing/suit/puffydress name = "Puffy Dress" desc = "A formal puffy black and red Victorian dress." icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "puffydress" item_state = "puffydress" body_parts_covered = CHEST|GROIN|LEGS @@ -310,7 +306,7 @@ item_state = "vermillion" body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/under/sweater/black/naomi @@ -327,7 +323,7 @@ desc = "This cloak doesn't seem too special." icon = 'icons/obj/custom.dmi' icon_state = "wintergreencloak" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "wintergreencloak" w_class = WEIGHT_CLASS_SMALL body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -343,7 +339,7 @@ desc = "An oddly special looking coat." icon = 'icons/obj/custom.dmi' icon_state = "rdcoat" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "rdcoat" mutantrace_variation = NONE @@ -359,7 +355,7 @@ desc = "These strange wings look like they once attached to something... or someone...? Whatever the case, their presence makes you feel uneasy.." icon = 'icons/obj/custom.dmi' icon_state = "devilwings" - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/devilwings64x64.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/devilwings64x64.dmi' item_state = "devilwings" worn_x_dimension = 64 worn_y_dimension = 34 @@ -369,14 +365,14 @@ desc = "A truly patriotic form of heroic attire." icon = 'icons/obj/custom.dmi' resistance_flags = FLAMMABLE - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "flagcape" item_state = "flagcape" /obj/item/clothing/shoes/lucky name = "Lucky Jackboots" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' desc = "Comfy Lucky Jackboots with the word Luck on them." item_state = "luckyjack" icon_state = "luckyjack" @@ -385,7 +381,7 @@ /obj/item/clothing/under/custom/lunasune name = "Divine Robes" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' desc = "Heavenly robes of the kitsune Luna Pumpkin,you can feel radiance coming from them." item_state = "Divine_robes" icon_state = "Divine_robes" @@ -394,7 +390,7 @@ /obj/item/clothing/under/custom/leoskimpy name = "Leon's Skimpy Outfit" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' desc = "A rather skimpy outfit." item_state = "shark_cloth" icon_state = "shark_cloth" @@ -403,7 +399,7 @@ /obj/item/clothing/under/custom/mimeoveralls name = "Mime's Overalls" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' desc = "A less-than-traditional mime's attire, completed by a set of dorky-looking overalls." item_state = "moveralls" icon_state = "moveralls" @@ -415,7 +411,7 @@ icon_state = "zuliecloak" item_state = "zuliecloak" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' hoodtype = /obj/item/clothing/head/hooded/cloakhood/zuliecloak body_parts_covered = CHEST|GROIN|ARMS slot_flags = SLOT_WEAR_SUIT | ITEM_SLOT_NECK //it's a cloak. it's cosmetic. so why the hell not? what could possibly go wrong? @@ -427,7 +423,7 @@ icon_state = "zuliecap" item_state = "zuliecap" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' flags_inv = HIDEEARS|HIDEHAIR mutantrace_variation = NONE @@ -435,7 +431,7 @@ name = "Multicolor Coat" desc = "An oddly special looking coat with black, red, and gold" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "redgoldjacket" item_state = "redgoldjacket" body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -447,7 +443,7 @@ icon_state = "kimono" item_state = "kimono" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' body_parts_covered = CHEST|GROIN|LEGS|ARMS mutantrace_variation = NONE @@ -457,7 +453,7 @@ icon_state = "commjacket" item_state = "commjacket" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' body_parts_covered = CHEST|GROIN|LEGS|ARMS mutantrace_variation = NONE @@ -467,7 +463,7 @@ icon_state = "mw2_russian_para" item_state = "mw2_russian_para" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/gloves/longblackgloves @@ -476,7 +472,7 @@ icon_state = "longblackgloves" item_state = "longblackgloves" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' /obj/item/clothing/under/custom/trendy_fit name = "Trendy Fitting Clothing" @@ -484,7 +480,7 @@ icon_state = "trendy_fit" item_state = "trendy_fit" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/head/blueberet @@ -493,7 +489,7 @@ icon_state = "blueberet" item_state = "blueberet" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' dynamic_hair_suffix = "" /obj/item/clothing/head/flight @@ -502,7 +498,7 @@ icon_state = "flight-g" item_state = "flight-g" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' /obj/item/clothing/neck/necklace/onion name = "Onion Necklace" @@ -510,7 +506,7 @@ icon = 'icons/obj/custom.dmi' icon_state = "onion" item_state = "onion" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' /obj/item/clothing/under/custom/mikubikini name = "starlight singer bikini" @@ -518,7 +514,7 @@ icon_state = "mikubikini" item_state = "mikubikini" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/suit/mikujacket @@ -527,7 +523,7 @@ icon_state = "mikujacket" item_state = "mikujacket" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/head/mikuhair @@ -536,7 +532,7 @@ icon_state = "mikuhair" item_state = "mikuhair" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE flags_inv = HIDEHAIR @@ -546,7 +542,7 @@ icon_state = "mikugloves" item_state = "mikugloves" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/shoes/sneakers/mikuleggings @@ -555,7 +551,7 @@ icon_state = "mikuleggings" item_state = "mikuleggings" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/toy/plush/mammal/dog/fritz @@ -567,3 +563,8 @@ unique_reskin = list("Goodboye" = "fritz", "Badboye" = "fritz_bad") mutantrace_variation = NONE +/obj/item/clothing/neck/cloak/polychromic/polyce + name = "polychromic embroidered cloak" + desc = "A fancy cloak embroidered with polychromatic thread in a pattern that reminds one of the wielders of unlimited power." + icon_state = "polyce" + poly_colors = list("#808080", "#8CC6FF", "#FF3535") diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm index 6d080ee898..0a3bdb727d 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm @@ -424,15 +424,15 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm ! if(hit_atom) if(isliving(hit_atom)) var/mob/living/L = hit_atom - if(!L.check_shields(0, "the [name]", src, attack_type = LEAP_ATTACK)) + if(L.run_block(0, "the [name]", src, ATTACK_TYPE_TACKLE, 0, src) & BLOCK_SUCCESS) + DefaultCombatKnockdown(15, 1, 1) + else L.visible_message("[src] pounces on [L]!", "[src] pounces on you!") L.DefaultCombatKnockdown(iscarbon(L) ? 60 : 45, override_stamdmg = CLAMP(pounce_stamloss, 0, pounce_stamloss_cap-L.getStaminaLoss())) // Temporary. If someone could rework how dogborg pounces work to accomodate for combat changes, that'd be nice. playsound(src, 'sound/weapons/Egloves.ogg', 50, 1) sleep(2)//Runtime prevention (infinite bump() calls on hulks) step_towards(src,L) log_combat(src, L, "borg pounced") - else - DefaultCombatKnockdown(15, 1, 1) pounce_cooldown = !pounce_cooldown spawn(pounce_cooldown_time) //3s by default diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm index 98d2efc4ea..20917c4ba5 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/handguns.dm @@ -1,34 +1,3 @@ -////////////Anti Tank Pistol//////////// - -/obj/item/gun/ballistic/automatic/pistol/antitank - name = "Anti Tank Pistol" - desc = "A massively impractical and silly monstrosity of a pistol that fires .50 calliber rounds. The recoil is likely to dislocate your wrist." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "atp" - item_state = "pistol" - recoil = 4 - mag_type = /obj/item/ammo_box/magazine/sniper_rounds - fire_delay = 50 - burst_size = 1 - can_suppress = 0 - w_class = WEIGHT_CLASS_NORMAL - actions_types = list() - fire_sound = 'sound/weapons/blastcannon.ogg' - spread = 20 //damn thing has no rifling. - -/obj/item/gun/ballistic/automatic/pistol/antitank/update_icon() - ..() - if(magazine) - cut_overlays() - add_overlay("atp-mag") - else - cut_overlays() - icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" - -/obj/item/gun/ballistic/automatic/pistol/antitank/syndicate - name = "Syndicate Anti Tank Pistol" - desc = "A massively impractical and silly monstrosity of a pistol that fires .50 calliber rounds. The recoil is likely to dislocate a variety of joints without proper bracing." - pin = /obj/item/firing_pin/implant/pindicate ///foam stealth pistol/// @@ -56,75 +25,6 @@ cut_overlays() icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" -//////10mm soporific bullets////// - -obj/item/projectile/bullet/c10mm/soporific - name ="10mm soporific bullet" - armour_penetration = 0 - nodamage = TRUE - dismemberment = 0 - knockdown = 0 - -/obj/item/projectile/bullet/c10mm/soporific/on_hit(atom/target, blocked = FALSE) - . = ..() - if((blocked != 100) && isliving(target)) - var/mob/living/L = target - L.blur_eyes(6) - if(L.getStaminaLoss() >= 60) - L.Sleeping(300) - else - L.adjustStaminaLoss(25) - -/obj/item/ammo_casing/c10mm/soporific - name = ".10mm soporific bullet casing" - desc = "A 10mm soporific bullet casing." - projectile_type = /obj/item/projectile/bullet/c10mm/soporific - -/obj/item/ammo_box/magazine/m10mm/soporific - name = "pistol magazine (10mm soporific)" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "9x19pS" - desc = "A gun magazine. Loaded with rounds which inject the target with a variety of illegal substances to induce sleep in the target." - ammo_type = /obj/item/ammo_casing/c10mm/soporific - -/obj/item/ammo_box/c10mm/soporific - name = "ammo box (10mm soporific)" - ammo_type = /obj/item/ammo_casing/c10mm/soporific - max_ammo = 24 - -//////modular pistol////// (reskinnable stetchkins) - -/obj/item/gun/ballistic/automatic/pistol/modular - name = "modular pistol" - desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "cde" - can_unsuppress = TRUE - obj_flags = UNIQUE_RENAME - unique_reskin = list("Default" = "cde", - "NT-99" = "n99", - "Stealth" = "stealthpistol", - "HKVP-78" = "vp78", - "Luger" = "p08b", - "Mk.58" = "secguncomp", - "PX4 Storm" = "px4" - ) - -/obj/item/gun/ballistic/automatic/pistol/modular/update_icon() - ..() - if(current_skin) - icon_state = "[unique_reskin[current_skin]][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" - else - icon_state = "[initial(icon_state)][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" - if(magazine && suppressed) - cut_overlays() - add_overlay("[unique_reskin[current_skin]]-magazine-sup") //Yes, this means the default iconstate can't have a magazine overlay - else if (magazine) - cut_overlays() - add_overlay("[unique_reskin[current_skin]]-magazine") - else - cut_overlays() - /////////RAYGUN MEMES///////// /obj/item/projectile/beam/lasertag/ray //the projectile, compatible with regular laser tag armor @@ -144,4 +44,4 @@ obj/item/projectile/bullet/c10mm/soporific icon_state = "raygun" desc = "A toy laser with a classic, retro feel and look. Compatible with existing laser tag systems." ammo_type = list(/obj/item/ammo_casing/energy/laser/raytag) - selfcharge = EGUN_SELFCHARGE \ No newline at end of file + selfcharge = EGUN_SELFCHARGE diff --git a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm index 49a8a26f35..49d48e0000 100644 --- a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm @@ -39,7 +39,7 @@ obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user) body_color = sanitize_hexcolor(body_color_input, desired_format=6, include_crunch=1) update_icon() -obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file, style_flags = NONE) +obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(isinhands) var/mutable_appearance/body_inhand = mutable_appearance(icon_file, "cxe_body") diff --git a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm index 05b5c195c2..a4b6429bea 100644 --- a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm +++ b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm @@ -87,7 +87,7 @@ . = ..() . += "Alt-click to change firing modes." -/obj/item/gun/energy/pumpaction/worn_overlays(isinhands, icon_file, style_flags = NONE) //ammo counter for inhands +/obj/item/gun/energy/pumpaction/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) //ammo counter for inhands . = ..() var/ratio = CEILING((cell.charge / cell.maxcharge) * charge_sections, 1) var/obj/item/ammo_casing/energy/shot = ammo_type[current_firemode_index] diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm index 28a776082f..198e6c5c24 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm @@ -54,15 +54,15 @@ return..() var/mob/living/carbon/human/H = M - var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS) //If they've opted out, then route processing though liver. if(!(H.client?.prefs.cit_toggles & BREAST_ENLARGEMENT)) var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER) if(L) - L.swelling += 0.05 + L.applyOrganDamage(0.25) else H.adjustToxLoss(1) return..() + var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS) //otherwise proceed as normal if(!B) //If they don't have breasts, give them breasts. @@ -95,7 +95,8 @@ /datum/reagent/fermi/breast_enlarger/overdose_process(mob/living/carbon/M) //Turns you into a female if male and ODing, doesn't touch nonbinary and object genders. if(!(M.client?.prefs.cit_toggles & FORCED_FEM)) var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) - L.swelling+= 0.05 + if(L) + L.applyOrganDamage(0.25) return ..() var/obj/item/organ/genital/penis/P = M.getorganslot(ORGAN_SLOT_PENIS) @@ -130,7 +131,8 @@ var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS) if(!(M.client?.prefs.cit_toggles & BREAST_ENLARGEMENT) || !B) var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) - L.swelling-= 0.05 + if(L) + L.applyOrganDamage(-0.25) return ..() B.modify_size(-0.05) return ..() @@ -208,14 +210,14 @@ if(!ishuman(M)) return ..() var/mob/living/carbon/human/H = M - var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS) if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT)) var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER) if(L) - L.swelling += 0.05 + L.applyOrganDamage(0.25) else H.adjustToxLoss(1) return ..() + var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS) //otherwise proceed as normal if(!P)//They do have a preponderance for escapism, or so I've heard. @@ -241,7 +243,8 @@ return ..() if(!(M.client?.prefs.cit_toggles & FORCED_MASC)) var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) - L.swelling+= 0.05 + if(L) + L.applyOrganDamage(0.25) return..() var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS) @@ -278,7 +281,8 @@ var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS) if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT) || !P) var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) - L.swelling-= 0.05 + if(L) + L.applyOrganDamage(-0.25) return..() P.modify_size(-0.1) diff --git a/modular_citadel/code/modules/reagents/objects/items.dm b/modular_citadel/code/modules/reagents/objects/items.dm index 5d207f4c73..1924e7ee00 100644 --- a/modular_citadel/code/modules/reagents/objects/items.dm +++ b/modular_citadel/code/modules/reagents/objects/items.dm @@ -54,7 +54,6 @@ to_chat(user, "[src] is empty!") add_fingerprint(user) return - ..() /obj/item/fermichem/pHpaper name = "pH indicator strip" diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm index 41eccb7054..d2a063fd4e 100644 --- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm +++ b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm @@ -95,6 +95,7 @@ taste_description = "strawberry roofies" taste_mult = 2 //Hide the roofies in stronger flavors color = "#FFADFF"//PINK, rgb(255, 173, 255) + can_synth = FALSE /datum/reagent/drug/aphrodisiac/on_mob_life(mob/living/M) if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO)) @@ -120,6 +121,7 @@ color = "#FF2BFF"//dark pink addiction_threshold = 20 overdose_threshold = 20 + can_synth = FALSE /datum/reagent/drug/aphrodisiacplus/on_mob_life(mob/living/M) if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO)) @@ -174,6 +176,7 @@ taste_mult = 2 color = "#D9D9D9"//rgb(217, 217, 217) reagent_state = SOLID + can_synth = FALSE /datum/reagent/drug/anaphrodisiac/on_mob_life(mob/living/M) if(M && M.client?.prefs.arousable && prob(16)) @@ -191,6 +194,7 @@ color = "#D9D9D9"//rgb(217, 217, 217) reagent_state = SOLID overdose_threshold = 20 + can_synth = FALSE /datum/reagent/drug/anaphrodisiacplus/on_mob_life(mob/living/M) if(M && M.client?.prefs.arousable) diff --git a/modular_citadel/icons/mob/mam_markings.dmi b/modular_citadel/icons/mob/mam_markings.dmi index 946f17abb8..3fe7f0060e 100644 Binary files a/modular_citadel/icons/mob/mam_markings.dmi and b/modular_citadel/icons/mob/mam_markings.dmi differ diff --git a/modular_citadel/icons/mob/mam_snouts.dmi b/modular_citadel/icons/mob/mam_snouts.dmi index 80371ce83f..ab1a4654b4 100644 Binary files a/modular_citadel/icons/mob/mam_snouts.dmi and b/modular_citadel/icons/mob/mam_snouts.dmi differ diff --git a/modular_citadel/icons/polyclothes/item/neck.dmi b/modular_citadel/icons/polyclothes/item/neck.dmi deleted file mode 100644 index e2792cf9d0..0000000000 Binary files a/modular_citadel/icons/polyclothes/item/neck.dmi and /dev/null differ diff --git a/modular_citadel/icons/polyclothes/mob/neck.dmi b/modular_citadel/icons/polyclothes/mob/neck.dmi deleted file mode 100644 index 529c64caa2..0000000000 Binary files a/modular_citadel/icons/polyclothes/mob/neck.dmi and /dev/null differ diff --git a/sound/effects/printer.ogg b/sound/effects/printer.ogg new file mode 100644 index 0000000000..c9546490f1 Binary files /dev/null and b/sound/effects/printer.ogg differ diff --git a/sound/instruments/synthesis_samples/brass/crisis_brass/c2.ogg b/sound/instruments/synthesis_samples/brass/crisis_brass/c2.ogg new file mode 100644 index 0000000000..9808431b25 Binary files /dev/null and b/sound/instruments/synthesis_samples/brass/crisis_brass/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/brass/crisis_brass/c3.ogg b/sound/instruments/synthesis_samples/brass/crisis_brass/c3.ogg new file mode 100644 index 0000000000..4118cff81c Binary files /dev/null and b/sound/instruments/synthesis_samples/brass/crisis_brass/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/brass/crisis_brass/c4.ogg b/sound/instruments/synthesis_samples/brass/crisis_brass/c4.ogg new file mode 100644 index 0000000000..ae9e1361d2 Binary files /dev/null and b/sound/instruments/synthesis_samples/brass/crisis_brass/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/brass/crisis_brass/c5.ogg b/sound/instruments/synthesis_samples/brass/crisis_brass/c5.ogg new file mode 100644 index 0000000000..f19ddd9300 Binary files /dev/null and b/sound/instruments/synthesis_samples/brass/crisis_brass/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/brass/crisis_trombone/C2.ogg b/sound/instruments/synthesis_samples/brass/crisis_trombone/C2.ogg new file mode 100644 index 0000000000..d2c872d5a3 Binary files /dev/null and b/sound/instruments/synthesis_samples/brass/crisis_trombone/C2.ogg differ diff --git a/sound/instruments/synthesis_samples/brass/crisis_trombone/C3.ogg b/sound/instruments/synthesis_samples/brass/crisis_trombone/C3.ogg new file mode 100644 index 0000000000..e1e3fc8635 Binary files /dev/null and b/sound/instruments/synthesis_samples/brass/crisis_trombone/C3.ogg differ diff --git a/sound/instruments/synthesis_samples/brass/crisis_trombone/C4.ogg b/sound/instruments/synthesis_samples/brass/crisis_trombone/C4.ogg new file mode 100644 index 0000000000..42c4aa755d Binary files /dev/null and b/sound/instruments/synthesis_samples/brass/crisis_trombone/C4.ogg differ diff --git a/sound/instruments/synthesis_samples/brass/crisis_trombone/C5.ogg b/sound/instruments/synthesis_samples/brass/crisis_trombone/C5.ogg new file mode 100644 index 0000000000..762d2868d0 Binary files /dev/null and b/sound/instruments/synthesis_samples/brass/crisis_trombone/C5.ogg differ diff --git a/sound/instruments/synthesis_samples/brass/crisis_trumpet/C4.ogg b/sound/instruments/synthesis_samples/brass/crisis_trumpet/C4.ogg new file mode 100644 index 0000000000..baf71063af Binary files /dev/null and b/sound/instruments/synthesis_samples/brass/crisis_trumpet/C4.ogg differ diff --git a/sound/instruments/synthesis_samples/brass/crisis_trumpet/C5.ogg b/sound/instruments/synthesis_samples/brass/crisis_trumpet/C5.ogg new file mode 100644 index 0000000000..92b4a11018 Binary files /dev/null and b/sound/instruments/synthesis_samples/brass/crisis_trumpet/C5.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C2.ogg b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C2.ogg new file mode 100644 index 0000000000..5a50a5091c Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C2.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C3.ogg b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C3.ogg new file mode 100644 index 0000000000..f086938260 Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C3.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C4.ogg b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C4.ogg new file mode 100644 index 0000000000..1246bd5341 Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C4.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C5.ogg b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C5.ogg new file mode 100644 index 0000000000..73680ce627 Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C5.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C6.ogg b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C6.ogg new file mode 100644 index 0000000000..72841fb189 Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C6.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C7.ogg b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C7.ogg new file mode 100644 index 0000000000..47797e4c00 Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C7.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C8.ogg b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C8.ogg new file mode 100644 index 0000000000..ea34703160 Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/fluid_celeste/C8.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/sgmbox/c2.ogg b/sound/instruments/synthesis_samples/chromatic/sgmbox/c2.ogg new file mode 100644 index 0000000000..4b96dd3dd3 Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/sgmbox/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg b/sound/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg new file mode 100644 index 0000000000..25daf5372e Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/sgmbox/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg b/sound/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg new file mode 100644 index 0000000000..9b989404e7 Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/sgmbox/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg b/sound/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg new file mode 100644 index 0000000000..7fa99d9278 Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/sgmbox/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/vibraphone1/c2.ogg b/sound/instruments/synthesis_samples/chromatic/vibraphone1/c2.ogg new file mode 100644 index 0000000000..64578a8fe1 Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/vibraphone1/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg b/sound/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg new file mode 100644 index 0000000000..d97230ce1f Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/vibraphone1/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg b/sound/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg new file mode 100644 index 0000000000..eb6f80654a Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/vibraphone1/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg b/sound/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg new file mode 100644 index 0000000000..8f25ee2747 Binary files /dev/null and b/sound/instruments/synthesis_samples/chromatic/vibraphone1/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_clean/C2.ogg b/sound/instruments/synthesis_samples/guitar/crisis_clean/C2.ogg new file mode 100644 index 0000000000..17bea8122c Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_clean/C2.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_clean/C3.ogg b/sound/instruments/synthesis_samples/guitar/crisis_clean/C3.ogg new file mode 100644 index 0000000000..6dc0d8ad38 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_clean/C3.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_clean/C4.ogg b/sound/instruments/synthesis_samples/guitar/crisis_clean/C4.ogg new file mode 100644 index 0000000000..fbbcacb372 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_clean/C4.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_clean/C5.ogg b/sound/instruments/synthesis_samples/guitar/crisis_clean/C5.ogg new file mode 100644 index 0000000000..f9bb3f6e92 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_clean/C5.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_muted/C2.ogg b/sound/instruments/synthesis_samples/guitar/crisis_muted/C2.ogg new file mode 100644 index 0000000000..777a38664f Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_muted/C2.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_muted/C3.ogg b/sound/instruments/synthesis_samples/guitar/crisis_muted/C3.ogg new file mode 100644 index 0000000000..c14aa5ec93 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_muted/C3.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_muted/C4.ogg b/sound/instruments/synthesis_samples/guitar/crisis_muted/C4.ogg new file mode 100644 index 0000000000..b2a457b496 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_muted/C4.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_muted/C5.ogg b/sound/instruments/synthesis_samples/guitar/crisis_muted/C5.ogg new file mode 100644 index 0000000000..c4f5aac8bf Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_muted/C5.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_nylon/c2.ogg b/sound/instruments/synthesis_samples/guitar/crisis_nylon/c2.ogg new file mode 100644 index 0000000000..6a8115f004 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_nylon/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg b/sound/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg new file mode 100644 index 0000000000..15ec741bb6 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_nylon/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg b/sound/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg new file mode 100644 index 0000000000..df4ef3fb79 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_nylon/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg b/sound/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg new file mode 100644 index 0000000000..961f4a6b90 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_nylon/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_steel/c2.ogg b/sound/instruments/synthesis_samples/guitar/crisis_steel/c2.ogg new file mode 100644 index 0000000000..06ccf6ae51 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_steel/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg b/sound/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg new file mode 100644 index 0000000000..14756fb249 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_steel/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg b/sound/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg new file mode 100644 index 0000000000..544b324786 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_steel/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg b/sound/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg new file mode 100644 index 0000000000..df2dc8def5 Binary files /dev/null and b/sound/instruments/synthesis_samples/guitar/crisis_steel/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg b/sound/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg new file mode 100644 index 0000000000..ba20e3f4b6 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg b/sound/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg new file mode 100644 index 0000000000..fcc8715e04 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg b/sound/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg new file mode 100644 index 0000000000..aa21d7e230 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_accordian/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg b/sound/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg new file mode 100644 index 0000000000..ac45bc6be4 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_accordian/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_church/c2.ogg b/sound/instruments/synthesis_samples/organ/crisis_church/c2.ogg new file mode 100644 index 0000000000..71b9280e86 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_church/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_church/c3.ogg b/sound/instruments/synthesis_samples/organ/crisis_church/c3.ogg new file mode 100644 index 0000000000..676a24669f Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_church/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_church/c4.ogg b/sound/instruments/synthesis_samples/organ/crisis_church/c4.ogg new file mode 100644 index 0000000000..24e3732d7e Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_church/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_church/c5.ogg b/sound/instruments/synthesis_samples/organ/crisis_church/c5.ogg new file mode 100644 index 0000000000..72dc2ce764 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_church/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_hammond/c2.ogg b/sound/instruments/synthesis_samples/organ/crisis_hammond/c2.ogg new file mode 100644 index 0000000000..853b7591b4 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_hammond/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg b/sound/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg new file mode 100644 index 0000000000..205e190379 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_hammond/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg b/sound/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg new file mode 100644 index 0000000000..e90c28f14c Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg b/sound/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg new file mode 100644 index 0000000000..a56d3cc3f6 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_harmonica/c3.ogg b/sound/instruments/synthesis_samples/organ/crisis_harmonica/c3.ogg new file mode 100644 index 0000000000..14c5f35eef Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_harmonica/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg b/sound/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg new file mode 100644 index 0000000000..e06e733eb2 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg b/sound/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg new file mode 100644 index 0000000000..3d21e92d53 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg b/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg new file mode 100644 index 0000000000..be51b6dcd4 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg b/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg new file mode 100644 index 0000000000..7426d246a0 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg b/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg new file mode 100644 index 0000000000..af7b66cf19 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg b/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg new file mode 100644 index 0000000000..58ff4ff216 Binary files /dev/null and b/sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c2.ogg b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c2.ogg new file mode 100644 index 0000000000..4b7feb77a4 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg new file mode 100644 index 0000000000..5e7eefa79a Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg new file mode 100644 index 0000000000..13e49d4f3a Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg new file mode 100644 index 0000000000..6ef00f0700 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg new file mode 100644 index 0000000000..a868249ca8 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c6.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg new file mode 100644 index 0000000000..2d08d98dd9 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c7.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg new file mode 100644 index 0000000000..50e3cb76a7 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_bright_piano/c8.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c2.ogg b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c2.ogg new file mode 100644 index 0000000000..0b87714166 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg new file mode 100644 index 0000000000..31fd625098 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg new file mode 100644 index 0000000000..0ed309dbb7 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg new file mode 100644 index 0000000000..7fd820d373 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg new file mode 100644 index 0000000000..b4ed66e27c Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c6.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg new file mode 100644 index 0000000000..13a5f7d873 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c7.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg new file mode 100644 index 0000000000..0169d52c21 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_grand_piano/c8.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c2.ogg b/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c2.ogg new file mode 100644 index 0000000000..16d49cb15e Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg b/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg new file mode 100644 index 0000000000..83e906cd1a Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg b/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg new file mode 100644 index 0000000000..33f766e4aa Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg b/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg new file mode 100644 index 0000000000..6ce06dda56 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/crisis_harpsichord/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C2.ogg b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C2.ogg new file mode 100644 index 0000000000..3941e7af03 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C2.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C3.ogg b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C3.ogg new file mode 100644 index 0000000000..4f79ee9987 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C3.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C4.ogg b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C4.ogg new file mode 100644 index 0000000000..1d773c62e7 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C4.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C5.ogg b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C5.ogg new file mode 100644 index 0000000000..938a557e04 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C5.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C6.ogg b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C6.ogg new file mode 100644 index 0000000000..c65f06ce3e Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C6.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C7.ogg b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C7.ogg new file mode 100644 index 0000000000..87d4943509 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C7.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_harpsi/C8.ogg b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C8.ogg new file mode 100644 index 0000000000..5800b2d0ff Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_harpsi/C8.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c2.ogg b/sound/instruments/synthesis_samples/piano/fluid_piano/c2.ogg new file mode 100644 index 0000000000..9ce5eee76e Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_piano/c2.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c3.ogg b/sound/instruments/synthesis_samples/piano/fluid_piano/c3.ogg new file mode 100644 index 0000000000..4644327476 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_piano/c3.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c4.ogg b/sound/instruments/synthesis_samples/piano/fluid_piano/c4.ogg new file mode 100644 index 0000000000..ab6d8a2a92 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_piano/c4.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c5.ogg b/sound/instruments/synthesis_samples/piano/fluid_piano/c5.ogg new file mode 100644 index 0000000000..0041ea2e13 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_piano/c5.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c6.ogg b/sound/instruments/synthesis_samples/piano/fluid_piano/c6.ogg new file mode 100644 index 0000000000..5d836b9f7c Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_piano/c6.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c7.ogg b/sound/instruments/synthesis_samples/piano/fluid_piano/c7.ogg new file mode 100644 index 0000000000..1981572cf2 Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_piano/c7.ogg differ diff --git a/sound/instruments/synthesis_samples/piano/fluid_piano/c8.ogg b/sound/instruments/synthesis_samples/piano/fluid_piano/c8.ogg new file mode 100644 index 0000000000..35e5b147bc Binary files /dev/null and b/sound/instruments/synthesis_samples/piano/fluid_piano/c8.ogg differ diff --git a/sound/instruments/synthesis_samples/tones/Sawtooth.ogg b/sound/instruments/synthesis_samples/tones/Sawtooth.ogg new file mode 100644 index 0000000000..e46f5eaced Binary files /dev/null and b/sound/instruments/synthesis_samples/tones/Sawtooth.ogg differ diff --git a/sound/instruments/synthesis_samples/tones/Sine.ogg b/sound/instruments/synthesis_samples/tones/Sine.ogg new file mode 100644 index 0000000000..e0b14869e9 Binary files /dev/null and b/sound/instruments/synthesis_samples/tones/Sine.ogg differ diff --git a/sound/instruments/synthesis_samples/tones/Square.ogg b/sound/instruments/synthesis_samples/tones/Square.ogg new file mode 100644 index 0000000000..817531bcca Binary files /dev/null and b/sound/instruments/synthesis_samples/tones/Square.ogg differ diff --git a/sound/machines/machine_vend.ogg b/sound/machines/machine_vend.ogg new file mode 100644 index 0000000000..92867a1f3d Binary files /dev/null and b/sound/machines/machine_vend.ogg differ diff --git a/sound/vehicles/skateboard_ollie.ogg b/sound/vehicles/skateboard_ollie.ogg new file mode 100644 index 0000000000..5f0f2fc30b Binary files /dev/null and b/sound/vehicles/skateboard_ollie.ogg differ diff --git a/sound/vehicles/skateboard_roll.ogg b/sound/vehicles/skateboard_roll.ogg new file mode 100644 index 0000000000..326c175d77 Binary files /dev/null and b/sound/vehicles/skateboard_roll.ogg differ diff --git a/tgstation.dme b/tgstation.dme old mode 100644 new mode 100755 index a766d99d5a..d7fa983a7c --- a/tgstation.dme +++ b/tgstation.dme @@ -43,6 +43,7 @@ #include "code\__DEFINES\diseases.dm" #include "code\__DEFINES\DNA.dm" #include "code\__DEFINES\donator_groupings.dm" +#include "code\__DEFINES\dye_keys.dm" #include "code\__DEFINES\dynamic.dm" #include "code\__DEFINES\events.dm" #include "code\__DEFINES\exports.dm" @@ -51,6 +52,7 @@ #include "code\__DEFINES\food.dm" #include "code\__DEFINES\footsteps.dm" #include "code\__DEFINES\hud.dm" +#include "code\__DEFINES\instruments.dm" #include "code\__DEFINES\integrated_electronics.dm" #include "code\__DEFINES\interaction_flags.dm" #include "code\__DEFINES\inventory.dm" @@ -156,6 +158,7 @@ #include "code\__HELPERS\text_vr.dm" #include "code\__HELPERS\time.dm" #include "code\__HELPERS\type2type.dm" +#include "code\__HELPERS\type_processing.dm" #include "code\__HELPERS\typelists.dm" #include "code\__HELPERS\unsorted.dm" #include "code\__HELPERS\vector.dm" @@ -289,6 +292,7 @@ #include "code\controllers\subsystem\research.dm" #include "code\controllers\subsystem\server_maint.dm" #include "code\controllers\subsystem\shuttle.dm" +#include "code\controllers\subsystem\sounds.dm" #include "code\controllers\subsystem\spacedrift.dm" #include "code\controllers\subsystem\stickyban.dm" #include "code\controllers\subsystem\sun.dm" @@ -306,6 +310,7 @@ #include "code\controllers\subsystem\processing\circuit.dm" #include "code\controllers\subsystem\processing\fastprocess.dm" #include "code\controllers\subsystem\processing\fields.dm" +#include "code\controllers\subsystem\processing\instruments.dm" #include "code\controllers\subsystem\processing\nanites.dm" #include "code\controllers\subsystem\processing\networks.dm" #include "code\controllers\subsystem\processing\obj.dm" @@ -418,9 +423,10 @@ #include "code\datums\components\wearertargeting.dm" #include "code\datums\components\wet_floor.dm" #include "code\datums\components\crafting\craft.dm" -#include "code\datums\components\crafting\glassware.dm" #include "code\datums\components\crafting\guncrafting.dm" #include "code\datums\components\crafting\recipes.dm" +#include "code\datums\components\crafting\glassware\glassware.dm" +#include "code\datums\components\crafting\glassware\lens_crafting.dm" #include "code\datums\components\crafting\recipes\recipes_clothing.dm" #include "code\datums\components\crafting\recipes\recipes_misc.dm" #include "code\datums\components\crafting\recipes\recipes_primal.dm" @@ -504,6 +510,8 @@ #include "code\datums\elements\flavor_text.dm" #include "code\datums\elements\ghost_role_eligibility.dm" #include "code\datums\elements\mob_holder.dm" +#include "code\datums\elements\polychromic.dm" +#include "code\datums\elements\spellcasting.dm" #include "code\datums\elements\swimming.dm" #include "code\datums\elements\sword_point.dm" #include "code\datums\elements\update_icon_blocker.dm" @@ -845,6 +853,7 @@ #include "code\game\objects\effects\decals\decal.dm" #include "code\game\objects\effects\decals\misc.dm" #include "code\game\objects\effects\decals\remains.dm" +#include "code\game\objects\effects\decals\vgdecals.dm" #include "code\game\objects\effects\decals\cleanable\aliens.dm" #include "code\game\objects\effects\decals\cleanable\gibs.dm" #include "code\game\objects\effects\decals\cleanable\humans.dm" @@ -966,7 +975,6 @@ #include "code\game\objects\items\devices\geiger_counter.dm" #include "code\game\objects\items\devices\glue.dm" #include "code\game\objects\items\devices\gps.dm" -#include "code\game\objects\items\devices\instruments.dm" #include "code\game\objects\items\devices\laserpointer.dm" #include "code\game\objects\items\devices\lightreplacer.dm" #include "code\game\objects\items\devices\megaphone.dm" @@ -1112,7 +1120,6 @@ #include "code\game\objects\structures\mirror.dm" #include "code\game\objects\structures\mop_bucket.dm" #include "code\game\objects\structures\morgue.dm" -#include "code\game\objects\structures\musician.dm" #include "code\game\objects\structures\noticeboard.dm" #include "code\game\objects\structures\petrified_statue.dm" #include "code\game\objects\structures\plasticflaps.dm" @@ -1230,6 +1237,7 @@ #include "code\modules\admin\stickyban.dm" #include "code\modules\admin\topic.dm" #include "code\modules\admin\whitelist.dm" +#include "code\modules\admin\callproc\callproc.dm" #include "code\modules\admin\DB_ban\functions.dm" #include "code\modules\admin\verbs\adminhelp.dm" #include "code\modules\admin\verbs\adminjump.dm" @@ -1253,8 +1261,6 @@ #include "code\modules\admin\verbs\map_template_loadverb.dm" #include "code\modules\admin\verbs\mapping.dm" #include "code\modules\admin\verbs\maprotation.dm" -#include "code\modules\admin\verbs\massmodvar.dm" -#include "code\modules\admin\verbs\modifyvariables.dm" #include "code\modules\admin\verbs\one_click_antag.dm" #include "code\modules\admin\verbs\onlyone.dm" #include "code\modules\admin\verbs\panicbunker.dm" @@ -1268,6 +1274,16 @@ #include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" #include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" #include "code\modules\admin\verbs\SDQL2\SDQL_2_wrappers.dm" +#include "code\modules\admin\view_variables\admin_delete.dm" +#include "code\modules\admin\view_variables\debug_variables.dm" +#include "code\modules\admin\view_variables\get_variables.dm" +#include "code\modules\admin\view_variables\mark_datum.dm" +#include "code\modules\admin\view_variables\mass_edit_variables.dm" +#include "code\modules\admin\view_variables\modify_variables.dm" +#include "code\modules\admin\view_variables\topic.dm" +#include "code\modules\admin\view_variables\topic_basic.dm" +#include "code\modules\admin\view_variables\topic_list.dm" +#include "code\modules\admin\view_variables\view_variables.dm" #include "code\modules\antagonists\_common\antag_datum.dm" #include "code\modules\antagonists\_common\antag_helpers.dm" #include "code\modules\antagonists\_common\antag_hud.dm" @@ -1976,6 +1992,22 @@ #include "code\modules\hydroponics\grown\tobacco.dm" #include "code\modules\hydroponics\grown\tomato.dm" #include "code\modules\hydroponics\grown\towercap.dm" +#include "code\modules\instruments\instrument_data\_instrument_data.dm" +#include "code\modules\instruments\instrument_data\_instrument_key.dm" +#include "code\modules\instruments\instrument_data\brass.dm" +#include "code\modules\instruments\instrument_data\chromatic_percussion.dm" +#include "code\modules\instruments\instrument_data\fun.dm" +#include "code\modules\instruments\instrument_data\guitar.dm" +#include "code\modules\instruments\instrument_data\hardcoded.dm" +#include "code\modules\instruments\instrument_data\organ.dm" +#include "code\modules\instruments\instrument_data\piano.dm" +#include "code\modules\instruments\instrument_data\synth_tones.dm" +#include "code\modules\instruments\instruments\item.dm" +#include "code\modules\instruments\instruments\stationary.dm" +#include "code\modules\instruments\songs\_song.dm" +#include "code\modules\instruments\songs\editor.dm" +#include "code\modules\instruments\songs\play_legacy.dm" +#include "code\modules\instruments\songs\play_synthesized.dm" #include "code\modules\integrated_electronics\_defines.dm" #include "code\modules\integrated_electronics\core\analyzer.dm" #include "code\modules\integrated_electronics\core\assemblies.dm" @@ -2206,6 +2238,7 @@ #include "code\modules\mob\living\emote.dm" #include "code\modules\mob\living\life.dm" #include "code\modules\mob\living\living.dm" +#include "code\modules\mob\living\living_block.dm" #include "code\modules\mob\living\living_combat.dm" #include "code\modules\mob\living\living_defense.dm" #include "code\modules\mob\living\living_defines.dm" @@ -2283,6 +2316,7 @@ #include "code\modules\mob\living\carbon\human\emote.dm" #include "code\modules\mob\living\carbon\human\examine.dm" #include "code\modules\mob\living\carbon\human\human.dm" +#include "code\modules\mob\living\carbon\human\human_block.dm" #include "code\modules\mob\living\carbon\human\human_defense.dm" #include "code\modules\mob\living\carbon\human\human_defines.dm" #include "code\modules\mob\living\carbon\human\human_helpers.dm" @@ -3258,7 +3292,6 @@ #include "modular_citadel\code\modules\client\verbs\who.dm" #include "modular_citadel\code\modules\clothing\neck.dm" #include "modular_citadel\code\modules\clothing\trek.dm" -#include "modular_citadel\code\modules\clothing\suits\polychromic_cloaks.dm" #include "modular_citadel\code\modules\clothing\suits\suits.dm" #include "modular_citadel\code\modules\custom_loadout\custom_items.dm" #include "modular_citadel\code\modules\custom_loadout\load_to_mob.dm" diff --git a/tgui-next/packages/tgui/interfaces/ChemDispenser.js b/tgui-next/packages/tgui/interfaces/ChemDispenser.js new file mode 100644 index 0000000000..e479005396 --- /dev/null +++ b/tgui-next/packages/tgui/interfaces/ChemDispenser.js @@ -0,0 +1,180 @@ +import { toFixed } from 'common/math'; +import { toTitleCase } from 'common/string'; +import { Fragment } from 'inferno'; +import { useBackend } from '../backend'; +import { AnimatedNumber, Box, Button, Icon, LabeledList, ProgressBar, Section } from '../components'; + +export const ChemDispenser = props => { + const { act, data } = useBackend(props); + const recording = !!data.recordingRecipe; + // TODO: Change how this piece of shit is built on server side + // It has to be a list, not a fucking OBJECT! + const recipes = Object.keys(data.recipes) + .map(name => ({ + name, + contents: data.recipes[name], + })); + const beakerTransferAmounts = data.beakerTransferAmounts || []; + const beakerContents = recording + && Object.keys(data.recordingRecipe) + .map(id => ({ + id, + name: toTitleCase(id.replace(/_/, ' ')), + volume: data.recordingRecipe[id], + })) + || data.beakerContents + || []; + return ( + +
    + + Recording + + )}> + + + + + +
    +
    + {!recording && ( + +
    +
    ( +
    +
    ( +
    +
    + ); +}; diff --git a/tgui-next/packages/tgui/interfaces/ChemHeater.js b/tgui-next/packages/tgui/interfaces/ChemHeater.js new file mode 100644 index 0000000000..3794d614be --- /dev/null +++ b/tgui-next/packages/tgui/interfaces/ChemHeater.js @@ -0,0 +1,87 @@ +import { round, toFixed } from 'common/math'; +import { Fragment } from 'inferno'; +import { useBackend } from '../backend'; +import { AnimatedNumber, Box, Button, LabeledList, NumberInput, Section } from '../components'; +import { BeakerContents } from './common/BeakerContents'; + +export const ChemHeater = props => { + const { act, data } = useBackend(props); + const { + targetTemp, + isActive, + isBeakerLoaded, + currentTemp, + currentpH, + beakerCurrentVolume, + beakerMaxVolume, + beakerContents = [], + } = data; + return ( + +
    act('power')} /> + )}> + + + act('temperature', { + target: value, + })} /> + + + + {isBeakerLoaded && ( + toFixed(value) + ' K'} /> + ) || '—'} + + + + + {isBeakerLoaded && ( + toFixed(value) + ' pH'} /> + ) || '-'} + + + +
    +
    + + {beakerCurrentVolume} / {beakerMaxVolume} units + +
    +
    + ); +}; diff --git a/tgui-next/packages/tgui/interfaces/ChemMaster.js b/tgui-next/packages/tgui/interfaces/ChemMaster.js new file mode 100644 index 0000000000..1997b3b9b6 --- /dev/null +++ b/tgui-next/packages/tgui/interfaces/ChemMaster.js @@ -0,0 +1,448 @@ +import { Component, Fragment } from 'inferno'; +import { act } from '../byond'; +import { AnimatedNumber, Box, Button, ColorBox, LabeledList, NumberInput, Section, Table } from '../components'; + +export const ChemMaster = props => { + const { state } = props; + const { config, data } = state; + const { ref } = config; + const { + screen, + beakerContents = [], + bufferContents = [], + beakerCurrentVolume, + beakerMaxVolume, + isBeakerLoaded, + isPillBottleLoaded, + pillBottleCurrentAmount, + pillBottleMaxAmount, + } = data; + + return ( + +
    + + + {` / ${beakerMaxVolume} units`} + +
    +
    + + Mode: + +
    +
    + +
    + {!!isPillBottleLoaded && ( +
    + + {pillBottleCurrentAmount} / {pillBottleMaxAmount} pills + + + ))} + + )} + {!condi && ( + this.setState({ + pillAmount: value, + })} + onCreate={() => act(ref, 'create', { + type: 'pill', + amount: pillAmount, + volume: 'auto', + })} /> + )} + {!condi && ( + this.setState({ + patchAmount: value, + })} + onCreate={() => act(ref, 'create', { + type: 'patch', + amount: patchAmount, + volume: 'auto', + })} /> + )} + {!condi && ( + this.setState({ + bottleAmount: value, + })} + onCreate={() => act(ref, 'create', { + type: 'bottle', + amount: bottleAmount, + volume: 'auto', + })} /> + )} + {!condi && ( + this.setState({ + vialAmount: value, + })} + onCreate={() => act(ref, 'create', { + type: 'hypoVial', + amount: vialAmount, + volume: 'auto', + })} /> + )} + {!condi && ( + this.setState({ + dartAmount: value, + })} + onCreate={() => act(ref, 'create', { + type: 'smartDart', + amount: dartAmount, + volume: 'auto', + })} /> + )} + {!!condi && ( + this.setState({ + packAmount: value, + })} + onCreate={() => act(ref, 'create', { + type: 'condimentPack', + amount: packAmount, + volume: 'auto', + })} /> + )} + {!!condi && ( + this.setState({ + bottleAmount: value, + })} + onCreate={() => act(ref, 'create', { + type: 'condimentBottle', + amount: bottleAmount, + volume: 'auto', + })} /> + )} + + ); + } +} + +const AnalysisResults = props => { + const { state, fermianalyze } = props; + const { ref } = state.config; + const { analyzeVars } = state.data; + return ( +
    act(ref, 'goScreen', { + screen: 'home', + })} /> + )}> + {!fermianalyze && ( + + + {analyzeVars.name} + + + {analyzeVars.state} + + + + {analyzeVars.color} + + + {analyzeVars.description} + + + {analyzeVars.metaRate} u/minute + + + {analyzeVars.overD} + + + {analyzeVars.addicD} + + + )} + {!!fermianalyze && ( + + + {analyzeVars.name} + + + {analyzeVars.state} + + + + {analyzeVars.color} + + + {analyzeVars.description} + + + {analyzeVars.metaRate} u/minute + + + {analyzeVars.overD} + + + {analyzeVars.addicD} + + + {analyzeVars.purityF} + + + {analyzeVars.inverseRatioF} + + + {analyzeVars.purityE} + + + {analyzeVars.minTemp} + + + {analyzeVars.maxTemp} + + + {analyzeVars.eTemp} + + + {analyzeVars.pHpeak} + + + )} +
    + ); +}; diff --git a/tgui-next/packages/tgui/interfaces/Sleeper.js b/tgui-next/packages/tgui/interfaces/Sleeper.js new file mode 100644 index 0000000000..dabf0f355d --- /dev/null +++ b/tgui-next/packages/tgui/interfaces/Sleeper.js @@ -0,0 +1,181 @@ +import { useBackend } from '../backend'; +import { Box, Section, LabeledList, Button, ProgressBar, Flex, AnimatedNumber } from '../components'; +import { Fragment } from 'inferno'; + +export const Sleeper = props => { + const { act, data } = useBackend(props); + + const { + occupied, + open, + occupant = [], + } = data; + + const preSortChems = data.chems || []; + const chems = preSortChems.sort((a, b) => { + const descA = a.name.toLowerCase(); + const descB = b.name.toLowerCase(); + if (descA < descB) { + return -1; + } + if (descA > descB) { + return 1; + } + return 0; + }); + const preSortSynth = data.synthchems || []; + const synthchems = preSortSynth.sort((a, b) => { + const descA = a.name.toLowerCase(); + const descB = b.name.toLowerCase(); + if (descA < descB) { + return -1; + } + if (descA > descB) { + return 1; + } + return 0; + }); + + const damageTypes = [ + { + label: 'Brute', + type: 'bruteLoss', + }, + { + label: 'Burn', + type: 'fireLoss', + }, + { + label: 'Toxin', + type: 'toxLoss', + }, + { + label: 'Oxygen', + type: 'oxyLoss', + }, + ]; + + return ( + +
    + {occupant.stat} + + )}> + {!!occupied && ( + + + + + {damageTypes.map(type => ( + + + + ))} + + + + + {data.blood_status} + + + {occupant.cloneLoss ? 'Damaged' : 'Healthy'} + + + {occupant.brainLoss ? 'Abnormal' : 'Healthy'} + + + + )} +
    +
    + + {data.chemical_list.map(specificChem => ( + + {specificChem.volume} units of {specificChem.name} + + ), + )} + +
    +
    act('door')} /> + )}> + {chems.map(chem => ( +
    +
    + {synthchems.map(chem => ( +
    +
    + {chems.map(chem => ( +
    +
    + ); +}; diff --git a/tgui-next/packages/tgui/interfaces/Vending.js b/tgui-next/packages/tgui/interfaces/Vending.js index e394c2d241..b6ffde015d 100644 --- a/tgui-next/packages/tgui/interfaces/Vending.js +++ b/tgui-next/packages/tgui/interfaces/Vending.js @@ -9,54 +9,40 @@ export const Vending = props => { const { ref } = config; let inventory; let custom = false; - if (data.vending_machine_input) { - inventory = data.vending_machine_input; - custom = true; + const onstation = true; + if (data.extended_inventory && data.coin) { + inventory = [ + ...data.product_records, + ...data.hidden_records, + ...data.coin_records, + ]; } else if (data.extended_inventory) { inventory = [ ...data.product_records, - ...data.coin_records, ...data.hidden_records, ]; + } else if (data.coin) { + inventory = [ + ...data.product_records, + ...data.coin_records, + ]; } else { inventory = [ ...data.product_records, - ...data.coin_records, ]; } return ( - {data.onstation && ( -
    - {data.user && ( - - Welcome, {data.user.name}, - {' '} - {data.user.job || "Unemployed"}! -
    - Your balance is {data.user.cash} credits. -
    - ) || ( - - No registered ID card!
    - Please contact your local HoP! -
    - )} + {data.coin && ( +
    +
    )}
    {inventory.map((product => { - const free = ( - !data.onstation - || product.price === 0 - || ( - !product.premium - && data.department - && data.user - && data.department === data.user.department - ) - ); return ( @@ -91,23 +77,13 @@ export const Vending = props => { {custom && (